===== Außentemperatur und Feuchtigkeit mit ESP01 - outdoor ===== Wie hier schon beschrieben, muss das ganze mit Batterien laufen. Versorgt wird der Sensor mit einer TR18650 und verbindet sich Stündlich mir meinem WLAN, um die Daten abzuliefern. Darüber kann man auch steuern, ob man mittels OTA neue Software aufspielen will, oder wie oft die Daten gepudert werden sollen, bevor sie an den Server übertragen werden. Aktuell wird halbstündlich gemessen, und Stündlich übertragen. Hauptproblem ist die kurze Batterie-Laufzeit von Tagen. Mehrere Informationen aus dem Internet habe ich inzwischen umgesetzt. ([[https://www.bakke.online/index.php/2017/06/24/esp8266-wifi-power-reduction-avoiding-network-scan/|Externer Link]]) WiFi ausschalten, bis man es braucht; Anmeldedaten, Kanal und IP des Routers im RTC-Memory speichern und bei Bedarf damit verbinden - hat sich der Kanal geändert, auf dem die FritzBox hört, dann der Fallback zur normalen Verbindung. Nicht zuletzt habe ich das Gerät vom Garten geholt (20m) und auf die Fensterbank gestellt. Hat alles zwar was gebracht, aber doch kein AHA-Effekt und alle 300 Zyklen (150 Stunden) ist die Batterie zu wechseln. Von den drei Batterien hält jetzt im Winter eine sogar viel weniger aus. Info: Wenn man es richtig macht, geht es auch richtig. Bei der Umstellung auf ESP-NOW habe ich festgestellt, dass ich dieses beschleunigte Anmelden nicht richtig gemacht hatte. Jetzt geht es, wo ich es fast nicht mehr brauche. 4,2 Sekunden : Verbinden, Daten austauschen 1,8 Sekunden : mit schnellem Connect 0,8 Sekunden : ohne WiFi-Verbindung (nur ESPNOW) Mir reicht! Neuer Versuch mittels ESPNOW. Damit geht mir OTA und andere Einstellungen verloren, da ich natürlich nichts mehr direkt an meine Server schicken kann, aber wenns was bringt. Im Internet hat jemand den ESPNOW Empfänger (auch ein ESP01) mit dem Raspberry über Serielle Schnittstelle verbunden und schreibt die Daten einfach per Serial.print raus. Ich versuche es anders, da ich nicht noch mehr anlöten will. Mit dem ESP-Flasher-Programmer-USB Sockel schiebe ich ihn einfach in den USB Port und sende die Daten dann per MQTT oder anders an den Raspberry... Problem dabei: der ESPNOW Empfänger kann nicht gleichzeitig eine WIFI Verbindung haben. Na, da ich ja sowieso nur alle 30 Minuten was machen will, warte ich auf Daten, kappe dann die zuhörende Verbindung, baue sie zum Raspberry auf, übertrage die Daten, und gehe dann wieder in den Zuhörer-Modus. Was mich wieder viel Zeit gekostet hat: Der Sender muss mit WIFI_STA und der Empfänger mit WIFI_AP initialisiert werden. Aktuell Broadcastet der Sender (dann könnten meine Nachbarn auch was davon haben, wenn sie wollen). Zweites Problem ist der Kanal, auf dem gesendet wird. Nutzt man beim Sender nur ESPNOW, kann man den Kanal festlegen. Baut meine eine Verbindung zu Router auf, wird der Kanal vom Router verwendet, um zu senden - das ist für den Empfänger natürlich suboptimal. Sende jetzt als erstes auf Kanal 1 mit ESPNOW und dann, mache ich die WLAN Verbindung auf. Am Empfänger schalte ich nach dem Datenerhalt kurz auf WLAN um und schicke es an den Server. Nicht schön, aber geht. Der DHT22 braucht eine Zeitlang, bis er warm wird. Vor dem ersten Lesen musste ich einen Delay einbauen. Das habe ich im init() ganz an den Anfang gestellt. pinMode(DHTPin, INPUT); delay(250); dht.begin(); Sicherheitshalber frage ich beim lesen der Daten noch auf NaN ab und mache eine kurze pause, bevor ich erneut lese. Als ich den dht.begin() in die Methode mit reingenommen habe, ohne delay(), hat er viel länger als jetzt gebraucht - ich habe keine Ahnung warum. Bin noch dran, also ganz fertig ist es noch nicht ;-) Mit einem neuen Spannungs-Konstanter von [[https://de.aliexpress.com/item/1005001592888386.html?spm=a2g0s.9042311.0.0.27424c4d5zVoCg|AliExpress]] auf 3.3V und weniger Ruhestrom habe ich jetzt 35 Tage Batterielaufzeit mit einer Messung alle 30 Minuten was dann so ca. 1.600 Messungen sind.Ich bin eigentlich zufrieden :) Update Januar 2023: Der zweite USB-Programmer macht Probleme. Statt zu programmieren kommt eine Kryptische Fehlermeldung: "WARNING: Detected crystal freq 155.64MHz is quite different to normalized freq 40MHz. Unsupported crystal in use" und dann "timed out waiting for packet header". Ist wohl was kaputt, mit meinem 'alten' Programmer geht es nämlich. Stand: Januar 2023