===== Outdoor Messung ===== Eigentlich ist es fast das gleiche wie [[outdoor|Außentemperatur und Feuchtigkeit mit ESP01 - outdoor]], aber doch wieder neu. In der angeführten Version werden nach ein paar Tagen plötzlich keine Daten mehr übertragen, obwohl die Batterie noch geladen ist. Daher eine neue Version mit anderem Hardware-Aufbau, um das zu überprüfen und einen Ersatz zu haben, wenn ich den ersten Sensor auseinandernehme. Spannungsversorgung weiterhin eine 18650 Zelle. Spannungskonstanter jetzt aber ein "MCP1700-3302E/TO Spannungsregler LDO Positiv 250MA 3.3V ,6V" mit 100yF und 100nF Kondensator parallel. Info in [[https://randomnerdtutorials.com/esp8266-voltage-regulator-lipo-and-li-ion-batteries/|diesem]] Artikel. Den Sensor GY-21 habe ich per I2C an den ESP01 angeschlossen. Viele Pullup Wiederstände, die bei einem ESP01S schon drauf wären. Den habe ich aber wohl nicht, da man da schlechter den DeepSleep-Hack anlöten kann. Da hat mir [[https://www.forward.com.au/pfod/ESP8266/GPIOpins/ESP8266_01_pin_magic.html|dieser]] Artikel, der auf die Beschaltung des ESP01 eingeht und I2C behandelt, sehr geholfen. Im Sketch sind ein paar Verbesserungen drin. ESP.deepSleep() durch ESP.deepSleepImmediate() um 90ms zu sparen. Da Abbruch der Verbindung beim Wiederaufbau Probleme macht, nutzt man einfach einen anderen Quell-Port mit WiFi.setLocalPortStart() und merkt sich den im RTC RAM. [[https://blog.voneicken.com/projects/low-power-wifi-intro/|Quelle]] und der dortige [[https://github.com/tve/low-power-wifi/tree/master/esp8266-deep-sleep|SKETCH]]. Verbindungszeit liegt bei 2 Sekunden. Das liegt am verschlüsselten WLAN. Ohne Verschlüsselung ist man bei 0,8 Sekunden. Es ging natürlich erst mal wieder nicht. Dieses Mal saß aber der Fehler vor dem Computer. Ich hatte versucht im Sketch einen BME280 anzusprechen, hatte aber einen GY-21 Sensor verbaut. Man kann auch nach dem Sensor HTU21D suchen. Korrektur - Geht ! In mehreren Artikeln habe ich gelesen, wie mies die China 18650 Batterien sind. Eine [[https://www.ttt48.de/akku/lithium-ionen/18650/samsung-inr-18650-29e-36v-37v-2900mah-plus-pol-erhoeht-lithium-ionen-akku.html|Panasonic mit erhöhtem Pol]], die ich mir vorgestellt hatte, da sie relativ günstig ist (4€+3€), ist aber momentan ausverkauft. dann werde ich wohl mit den China-Böllern probieren oder die [[https://www.ttt48.de/akku/lithium-ionen/18650/samsung-inr-18650-29e-36v-37v-2900mah-lithium-ionen-akku.html|ohne Erhöhung]] (5€+3€) kaufen (2900mAh). Auch den ersten Outdoor-Sensor mit DHT22 und ohne I2C ist inzwischen auf die bessere Stromversorgung 'umgezogen' und hat schon 742 Messungen gemacht (Stand 10.01.2022). ** Von 16.12.2021 - 05.06.2022 wurden 7944 Messungen mit der Billig-Batterie gemacht, bevor sie leer war. Alle 30 Minuten eine Messung ergibt 171 Tage, also 5 Monate** Der zweite Aufbau mit I2C macht, nachdem der Aufbau nass geworden ist, nur noch Probleme. Der ESP01 startet nach dem Schlafen manchmal nicht, obwohl die Batterie noch ok ist. Ein kurzschliessen der Spannung und alles geht wieder eine Zeit lang. Das Problem ist wohl, dass der Sensor für die Feuchte jetzt auch 120% Feuchtigkeit misst - so ein Mist. Nachdem ich die Software angepasst habe, die das Eintragen ungültiger Daten verhindern sollte, geht es jetzt mal wieder. Nur das mit dem Kalibrieren muss ich noch machen. {{:pinout_ldo_1700.png?100|}} Nach schweren Regenfällen war der Sensor hin. Leider auch der Spannungswandler. Jedenfalls hab ich alles auseinandergebaut und der esp01 (esp8266) hat im Rechner nur noch den Fehler "esptool.FatalError: MD5 of file does not match data in flash!" gebracht. Da ich sowas schon bei dem LCD hatte, habe ich romprobiert und bin mit dem Befehl, den man von Version zu Version und Port zu Port ändern muss, erlöst worden. Ob der Fehler "A fatal error occurred: Timed out waiting for packet header" jetzt daran lag, dass der Port noch von Arduino-App belegt war, oder nur die Kontakte zu verrostet waren, ist mir jetzt nicht klar. Hauptsache es geht. sudo /Users/###/Library/Arduino15/packages/deauther/tools/python3/3.7.2-post1/python3 /usr/local/lib/python3.8/site-packages/esptool.py --port /dev/cu.wchusbserial1480 --chip esp8266 --baud 921600 write_flash_status --non-volatile 0 Lesen kann man den Status mit "read_flash_status". Ein paar weitere Ideen, z.B. das runterladen(!) des Flash sind [[https://bytemeta.vip/repo/espressif/esptool/issues/662|hier]] zu finden. Update Januar 2023: CH_PD / CH_EN / ENABLE Pin muss auf HIGH gelegt werden, damit der Chip einwandfrei funktioniert - auch beim ESP01S habe ich jetzt festgestellt. Wenn also die bleue LED so vor sich hin leuchtet, kann das ein Zeichen dafür sein. Nachdem der 2te Outdoor Sensor die Grätsche gemacht hat, versuche ich es jetzt mit ESP01S, Batterie mit Diode, statt Spannungskonstanter und Light-Sleep, sowie ESPNow Übertragung. Mal sehen, wie lange das hält. Zwei 330 Ohm Wiederstände zwischen den Pins zum GY-21 und dem ESP, mehr nicht - ach ja, aber die oben erwähnte Brücke VCC-CH_EN kam noch rein. Durch den Light-Spleep wacht der Chip ca. alle 4 Minuten auf. Erst nach ca. 30 Minuten baue ich aber die Verbindung auf und sende Daten. Vorher lege ich ihn gleich wieder schlafen. Stand Januar 2023