ESP8266 im Batteriebetrieb

Microcontroller wie der ESP8266 sind aufgrund der WLAN-Konnektivität praktisch und eignen sich (eingeschränkt) auch für den Betrieb mit Batterien. Für den Einsatz des ESP8266 im Batteriebetrieb kann es sinnvoll sein, einen sog. deep sleep Modus zu nutzen. Die Betriebsdauer lässt sich damit erheblich verlängern. Der Beitrag beschreibt einen Testaufbau und verschiedene Testszenarien, um beispielhaft Möglichkeiten für den ESP8266 im Batteriebetrieb aufzuzeigen.

Bearbeitungsstand 20.01.2023

Das Messverfahren

Hardware

Für die Messungen wird ein ESP8266 D1 Mini verwendet. Des weiteren wird ein 680 kOhm Widerstand, eine Geichrichterdiode, ein Elektrolytkondensator und verschieden Alkali-Batterien (hier durchgängig Alkali Batterien von Aldi)  benötigt. Die Batteriespannung wird über den ADC des ESP8266 gemessen. Da der ADC eine Maximalspannung von 3,3V verträgt, erhält der ADC einen Vorwiderstand. Dieser bildet mit der internen Beschaltung des ADC mit einem 100 kOhm und einem 220 kOhm Widerstand einen Spannungsteiler, der die Batteriepspanung auf ein Drittel reduziert.  Die Batteriespannung wird mit einem 1000 muF Elekrolytkondensator mit vernachlässigbarem Leckstrom am 3,3V Anschluss des ESP gepuffert.

Datenlogging

Das Datenlogging erfolgt über einen Webserver mit einem einfachen Werbservice in PHP. Die Daten werden auf dem Webserver in eine CSV-Datei geschrieben.

Relationenmodell: messung(Unix-Timestamp, Zeit menschenlesbar, Kurzbeschreibung, ADC vor WLAN, ADC mit WLAN, Dauer WLAN-Aufbau in ms)

Aufbau für Betriebbsspannungen unter 3,6 V

Für kleine Spannungen wird der 3,3 V-Anschluss des ESP direkt genutzt. Der interne Spannungsregler ist ein einfacher Linearregler, der das problemfrei verträgt.

Aufbau für Betriebssapnnungen über 3,6 V

Für größere Spannung wird der 5V Anschluss des ESPÜ genutzt. Intern ist der 5V-Anschluss über einen Schutzdiode mit dem USB-Anschluss verbunden. Der Betrieb über eine externe Schutzdiode lässt eine einfaches Programmieren bei Verbleib der Batterie im Testaufbau zu.

Algorithmus

Jede Minute:
 Erste Messung der Betriebsspannung
 Aufbau der WLAN Verbindung
 Zweite Messung der Betriebsspannung
 Übertragung der Werte an den Webservice
 Abbau der WLAN-Verbindung
 Pause (delay) oder deep-sleep, jeweils 54 Sekunden

Software

Der Quellcode (für die Arduino-IDE) st weiter hinten im Anhang.

Testszenarien

Test 1: Energieversorgung mit drei AAA Batterien, WLAN-Abschaltung ohne deep sleep

Der Anschluss der Batterien erfolgte über Schutzdiode am 5V Anschluss des ESP. Die Leerlaufspannung betrug zum Startzeitpunkt 4,79V, bei Abbruch der Messreihe 2,7V. Start der Messung war am 24.12.2024 21:26, Die Messreihe brach ab am 30.12.2023 4:41. Die Betriebsdauer betrug demnach etwa 127 Stunden oder etwas über fünf Tage.

Beim Start betrugen die ADC-Werte 519 und 502, die Spannung fällt also nach Einschalten des WLAN leicht ab.

489 Stunden später betrugen die ADC-Werte 421 und 417 bei eine gemessenen Spannung von 4,39V

Der Strom während der WLAN-Verbindung stieg bis zu 170 mA, währende der Pausen betrug der Strom 35 mA.

