Weather station telemetry with ESP8266 or ESP32 on batteries for years?

Alex Jensen is conceiving hardware for a low-power DIY weather station with WiFi and is writing about it on his blog at ESP8266 on batteries for years ff.:

The ESP is a hungry beast when it’s doing WiFi. According to different sources on the internet it uses about 70 mA on average when WiFi is on! This would mean that I have to change batteries on my sensor quite some times every year.

I instead came up with the idea of a design using an AtTiny85 for doing frequent measurements and then once in a while to wake up the ESP beast to transmit it’s recorded data to the server.

Cheers!

Pictures

Source code

1 Like

Der Strom"verbrauch" ist schon klasse! Für unser setup ist das vermutlich nur bedingt möglich, weil der Speicher des AtTiny85 für unsere Bibliotheken vermutlich nicht reichen wird.

Das Konzept ließe sich doch bestimmt auch mit einem ATmega umsetzen!?

Der ESP32 hat ja auch einen Ko-Prozessor vermutlich genau für so was.

Dass der ESP32 zwei Kerne hat, wusste ich. Ob man damit allerdings ähnliche Szenarien realisieren kann, glaub ich jetzt erstmal nicht. Aber vielleicht doch? ;]

Es ist nicht der zweite Kern, sondern der Ultra Low Power coprocessor (ULP), habe noch nicht recherchiert, ob der das kann, was wir wollen: http://esp-idf.readthedocs.io/en/latest/api-guides/ulp.html

1 Like

Yeah, wir müssen das Teil zwar scheinbar in Assembler programmieren:

ULP coprocessor code is written in assembly […]

https://esp-idf.readthedocs.io/en/latest/api-guides/ulp.html#installing-the-toolchain

dann liefert es uns aber genau das, was wir uns wünschen:

ULP coprocessor can run while the chip is in deep sleep, and may be used to poll sensors, monitor ADC or touch sensor values, and wake up the chip when a specific event is detected. ULP coprocessor is part of RTC peripherals power domain, and it runs the program stored in RTC slow memory. Therefore RTC peripherals and RTC slow memory will be powered on during deep sleep if this wakeup mode is requested.

https://esp-idf.readthedocs.io/en/v2.0/api/system/deep_sleep.html#ulp-coprocessor-wakeup

Danke für diese Denkrichtung!

Also Sensoren werden wir mit dem Ding nicht großartig betreiben (außer jemand schreibt uns entsprechende Treiber in Assembler Code ;]), aber als Vehikel zum Aufwecken des ESP32 in Verbindung mit einem ATmega könnte man es durchaus einsetzen à la: ATmeta bedient die Sensoren und kippt die Meßwerte über den ULP Koprozessor ins slow-memory des ESP. Der Hauptprozessor wird dann im Zyklus aufgeweckt und telemetriert die Werte weiter.

Ein ähnliches Projekt, allerdings mit LoRa ATtiny85 + RFM95 Temperature Sensor - End Devices (Nodes) - The Things Network

Weitere Tipps zum Strom sparen mit dem ESP32 tragen wir unter Low power ESP32: Hardware and Software zusammen.