Go Down

Topic: Niedrigste Themperatur auslesen (Read 550 times) previous topic - next topic

Arduino_Junky

Hallo, ich bin noch Anfänger in der Programierszene und hätte da ne Frage.
Ich möchte für meinen Hühnerstall einen Themperatursensor installiern und dann die niedrigste Themperatur des Tages auf einem Display anzeigen lassen.
Das Auslesen des Sensors ist nicht das Problem sondern wie kann ich dem Arduino sagen er soll die niedrigste Themeratur auslesen?

HotSystems

Der Arduino wird alle Temperaturen auslesen und du musst darauf die niedrigste nach einem Vergleich anzeigen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Tommy56

#2
Dec 10, 2018, 07:32 pm Last Edit: Dec 10, 2018, 07:34 pm by Tommy56
Also etwa so (Pseudocode):
Code: [Select]

float minTemp = 9999.9;
...
// im loop
float temp = messen();
if (temp < min) minTemp = temp;
Serial.println(minTemp);

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Doc_Arduino

Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

postmaster-ino

Hi

Tagsüber solltest Du diese Temperatur aber wieder resetten, sonst bekommst Du eher eine Anzeige 'tiefste Temperatur seit 10.12.18'.

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Arduino_Junky

Danke für die schnelle Antwort und den Code.
Ich werde die Themperatur natürlich am Tag wieder zurücksetzen,vermutlich über den Lichtsensor,der sowieso verbaut ist da die automatische Klappe auch über diesen Sensor gesteuert wird.

postmaster-ino

Hi

Wobei ich hier dann den Reset auf den Zeitpunkt setzen würde, an Dem die Klappe wieder zu fährt.
So hast Du den ganzen Tag die tiefste Nacht-Temperatur gespeichert und musst nicht noch vor den Hühnern am Hühnerstall sein, um diese Temperatur auszulesen :o

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Tommy56

Das ist ein guter Einwand, denn mit dem Helligkeitssensor wird es arg früh ;)

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

qualidat

Man kann auch eine Art Warteschlange bilden (Array), durch das man die Temperaturen der letzten 6, 12 oder 24h schiebt und davon dann jeweils die niedrigste anzeigen. Die neuesete Messung verdrängt jeweils die älteste.

So kommt man um die Mühe herum, das System irgendwie mit der Uhrzeit (RTC, DCF) oder dem Tagesablauf (Helligkeitssensor) synchronisieren zu müssen.

Für Anzeigen, die sich nur selten ändern und wenig Strom verbrauchen sollen, sind übrigens E-Paper besonders gut geeignet.

noiasca

#9
Dec 13, 2018, 08:13 am Last Edit: Dec 13, 2018, 08:18 am by noiasca
Man kann auch eine Art Warteschlange bilden (Array), durch das man die Temperaturen der letzten 6, 12 oder 24h schiebt und davon dann jeweils die niedrigste anzeigen. Die neuesete Messung verdrängt jeweils die älteste.
klingt interessant, nur musst dann ziemlich viel RAM frei haben wenn du 24h * 6 ("alle 10 Min") * 2 (für int) im Speicher halten willst. Eine nette Übung für einen FIFO Speicher wäre es aber allemal.

Vieleicht als Idee: sich einfach zum jeweiligen Min und Max auch den millis Zeitstempel merken, und einen Wert der älter als 24h ist, auch überschreiben wenn das Min nicht unterschritten ist (bzw das Max überschritten). das müsste mit zwei Int und zwei uint32_t also 6 Byte RAM zu schaffen sein .
DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

Whandall

sich einfach zum jeweiligen Min und Max auch den millis Zeitstempel merken, und einen Wert der älter als 24h ist, auch überschreiben wenn das Min nicht unterschritten ist (bzw das Max überschritten).
Das überdeckt 24 Stunden lang alle anderen Werte, ist eher ungünstig denke ich.
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

postmaster-ino

Hi

Stichwort: FRAM
Für meine Finger als SMD zwar irgendwie ... nun ja ... aber Da muß man dann halt durch.
Als DIP-8 nur bis 512 Byte (4kb =k-Bit, kleines B) - verwende ich hier aber auch gerne.
Die SMDs sind bisher nur auf Adapter-Platinen gelandet, zwei grinsen mich gerade an und müssten Mal verdrahtet werden - Da wären dann 32kB (=256kb - wieder kleines B) Platz drin, maximal 8 Stück von den 32kB und maximal 4 von den 512Byte'ern können zusammen am gleichen I²C-Bus hängen.

Zumindest mit der 256k-Bit-Variante sollten sich auch ein paar mehr Messungen aufheben lassen - wie EEprom Datenerhalt bei Spannungsausfall.

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Theseus

Wenn man einen gleitenden Wert haben will, könnte man jeweils die niedrigste Temperatur in Stundenintervallen ermitteln. Dann würden 24Byte zum Speichern reichen. Das sollte selbst bei umfangreichen Projekten drin sein.

Go Up