Test 2: Energieversorgung mit drei AAA Batterien, WLAN-Abschaltung und deep-sleep

DER TEST LÄUFT DERZEIT NOCH – WIRD FORTGESETZT

Der Anschluss der Batterien erfolgte über Schutzdiode am 5V Anschluss des ESP. Die Leerlaufspannung betrug zum Startzeitpunkt 4,79V, bei Abbruch der Messreihe 2,7V. Start der Messung war am 25.12.2024 xx:xx, Die Messreihe brach ab am xx.01.2023 x:xx. Die Betriebsdauer betrug demnach etwa xxx Stunden oder etwas über fünf Tage.

Die Werte des ADC waren bei der letzen Messung xxx und xxx

Der Strom während der WLAN-Verbindung stieg bis zu 170 mA, währende der Pausen betrug der Strom etwa 2,5 mA.

Test 3: Labortest Energieversorgung mit zwei AA Batterien, WLAN- Abschaltung und deep-sleep

Beschreibung des Testszenarios

Der ESP8266 wird direkt am 3,3V Anschluss mit zwei AA Batterien betrieben. Parallel zu den Batterien ist ein 1000muF Elektrolytkondensator geschaltet. Der ADC des ESP ist über einen 680kOhm Vorwiderstand an die Batterie angeschlossen. Die Schaltung liegt offen in einem Wohnraum mit 21°C-23°C und 32%Luftfeuchtigkeit. Der WLAN-Accesspoint (Fritzbox) ist in 3m Entfernung getrennt durch eine 11,5cm Kalksandstein-Mauer.

Der ESP sendet Daten über WLAN und Internet etwa jede Minute, deep sleep ist 54 Sekunden bei 90muA, die Betriebsdauer je Sendezyklus 6 Sekunden bei etwa 170 mA

Testzeitraum

Start: 03.01.2024 17:34 Ende 18.01.2024 04:19.

Einzelmesswerte

Zu Beginn der Messreihe liefert der ADC ohne WLAN einen Wert von 336 und mit WLAN von 334 bei einer gemessenen Spannung von 3,21V. Weitere Messwerte:

Zeitpunkt        | Spannung|ADC o. WLAN | ADC m. WLAN
-----------------+---------+------------+-------------
03.01.2024 17:34 |3,21V    |336         |334
-----------------+---------+------------+-------------
05.01.2024 12:37 |2,91V    |303         |302
-----------------+---------+------------+-------------
08.01.2024 15:11 |2,75V    |290.        |288
-----------------+---------+------------+-------------
14.01.2024 11:38 |2,48V    |264         |257
-----------------+---------+------------+-------------
18.01.2024 04:19 |n.g.     |221.        |209
-----------------+---------+------------+------------


Liste: Einzelmessung (manuell) für den Labortest mit Start am 03.01.2024 und Ende 18.01.2024. Bei einem Messzyklus von etwa 1 Minute lief der Sender 14 Tage und 11 Stunden.

Ergebnisbewertung

Mit einem direkten Anschluss (an 3,3V) von 2 Alkali-Batterien im Format AA lässt sich ein Temperatursender mit einem ESP8266 über 14 Tage betreiben, wenn einmal pro Minute Daten übertragen werden.

Mit einer Verlängerung des Messzyklus auf 5 Minuten sollte so bis zu 70 Tage und damit mehr als zwei Monate möglich sein. Bei einem Discounterpreis von 1,95€ für 10 Batterien ließe sich ein Sensor mit 365/70*2*0,195€=2,03€ betreiben. Auch in Anbetracht der Lebensdauer elektronischer Komponenten sowie deren ökologischen Gestehungskosten (Abbau von Lithium, Verwendung seltener Erden, problematisch zu entsorgende Komponenten) scheint ein Betrieb mit Alkali-Einmalbatterien sowohl betriebswirtschaftlich als auch ökologisch sinnvoll zu sein.

 

