home   Inhaltsverzeichnis

Temperatur- und Helligkeits-Logger V2 - Seite 2


die Leiterplatte oder auch "das Shield" ist fertig

Fertig aufgebaut sieht der LoggerV2 jetzt so aus:
Foto vom Temperatur- und
        Helligkeits-Logger V2 mit WeMos D1 mini

Auch die Bestückungsseite ist sehr übersichtlich:
Foto vom Temperatur- und
        Helligkeits-Logger V2 mit WeMos D1 mini, Shield abgenommen

Und es war flott gemacht. Alles in allem maximal 30 Minuten Zeitaufwand. Dafür habe ich aber prompt einen Fehler eingebaut, der sich jedoch leicht per Software beheben ließ. Bei der Beschaltung des LDR habe ich den LDR an Masse und den 10KΩ-Widerstand an +3,3V gelegt. Damit gibt es bei Dunkelheit hohe Werte vom ADC. Ein (1023-ADC_wert) dreht es wieder richtig und außerdem musste ich an der Stelle ohnehin fixen. Konkret muss vom gemessenen Wert 68 abgezogen werden, damit absolute Dunkelheit den Wert 0 ergibt.
Und zu diesem blöden GPIO16 habe ich noch herausfinden dürfen, dass dafür nicht mal mittels pinMode(16, INPUT_PULLUP) der interne Pullup zugeschaltet werden kann. Also INPUT klappt schon, aber INPUT_PULLUP hat keinen Effekt. Macht aber nix - dann wird eben GPIO14 für den Sonder-Sync-Taster genutzt.

Morgen muss ich noch die Sende-Funktion einbauen und dann ist die Einheit #2 fertig.
Derzeit sieht ein Minuten-Durchlauf noch so aus:
2017.02.03 21:24:02   1486157042   1   Messwerte holen und ablegen in sensorMinute_g[0]
21.50  447  0
2017.02.03 21:24:07   1486157047   1   Messwerte holen und ablegen in sensorMinute_g[1]
21.50  464  0
2017.02.03 21:24:12   1486157052   1   Messwerte holen und ablegen in sensorMinute_g[2]
21.50  426  0
2017.02.03 21:24:17   1486157057   1   Messwerte holen und ablegen in sensorMinute_g[3]
21.50  468  0
2017.02.03 21:24:22   1486157062   1   Messwerte holen und ablegen in sensorMinute_g[4]
21.50  425  0
2017.02.03 21:24:27   1486157067   1   Messwerte holen und ablegen in sensorMinute_g[5]
21.50  453  0
2017.02.03 21:24:32   1486157072   1   Messwerte holen und ablegen in sensorMinute_g[6]
21.50  467  0
2017.02.03 21:24:37   1486157077   1   Messwerte holen und ablegen in sensorMinute_g[7]
21.50  430  0
2017.02.03 21:24:42   1486157082   1   Messwerte holen und ablegen in sensorMinute_g[8]
21.44  445  0
2017.02.03 21:24:47   1486157087   1   Messwerte holen und ablegen in sensorMinute_g[9]
21.44  467  0
2017.02.03 21:24:52   1486157092   1   Messwerte holen und ablegen in sensorMinute_g[10]
21.44  422  0
2017.02.03 21:24:57   1486157097   1   Messwerte holen und ablegen in sensorMinute_g[11]
21.44  467  0
2017.02.03 21:25:00   1486157100   1   Mittelwerte über sensorMinute_g bilden und ablegen in sensorHour_g.data[24]
21.44  448  0
0000  58 F1 1B 58 01 1D 58 A1 1A 58 41 1D 58 91 1A 58  X�.X..X�.XA.X�.X
0010  51 1C 58 31 1D 58 E1 1A 57 D1 1B 57 31 1D 57 61  Q.X1.X�.W�.W1.Wa
0020  1A 57 31 1D                                      .W1.


2017.02.03 21:26:00   1486157160   1   Mittelwerte über sensorMinute_g bilden und ablegen in sensorHour_g.data[25]
21.37  446  0

2017.02.03 21:27:00   1486157220   1   Mittelwerte über sensorMinute_g bilden und ablegen in sensorHour_g.data[26]
21.37  446  0

2017.02.03 21:28:00   1486157280   1   Mittelwerte über sensorMinute_g bilden und ablegen in sensorHour_g.data[27]
21.31  448  0

2017.02.03 21:29:00   1486157340   1   Mittelwerte über sensorMinute_g bilden und ablegen in sensorHour_g.data[28]
21.25  449  0

2017.02.03 21:30:00   1486157400   1   Mittelwerte über sensorMinute_g bilden und ablegen in sensorHour_g.data[29]
21.25  446  0

2017.02.03 21:31:00   1486157460   1   Mittelwerte über sensorMinute_g bilden und ablegen in sensorHour_g.data[30]
21.25  446  0

