Hallo zusammen,
hier eine kurze Info für alle, die sich über einen vergleichsweise hohen Stromverbrauch des DS18B20 im Deep Sleep wundern und nach einer Lösung suchen.
Hardware/Software:
- ESP8266
- 3* DS18B20 (Quelle: eBay), in Betrieb mit externer Spannungsversorgung (nicht-parasitär)
- DS18B20 Library: GitHub - milesburton/Arduino-Temperature-Control-Library: Arduino plug and go library for the Maxim (previously Dallas) DS18B20 (and similar) temperature ICs
Stromverbrauch:
- Erwartungswert laut Datenblatt je Sensor: max ~1 μA im Standby
- Messwert für drei DS18B20: ~170 μA im Standby
- der erhöhte Verbrauch wird z.B. hier und hier in ähnlicher Größenordnung bestätigt.
Ursache, nach meiner Analyse: Es handelt sich eindeutig nicht um einen Verluststrom über den GPIO des ESP8266 im Deep Sleep, sondern um einen Verluststrom innerhalb der Sensoren (von VCC oder OneWire-Bus zu GND). Ob es an der Qualität der eBay-Sensoren liegt? Wer weiß…
Lösung:
Der erhöhte Verbrauch ist im Batteriebetrieb natürlich unerwünscht. Softwareseitig habe ich in OneWire/Temperature Control Library keinen Anhaltspunkt gefunden. Meine Lösung deshalb: die DS18B20 erhalten ihre Spannung jetzt über einen freien GPIO des ESP8266 (kann ~12mA, sollte ausreichen). Vor dem Deep Sleep schalte ich den GPIO auf LOW, der erhöhte Stromverbrauch hat sich damit erledigt.