Test 4: Feldtest „Temperaturlogger Efeu“ Energieversorgung mit 2 AAA Batterien (LR03), deep sleep, 4 Temperatursensoren DS18B20

Beschreibung des Testszenarios

Der ESP8266 wird direkt am 3,3V Anschluss mit zwei AAA Batterien betrieben. Parallel zu den Batterien ist ein 330muF Elektrolytkondensator geschaltet. Direkt an den Batterien ist ein Strang mit 4 paralellel geschalteten Temperatursensoren DS18B20 angeschlossen. Der ADC des ESP ist über einen 680kOhm Vorwiderstand an die Batterie angeschlossen. Die Schaltung ist mit den Batterien in einer Emsa Haushaltsdose untergebracht, die Dose liegt auf dem Blechdeckel einer Bienenbeute. Der WLAN-Accesspoint (TP-Link Nano) ist in 3m Entfernung aufgebaut. Der Messaufbau war an einigen Tagen Temperaturen unter -5°C  ausgesetzt.

Der ESP sendet Daten über WLAN und Internet etwa jede Minute, deep sleep ist 54 Sekunden, die Betriebsdauer je Sendezyklus 6 Sekunden

Testzeitraum

Start: 06.01.2024 20:46, Ende 12.01.2024 20:45, Laufzeit 6*24=144 Stunden

Berechnung des Stromverbrauchs

deep sleep 90muA = 0,09mA, im Betrieb maximal 170mA, mittlerer Strombedarf (54s*0,09mA+6s*170mA)/60s=17,081mA, Gesamtstrommenge während der Laufzeit 144h*17,081mA=2459,664mAh. Die Berechnung wird die Gesamtstrommenge überschätzen, es ist von einer Kapazität von etwa 1200mAh  auszugehen (Quelle: Wikipedia)

Einzelmesswerte

Zu Beginn der Messreihe liefert der ADC ohne WLAN einen Wert von 351 und mit WLAN von 243. Bei der letzten Messung liefert der ADC ohne WLAN einen Wert von 214 und mit WLAN von 188. Die Batterien waren nach der Messreihe weitgehend entladen, am 14.01.2024 lieferten die Batterien noch 1,09V und 0,46V

Ergebnisbewertung

