- Verschiedene Methoden zur Minimierung des Stromverbrauchs
- Erforderliche Komponenten
- Arten von Schlafmodi in ESP8266
- ESP8266 Tiefschlafmodusprogrammierung
- Testen von DeepSleep im ESP8266
Da die IoT-Revolution mit jedem Tag boomt, steigt die Anzahl der angeschlossenen Geräte sehr schnell an. In Zukunft werden die meisten Geräte miteinander verbunden sein und in Echtzeit kommunizieren. Eines der Probleme, mit denen diese Geräte konfrontiert sind, ist der Stromverbrauch. Dieser Stromverbrauchsfaktor ist einer der kritischen und entscheidenden Faktoren für jedes IoT-Gerät und jedes IoT-Projekt.
Da wir wissen, dass ESP8266 eines der beliebtesten Module zum Erstellen eines IoT-Projekts ist, erfahren Sie in diesem Artikel, wie Sie bei der Verwendung von ESP8266 in einer IoT-Anwendung Strom sparen. Hier laden wir die LM35-Temperatursensordaten im 15-Sekunden-Intervall in die ThingSpeak-Cloud hoch. Während dieser 15 Sekunden bleibt der ESP8266 im DeepSleep-Modus, um Strom zu sparen
Verschiedene Methoden zur Minimierung des Stromverbrauchs
Es gibt verschiedene Möglichkeiten, den Stromverbrauch in Embedded- und IoT-Geräten zu optimieren. Die Optimierung kann auf Hardware und Software erfolgen. Manchmal können wir Hardwarekomponenten nicht optimieren, um den Stromverbrauch zu senken, aber sicherlich können wir dies auf der Softwareseite tun, indem wir Code-Anweisungen und -Funktionen ändern und optimieren. Darüber hinaus können Entwickler die Taktfrequenz ändern, um den Stromverbrauch des Mikrocontrollers zu reduzieren.Wir können eine Firmware schreiben, um die Hardware in den Ruhezustand zu versetzen, wenn kein Datenaustausch stattfindet, und die definierte Aufgabe in einem bestimmten Intervall ausführen. Im Ruhemodus verbraucht die angeschlossene Hardware sehr wenig Strom und daher kann der Akku lange halten. Sie können auch die Minimierung des Stromverbrauchs in Mikrocontrollern lesen, wenn Sie mehr über Stromverbrauchstechniken erfahren möchten.
ESP8266-Module sind die am häufigsten verwendeten Wi-Fi-Module. Sie verfügen über viele kleine Funktionen mit verschiedenen Modi, einschließlich Schlafmodus. Auf diese Modi kann mit einigen Änderungen an Hardware und Software zugegriffen werden. Um mehr über ESP8266 zu erfahren, können Sie unsere IoT-basierten Projekte mit dem ESP826-Wi-Fi-Modul überprüfen. Einige davon sind unten aufgeführt:
- Schnittstelle zwischen ESP8266 NodeMCU und Atmega16-Mikrocontroller zum Senden einer E-Mail
- Senden von Temperatur- und Feuchtigkeitssensordaten an die Firebase-Echtzeitdatenbank mit NodeMCU ESP8266
- IoT-gesteuerte LED mit Google Firebase Console und ESP8266 NodeMCU
Hier werden die verschiedenen in ESP8266 verfügbaren Schlafmodi erläutert und demonstriert, indem Temperaturdaten in regelmäßigen Abständen im Tiefschlafmodus an den Thingspeak-Server gesendet werden.
Erforderliche Komponenten
- ESP8266 Wi-Fi-Modul
- LM35 Temperatursensor
- Überbrückungsdrähte
Arten von Schlafmodi in ESP8266
Das Esp8266-Modul arbeitet in den folgenden Modi:
- Aktiver Modus: In diesem Modus wird der gesamte Chip eingeschaltet und der Chip kann die Daten empfangen und senden. Offensichtlich ist dies der stromverbrauchendste Modus.
- Modem-Sleep-Modus: In diesem Modus ist die CPU betriebsbereit und die Wi-Fi-Funkgeräte sind deaktiviert. Dieser Modus kann in Anwendungen verwendet werden, für die die CPU arbeiten muss, wie in PWM. Dadurch wird die Wi-Fi-Modemschaltung ausgeschaltet, während eine Verbindung mit dem Wi-Fi-AP (Access Point) ohne Datenübertragung besteht, um den Stromverbrauch zu optimieren.
- Light-Sleep-Modus: In diesem Modus werden die CPU und alle Peripheriegeräte angehalten. Jedes Aufwecken wie externe Interrupts weckt den Chip auf. Ohne Datenübertragung kann die Wi-Fi-Modemschaltung ausgeschaltet und die CPU angehalten werden, um Strom zu sparen.
- Tiefschlafmodus: In diesem Modus ist nur die RTC funktionsfähig und alle anderen Komponenten des Chips sind ausgeschaltet. Dieser Modus ist nützlich, wenn die Daten nach langen Zeitintervallen übertragen werden.
Verbinden Sie den LM35-Temperatursensor mit dem A0-Pin der NodeMCU.
Wenn das ESP-Modul am RST-Pin HIGH hat, befindet es sich im Betriebszustand. Sobald es ein LOW-Signal am RST-Pin empfängt, startet der ESP neu.
Stellen Sie den Timer im Tiefschlafmodus ein. Sobald der Timer endet, sendet der D0-Pin das LOW-Signal an den RST-Pin und das Modul wird durch Neustart aktiviert.
Jetzt ist die Hardware fertig und gut konfiguriert. Die Temperaturmesswerte werden auf dem Thingspeak-Server gesendet. Erstellen Sie dazu ein Konto auf thingspeak.com und erstellen Sie einen Kanal, indem Sie die folgenden Schritte ausführen.
Kopieren Sie nun den Write API-Schlüssel. Welches wird im ESP-Code verwendet.
ESP8266 Tiefschlafmodusprogrammierung
Die leicht verfügbare Arduino IDE wird zum Programmieren des ESP8266-Moduls verwendet. Stellen Sie sicher, dass alle ESP8266-Board-Dateien installiert sind.
Beginnen Sie mit dem Einbeziehen aller wichtigen Bibliotheken.
#einschließen
Wenn alle Bibliotheken für den Zugriff auf die Funktionen enthalten sind, weisen Sie den API-Schreibschlüssel zu und konfigurieren Sie Ihren Wi-Fi-Namen und Ihr Kennwort. Deklarieren Sie dann alle Variablen für die weitere Verwendung, in denen Daten gespeichert werden sollen.
String apiWritekey = "*************"; // hier durch deinen THINGSPEAK WRITEAPI-Schlüssel ersetzen char ssid = "******"; // Ihr WLAN-SSID-Name char password = "******"; // WLAN-Passwort
Erstellen Sie nun eine Funktion, um das Modul mithilfe der Funktion wifi.begin () mit dem Wi-Fi-Netzwerk zu verbinden, und überprüfen Sie dann kontinuierlich, bis das Modul mithilfe der while-Schleife nicht mehr mit Wi-Fi verbunden ist.
void connect1 () { WiFi.disconnect (); Verzögerung (10); WiFi.begin (ssid, Passwort); while (WiFi.status ()! = WL_CONNECTED) {
Erstellen Sie eine weitere Funktion, um die Daten an den Thingspeak-Server zu senden. Hier wird eine Zeichenfolge gesendet, die den API-Schreibschlüssel, die Feldnummer und die zu sendenden Daten enthält. Senden Sie diese Zeichenfolge dann mit der Funktion client.print ().
void data () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& field1 ="; tsData + = String (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / Update HTTP / 1.1 \ n"); client.print ("Host: api.thingspeak.com \ n");
Rufen Sie die Funktion connect1 auf, die die Funktion zum Herstellen einer Wi-Fi-Verbindung aufruft. Nehmen Sie dann die Messwerte der Temperatur und konvertieren Sie sie in Celsius.
void setup () { Serial.begin (115200); Serial.println ("Gerät befindet sich im Weckmodus"); connect1 (); int value = analogRead (A0); Erhaltungsvolt = (Wert / 1024,0) * 5,0; tempC = Volt * 100,0;
Rufen Sie jetzt die Funktion data () auf, um die Daten in die thingspeak Cloud hochzuladen. Schließlich ist die wichtige Funktion, die aufgerufen werden muss, ESP.deepSleep (); Dadurch wird das Modul für das definierte Zeitintervall in Mikrosekunden in den Ruhezustand versetzt.
Daten(); Serial.println ("15 Sekunden tief schlafen"); ESP.deepSleep (15e6);
Die Schleifenfunktion bleibt leer, da die gesamte Aufgabe einmal ausgeführt und das Modul nach dem festgelegten Zeitintervall zurückgesetzt werden muss.
Das Arbeitsvideo und der vollständige Code finden Sie am Ende dieses Tutorials. Laden Sie den Code in das ESP8266-Modul hoch. Entfernen Sie das mit RST und D0 verbundene Kabel, bevor Sie das Programm hochladen. Andernfalls wird ein Fehler ausgegeben.
Testen von DeepSleep im ESP8266
Nach dem Hochladen des Programms sehen Sie, dass alle 15 Sekunden Temperaturwerte in die ThingSpeak-Cloud hochgeladen werden und das Modul dann in den Tiefschlafmodus wechselt.
Damit ist das Tutorial zur Verwendung von Deep Sleep im ESP8266-Modul abgeschlossen. Der Tiefschlaf ist ein sehr wichtiges Merkmal und wurde in den meisten Geräten verwendet. Sie können auf dieses Tutorial verweisen und diese Methode für verschiedene Projekte anwenden. Im Falle von Zweifeln oder Vorschlägen schreiben und kommentieren Sie bitte unten. Sie können auch unser Forum erreichen.