Der ADC des ESP-12E bereitet mir etwas Sorgen. Der scheint ziemlicher Murks zu sein. Die Einheit lag in der abgebildeten Minute bereits mehrere Minuten unbeweglich hinter meinem Monitor bei gleichbleibendem Kunstlicht und trotzdem pendelt der LDR-Messwert zwischen 422 und 468.

Betrachte ich allerdings nur die folgenden Minuten-Mittelwerte, sehen die Werte schon deutlich gleichmäßiger aus.
Vielleicht ist es beim ATmega328 auch nicht anders. Ich weiß nicht mehr, ob ich mir das da auf ähnliche Weise angesehen habe.
Und...btw.: die sinkende Temperatur liegt darin begründet, dass das Fenster offen war.


Firmware V2.0

Heute um 13:24 Uhr war die Firmware soweit, dass ich den ersten längeren Test hier im Büro habe laufen lassen.
Erstmal jedoch mit einem Socket-Server auf einer anderen VM - schließlich will ich die Datenbank mit Messwerten von fast einem Monat nicht mit potentiell schlechten Daten versudeln.
Um 14:54 Uhr habe ich den Sonder-Sync-Taster gedrückt und bekam valide aussehende Daten für beide Sensoren angezeigt:
erste Messwerte aus dem Büro mit
        LoggerView
Die bläuliche Kurve ist die Helligkeit und denen Flanken sind um 13:27 Licht aus und um 14:45 Licht an. Der LDR guckte während der Dunkel-Phase in den Papier-Auslass des Druckers - da war es offenbar dunkler, als angenommen.
Dann hatte ich die Idee, mit der Schaltung ins Wohnzimmer umzuziehen und sie direkt neben Logger-01 Daten sammeln zu lassen. So könnte man ja schön vergleichen, wie sehr die Messwerte voneinander abweichen.
Nach kurzer Sammel-Zeit habe ich an beiden Loggern die Sonder-Sync-Taste gedrückt. Blöderweise hatte ich für Logger-01 schon vergessen, ob die obere Taste nun Reset oder Sonder-Sync auslöst....und natürlich war es Reset. Meinen Fehler habe ich quasi direkt am LED-Blink-Verhalten erkennen können. Erste Idee: "Scheiße! Gerade acht Stunden Daten gelöscht". Daher also sofort zurück ins Büro und erstmal zwei keine Aufkleber gedruckt - damit das nie wieder passiert. Nach dem nächsten Sonder-Sync und anschließendem umkopieren der Datenbank-Datei fehlten jedoch nur 18 Minuten. Da hatte ich offensichtlich schon verdrängt, dass Logger-01 am Ende jeder Stunde alles ins EEPROM umkopiert. Schön. So hat der RAM-Platzmangel des ATmega328 ja auch was gutes.

Der Vergleich der Daten war jedoch eine ziemliche Ernüchterung. Bei den LDR-Werten habe ich ja durchaus ein gewisses Delta erwartet - nicht jedoch bei den Temperatur-Werten.
Die Werte von Logger-01 passen recht gut zur Anzeige eines Standard-Thermometers, die von Logger-02 lagen über 6°C höher. Angeblich 27°C. Sonderbar. Hier im Büro sahen dessen Werte noch valide aus.
Es wird doch hoffentlich nicht daran liegen, dass der WeMos-D1mini (bzw. dessen 3.3V-Regler) selbst warm wird und damit den nicht sehr weit entfernt platzierten DS18B20 mit (5V-3,3V)*15mA=25,5mW heizt...!?
Die Einheit aus den zwei Leiterplatten lag so, dass meine Leiterplatte unten war. Wärme steigt nach oben. Und sooo warm wird das Mistding doch wohl nicht werden!?
Wenn es doch so wäre, müsste ich die Sensor-Einheit wie beim Außensensor des Logger-01 in ein abgesetztes Gehäuse auslagern. Das wäre aber sehr unschön. Einerseits könnte ich die jetzige Leiterplatte mit den zwei Sensoren wegschmeißen und anderseits war die Idee bei dieser Strom-verschwendenden Einheit ja, dass sie mit geringstmöglichem Aufwand herzustellen ist.
Bevor ich meine Leiterplatte wegschmeiße, sollte ich es vorher mit einem hinreichend dicken Stück Alu-Blech zwischen den Leiterplatten probieren. Oder eher "Alu-Profilschiene". Davon müsste ich noch reichlich Reste haben.

Vielleicht hat es ja auch etwas mit der Art oder Güte der Stromversorgung zu tun. Hier im Büro kam der Strom aus USB-Ports mit vernünftigen Rechner-Netzteilen dahinter, im Wohnzimmer kam er die meiste Zeit aus dem USB-Port eines WDR4300, kurzfristig auch aus einem Sony-USB-Lade-Stecker.

Ich mag sowas nicht. Da verliert man direkt die Motivation, eine dritte Einheit zu bauen.
Zuerst muss die Ursache des Fehlers eindeutig identifiziert und abgestellt sein.

Auf der nächsten Seite geht es weiter.