Über 6 Tage lässt sich ein ESP8266 als WLAN-Temperaturlogger mit zwei AAA Batterien betreiben. Für kurze Messreihen ist der einfache Aufbau gut geeignet. Für längere Messreihen wären zusätzliche Maßnahmen erforderlich:

  • Nutzung von 2 AA Batterien, dadurch kann sich die Betriebszeit mehr als verdoppeln (Siehe hierzu den Artikel auf  https://www.tecchannel.de/a/batterie-test-kaelte-reduziert-leistung-um-bis-zu-40-prozent,2023671,5    , Dort steht: „Die Messungen der Alkaline-Batterien – hier am Beispiel Activ Energy (Aldi) – offenbaren im Vergleich zum Lithium-Energiespender deutliche Unterschiede im Kurvenverlauf der Entladespannung. Sowohl bei einem Laststrom von 100 mA als auch bei 500 mAh sinkt die Batteriespannung rasch unter den Schwellwert von 1,2 Volt. Dies kann zur Folge haben, dass sich die elektrischen Geräte vorzeitig ausschalten, obwohl die Batterie noch genügend elektrische Restkapazität besitzt. Die Alkaline-Batterien erreicht bei einem Laststrom von 100 mA eine Kapazität von 2156 mAh und bei 500 mA nur noch 1273 mAh.“)
  • Verlängerung der deep-sleep Zeit auf z.b. 4Min54s. Dies. sollte eine Verlängerung um den Faktor  ((54s*0,09mA+6s*170mA)/60) / ((254s*0,09mA+6s*170mA)/300) =17,081mA/3,41mA=5 bewirken, also auf etwa einen Monat.
  • Nutzung einer anderen ESP-Version z.B. ESP07. Das reduziuert allerdings lediglich den Strom im deep sleep und hat, wenn die deep sleep Zeit nicht erheblich (Faktor 1000..) größer ist als die Betriebszeit, ehre geringere Auswirkungen.

Ein Kombination des Betriebs mit 4 AA Batterien (jeweils 2 parallel) in Kombination mit einer deep sleep Verlängerung um einen Faktor 5 würde eine Betriebszeit von 4 Monaten bewirken. Damit taugt die Einrichtung z. B. zur Überwachung von Bienenstöcken, die i.d.R. nicht länger als 4 Monate unbeaufsichtigt bleiben.

Test 5: Feldtest „Temperaturlogger Garage“ Energieversorgung mit 3 AAA Batterien (LR03) und LDO, deep sleep, 3 Temperatursensoren DS18B20

DER TEST LÄUFT DERZEIT NOCH – WIRD FORTGESETZT – ES LIEGT NOCH KEIN ENDGÜLTIGES ERGEBNIS VOR

Beschreibung des Testszenarios

Der Testaufbau folgt den Ergebnissen aus Test 4.

Der ESP8266 wird über einen separaten LDO (MCP1702 303) am 3,3V Anschluss mit drei AAA Batterien betrieben. Parallel zu den Batterien ist ein 4,7muF Elektrolytkondensator geschaltet, parallel zum 3,3V Anschluss des ESP = LDO Ausgang 330muF. Am LDO-Ausgang st ein Strang mit 3 paralellel geschalteten Temperatursensoren DS18B20 angeschlossen. Der ADC des ESP ist über einen 680kOhm Vorwiderstand an die Batterie angeschlossen. Die Schaltung ist in einer Hochschule-Niederrhein-Brotdose untergebracht, die Dose liegt auf dem Blechdeckel einer Bienenbeute auf dem Garagendach eines Wohnhauses. Der WLAN-Accesspoint (Fritzbox) ist in 7m Entfernung, durch zwei Kalksandstein-Wände, aufgebaut. Der Messaufbau war an einigen Tagen Temperaturen unter -5°C  ausgesetzt.

Der ESP sendet Daten über WLAN und Internet alle 4Min.51, deep sleep ist 4 Minuten und 54 Sekunden, die Betriebsdauer je Sendezyklus kann bis zu 6 Sekunden betragen.

Testzeitraum

Start: 08.01.2024 15:22, Ende NOCH NICHT ERREICHT, Laufzeit LÄUFT NOCH

Einzelmesswerte

Zu Beginn der Messreihe liefert der ADC ohne WLAN einen Wert von 499 und mit WLAN von 489 ohne WLAN.

Weitere Messwerte:

Zeitpunkt        | Spannung|ADC o. WLAN | ADC m. WLAN
-----------------+---------+------------+-------------
08.01.2024 15:22 |n.g.     |499         |489
-----------------+---------+------------+-------------
08.01.2024 23:59 |n.g.     |483         |480
-----------------+---------+------------+-------------
10.01.2024 23:59 |n.g.     |459         |447
-----------------+---------+------------+-------------
12.01.2024 23:59 |n.g.     |450         |437
-----------------+---------+------------+-------------
14.01.2024 15:10 |n.g.     |441         |429
-----------------+---------+------------+-------------
20.01.2024 12:12 |n.g.     |418         |403

Liste: Einzelmessung (manuell) für den Feldtest (Test 5) mit 3 AA Batterien und LDO

Ergebnisbewertung

Vorläufig: Seit 12 Tagen läuft der Aufbau- noch lässt sich kein abschließendes Urteil fällen.

Ein Vorteil dieser Lösung gegenüber einem direkten Anschluss von nur 2 Batterien ohne LDO von 3,3V ist, dass die Betriebsspannung und damit die erwartete WLAN Leistung höher ist.

Zusammenfassung der Ergebnisse für ESP8266 im Batteriebetrieb

Tab. 1 zweigt zusammenfassend die Messwerte. Mit deep-sleep sind bei den hier gewählten Szenarien (6-7 Sekunden Betrieb, 54 Sekunden Pause oder deep sleep) Betriebsdauern bis zu xxx Stunden möglich. Ein längere Betriebsdauer lässt sich durch längere Pausen erreichen.

Szenario                   Betriebsdauer Strom Durchschnitt Kosten
==========================================================
"Test 1" 3*AA  "Pause"       127h,  5d     50mA               11Cent/d 40,15€/a 
"Test 2" 3*AA  "deep-sleep1" ???           19mA
"Test 4" 2*AAA "deep-sleep1" 144h,  6d     17mA.              6,3Cent/d 23,11€/a
"Test 3" 2*AA  "deep-sleep1" 347h, 14d     17mA.              2,7Cent/d  9,90€/a

Tab. 1: Zusammenstellung der Messergebnisse. deep-sleep1 bedeutet 54s deep sleep und 6s WLAN Betrieb, deep sleep2 bedeutet 254s deep sleep und 6 s WLAN Betrieb.

Anhang

Quellen

Batteriepreise, z.B. Aldi AAA Alkaline: https://www.aldi-nord.de/sortiment/haushalt/batterien-akkus-feuerzeuge/super-alkaline-batterien-1006764-0-0.article.html

Glossar

deep sleep

deep-sleep ist ein Betreitschaftszustand eines Microcontrollers, bei dem besonders wenig Strom benötigt wird, aber auch viele Funktionen abgeschaltet sind. I.d.R. wird ein ein externes Signal benötigt, um ein Gerät aus dem deep-sleep aufzuwecken. Microcontroller wie der ESP8266 und die Prozessoren der Attiny- und Atmega-Serie kennen auch zeitgesteuerte Mechanismen, um wieder aufzuwachen.

Danksagung

Die Untersuchung ist Teil des Projektes „Biene40 – vernetzte Sensoren für vitalere Bienen“. Biene40 ist eines von 16 geförderten Projekten (siehe Abb. Förderlogo), die unter der Vernetzungs- und Transfermaßnahme Beenovation zusammengefasst werden. Das Projekt wurde gefördert vom Bundesministerium für Ernährung und Landwirtschaft (BMEL). Mit dem Förderaufruf „Bekanntmachung über die Förderung von Forschungsvorhaben zum Schutz von Bienen und weiteren Bestäuberinsekten in der Agrarlandschaft“ hat BMEL 16 Forschungsvorhaben, darunter „Biene40“, in drei Förderprogrammen eingeworben, die seit 2021 mit einem Fördervolumen von ca. 12. Mio. Euro umgesetzt werden. Die Vorhaben zielen auf die Entwicklung von innovativen und praxisorientierten Produkten und Verfahren für die Verbesserung der Widerstandskraft von Honigbienen, die Ermöglichung eines bestäuberfreundlichen Pflanzenbaus sowie die Entwicklung und Erprobung von Maßnahmen zur Förderung von Bienen und anderen Bestäuberinsekten in Agrarräumen. Die dazugehörige Vernetzungs- und Transfer Maßnahme „Beenovation“ verfolgt das Ziel, durch Veranstaltungen und Öffentlichkeitsarbeit eine hohe Sichtbarkeit und nachhaltige Breitenwirksamkeit der geförderten Verbundprojekte und der Fördermaßnahme sicherzustellen. Hierdurch werden sowohl der Wissensaustausch zwischen den verschiedenen beteiligten Stakeholdern aus Wissenschaft, Politik und Praxis, als auch die Innovationsprozesse der Verbundprojekte unterstützt und Synergien zu anderen Forschungsprojekten geschaffen.

Kombilogo der Förderer BMEL und BLE im Projekt Biene40

Abb.: Förderlogo

Bezug der Untersuchung zum Projekt Biene40

Das Projekt Biene40 entwickelt vernetzte Sensoren für das Bienenstock-Monitoring. Der hier untersuchte Microcontroller ESP8266 eignet sich gut für den Aufbau solcher Sensoren. Ein Problem soclcher IoT-Szenarien stellt die Energieversorgung dar. Neben geeigneten Energie-Harvesting ist ein Lösungsansatz das konsequente Energie-Sparen und der Einsatz von (selten) zu wechselnden Batterien. Die Untersuchungen sollen diesbezüglich Handlungsoptionen aufzeigen.

Programm für den ESP8266 in der Arduino-IDE

/*
AkkuMessung.ino
benötigt: WLAN-Funktionen
Misst Spannung und loggt diese über Webservice
Algorithmus
Loop
Messe Spannung(1)
Verbinde WLAN
Messe Spannung(2)
Übertrage beide Spannungen
Trenne WLAN
54 Sekunden deep sleep

Alle Operationen in Setup, da setup nach dem deep sleep ausgeführt wird.

Claus Brell
25.12.2023
03.01.2023 14.10 Änderung Webverzeichnis, Zeitmessung
*/

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
// #include <WiFiClient.h>

// Für die Internetverbindung
HTTPClient http;
WiFiClient wifiClient;

// Webservice
String nutzdaten="";
// String url = "http://????????.de/iot/ws/11/ws.php?p=Akku;";
String url = "http://????????.de/iot/ws/10/ws.php?p=Akku240103;";
// Zeitmessungen
unsigned long previousMillis = 0;
unsigned long aktMillis = 0;
int elapsedMillis;

void setup() {
// interne blaue LED vorbereiten
// Merkwürdig: "HIGH" Schaltet LED aus
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
// Serielle Schnittstelle
Serial.begin(9600);
while (!Serial){
delay (50);
digitalWrite(LED_BUILTIN, LOW);
delay (25);
digitalWrite(LED_BUILTIN, HIGH);
}
Serial.println("\r\n\r\nStart: -----------------");
// Erste Messung über ADC ohne WLAN
int wert1=analogRead(A0);
Serial.print("Erstes ADC lesen: ");
Serial.println(wert1);
/* ----------------------
Zeit in Millisekunden messen, wie lange WLAN benötigt
----------------------*/
previousMillis = millis();
Serial.print("StartMillis ");
Serial.println(previousMillis); 
// WLAN verbinden
wlanVerbinden();
// Zweite Messung über ADC mit WLAN
Serial.print("Zweites ADC lesen: ");
int wert2=analogRead(A0);
Serial.println(wert2);
// Daten an Webservice übertragen
Serial.println("Daten an Webservice senden ---");
// Parameter als String aufbereiten
aktMillis=millis();
elapsedMillis=(int)(aktMillis-previousMillis);
nutzdaten=String(wert1)+";"+String(wert2)+";"+String(elapsedMillis);
Serial.print("Senden Millis ");
Serial.println(elapsedMillis); 
// HTTP-Methode GET, Parameter an URL anhängen
Serial.print("URL ");
Serial.print(url);
Serial.println(nutzdaten);
http.begin(wifiClient, url+nutzdaten);
int httpCode = http.GET();//Setze Statement ab
String payload = http.getString(); //Speichere die HTTP Antwort
Serial.print("Code ");
Serial.print(httpCode); 
Serial.print(" Text ");
Serial.println(payload); 
http.end();//Beende die HTTP Verbindung
aktMillis=millis();
elapsedMillis=aktMillis-previousMillis;
Serial.print("gesendet Millis ");
Serial.println(elapsedMillis);
// WLAN trennen
wlanTrennen();
aktMillis=millis();
elapsedMillis=aktMillis-previousMillis;
Serial.println("fertig Millis");
Serial.println(elapsedMillis); 
// Stromsparen
// Merkwürdig: "HIGH" Schaltet LED aus
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
// Pause 1 Minute
Serial.println("deep sleep .......");
delay (50);
Serial.end();
ESP.deepSleep(54*1000000);

}

void loop() { 
}

/*
funktionen_wlan.ino
WLAN-Funktionen
Claus Brell
18.12.2024
*/
/* ------------------------------
wlanVerbinden()
---------------------------------*/

void wlanVerbinden() {
Serial.println("WLAN verbinden ------------------------");
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW); // Nutzerbeglückung
const char* ssid = "????????";//Setze SSID als Variable ein
const char* password = "?????????";//Setze Passwort als Variable ein

WiFi.begin(ssid, password);//Verbinde mit WLAN
Serial.print("Verbinden mit: "); 
Serial.println(ssid);
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {//Solange nicht verbunden schreibe Punkt, sonst WiFi verbunden
delay(100);
digitalWrite(LED_BUILTIN, HIGH); // Arduino: turn the LED on (HIGH)
delay(25); // wait for a second
digitalWrite(LED_BUILTIN, LOW);
Serial.print("."); // Nutzerbeglückung

}
Serial.print("\r\nWiFi verbunden ");
digitalWrite(LED_BUILTIN, HIGH); // Arduino: turn the LED on (HIGH)
delay(100); // halbe Sekunde ok
digitalWrite(LED_BUILTIN, LOW);
Serial.println(WiFi.localIP());//Gib einmalig die IP-Adresse aus
} // Ende wlanVerbinden

