Sensoren tagesweise zyklisch auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
CoderGirl
User
Beiträge: 74
Registriert: Samstag 22. April 2017, 17:47

Jungs,

ich brauche eure Hilfe. Ich habe ein Brett vor dem Kopf und das Gefühl, ich sehe den Bald
vor Bäumen nicht.

Was will ich machen? Ich will ein durchweg laufendes Programm erstellen, dass mir alle t min (def t = 5min)
einen Sensorwert aufruft, und den zu dem dem bestehenden addiert. Dies aber auf Tagesbasis, d.h.
der summierte Wert wird für jeden Tag neu berechnet.

Wie geh ich das am besten an ?

Danke euch

Codergirl
Nur ein Mädchen, das nie so viel weiss, wie die Jungs :ugeek:
Benutzeravatar
pintman
User
Beiträge: 39
Registriert: Freitag 2. Dezember 2005, 20:43
Kontaktdaten:

Ich nehme an, dass der Sensor an einem µC hängt, Python "spricht" (z.B. ein ESP8266) und der µC immer wieder in den Schlafzustand wechselt, um Energie zu sparen?!

Eine mögliche Methode wäre, den aktuellen Sensorwert an einen MQTT-Broker zu senden. Auf der anderen Seite hängt dann ein Skript, welches auf dem MQTT-Broker lauscht und die Werte in der gewünschten Art aufbereitet und/oder in einer DB/Datei speichert.
Benutzeravatar
CoderGirl
User
Beiträge: 74
Registriert: Samstag 22. April 2017, 17:47

Hi

der Sensor hängt an einem ESP8266, den ich zyklisch über den http:/ Get auslese und das JSON parse und weiterverarbeite.
Dann bin ich doch nicht so falsch und schreibe mir die Daten und Werte erstmal in eine CSV und lese das nachträglich ein.
Das mit der DB als besseren Variante ist mir klar, es geht erstmal um einen Prototypen

Danke
Nur ein Mädchen, das nie so viel weiss, wie die Jungs :ugeek:
Benutzeravatar
pintman
User
Beiträge: 39
Registriert: Freitag 2. Dezember 2005, 20:43
Kontaktdaten:

Das klingt durchaus sinnvoll.

Eine DB ist nicht grundsätzlich eine bessere Wahl. CSV lassen sich auch schon mit pandas auswerten und visualisieren. Mit einem Jupyter-Notebook kommt man da schnell zu Ergebnissen.

In einem Podcast habe ich ein paar Gedanken zusammengefasst, die mir bei der Durchführung eines Projektes gekommen sind. Vielleicht ist das eine nette "Hintergrundbeschallung" während der Arbeit für dich. ;)

Eine weitere Lehre, die ich von David Kriesel übernommen habe: Behalte die Rohdaten. Manchmal weiß man später, wie man die Daten auswerten möchte. Auch falsche oder fehlende Werte fallen in den Rohdaten stärker auf.
Benutzeravatar
sparrow
User
Beiträge: 4506
Registriert: Freitag 17. April 2009, 10:28

@CoderGirl: Dein "Auslesen des Sensors" ist also das Abrufen des Wertes mittels http-Requests?
Dann solltest du in Betracht ziehen, kein dauerhaft laufendes Programm zu verwenden, sondern auf die Möglichkeiten des Betriebssystems zurückzugreifen.
nezzcarth
User
Beiträge: 1734
Registriert: Samstag 16. April 2011, 12:47

Ich würde das wie sparrow vorschlug lösen und (unter Linux) einen Cron Job anlegen. Die Daten legst du dann zum Beispiel als fortlaufende CSV/TSV Datei ab (<datum>\t<uhrzeit>\t<messwert>). Das Aufsummieren ist mit awk in ein paar Zeilen abgehandelt, kann aber natürlich auch in Python mit ein paar Zeilen mehr erfolgen. :)
Benutzeravatar
CoderGirl
User
Beiträge: 74
Registriert: Samstag 22. April 2017, 17:47

Hallo

danke Euch. Ich habe die Aufgabe direkt auf dem Controller lösen können :)
Ich habe dort eine Timer, der die Werte abgreift und dann dort aufsummiert :)

Danke
Nur ein Mädchen, das nie so viel weiss, wie die Jungs :ugeek:
Sirius3
User
Beiträge: 18220
Registriert: Sonntag 21. Oktober 2012, 17:20

Der Controller wird Schwierigkeiten haben, eine stabile Uhrzeit zur Verfügung zu stellen.
Antworten