/* ------------------------------
wlanVerbinden()
---------------------------------*/

void wlanTrennen() {
Serial.println("WLAN trennen ------------------------");
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW); // Nutzerbeglückung
/* Mögliche Statuswerte:
WL_NO_SHIELD 255
WL_IDLE_STATUS 0
WL_NO_SSID_AVAIL 1
WL_SCAN_COMPLETED 2
WL_CONNECTED 3
WL_CONNECT_FAILED 4
WL_CONNECTION_LOST 5
WL_DISCONNECTED 6
*/
// Die folgenden vier Funktionen schalten WiFi aus#
// (WIFI_OFF alleine genügt nicht, der kleine delay ist auch notwendig)
// Stromverbrauch: mit WiFi bis 170 mA
// ohne WiFi 35 mA
WiFiMode(WIFI_STA);
WiFi.disconnect(); 
WiFi.mode(WIFI_OFF);
WiFi.forceSleepBegin(); // So funktioniert es
delay(100);
Serial.print("WLAN Status2 ");
Serial.println(WiFi.status());
digitalWrite(LED_BUILTIN, LOW);
delay(50);
digitalWrite(LED_BUILTIN, HIGH); // Arduino: turn the LED on (HIGH)
delay(50); // wait for a second
digitalWrite(LED_BUILTIN, LOW);
delay(50);
digitalWrite(LED_BUILTIN, HIGH); // Arduino: turn the LED on (HIGH)
delay(50); // wait for a second
digitalWrite(LED_BUILTIN, LOW);
delay (50);
digitalWrite(LED_BUILTIN, HIGH); // Schaltet die LED AUS!!!

} // Ende wlanTrennen

Listing 1: Programm für den ESP8266 mit deep sleep. Verwendet wird die Arduino-IDE Version 2.2.1 auf MacOS.

Autor und Lizenz

Autor: Prof. Dr. rer. nat. Claus Brell, aktuelle Projekte: Biene40AI4Bee
Lizenz: CC BY

Inhalte des Beitrages können Sie entsprechen der Lizenz verwenden. Unter dieser Lizenz veröffentlichte Werke darf jedermann für private, gewerbliche und sonstige Zwecke nutzen verändern und auch neu ohne CC-Lizenz vermarkten. Als Urheber mache ich keine Rechte geltend.

 

 

Teile diesen Beitrag.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert