ESP8266-01 Deep Sleep-läge
ESP8266-01 är en populär Wi-Fi-modul, och en av dess viktigaste funktioner är möjligheten att gå in i deep sleep-läge för att spara ström. Detta läge är särskilt användbart i batteridrivna IoT-projekt eftersom det kraftigt minskar strömförbrukningen.
1. Vad är Deep Sleep-läge?
Deep sleep-läget på ESP8266 stänger av de flesta interna kretsarna, förutom realtidsklockan (RTC), som kan användas för att väcka enheten vid specifika intervaller. I deep sleep-läge förbrukar modulen endast några mikroampere (uA), jämfört med det normala körläget där den kan förbruka flera hundra milliampere (mA).
2. Varför använda Deep Sleep?
Deep sleep-läge är viktigt för projekt som behöver spara energi, särskilt i situationer där ESP8266-01 bara behöver vakna upp, utföra en uppgift (som att läsa av en sensor eller skicka data), och sedan återgå till sömn.
Exempel på användningsområden:
- Batteridrivna väderstationer
- Fjärrsensorer som skickar periodisk data
- IoT-enheter som inte behöver vara ständigt uppkopplade via Wi-Fi
3. Hur aktiverar man Deep Sleep på ESP8266-01?
ESP8266-01 har ingen dedikerad GPIO-pin för att väcka sig från deep sleep (till skillnad från andra ESP8266-varianter), men det är fortfarande möjligt att använda deep sleep-läget genom att koppla ihop GPIO16 med RESET-pinnen.

Steg för att aktivera Deep Sleep:
- Koppla ihop: Anslut GPIO16 till RESET-pinnen.
- Detta gör det möjligt för modulen att väcka sig själv efter sömnperiodens slut.
- Kod: I din kod kan du använda funktionen
ESP.deepSleep(time_in_microseconds)
för att ställa in hur länge modulen ska sova. Tidsenheten är mikrosekunder, så om du vill att modulen ska sova i exempelvis 10 sekunder skriver du:
ESP.deepSleep(10 * 1000000);
Detta innebär att modulen vaknar upp efter 10 sekunder, utför en uppgift, och sedan går tillbaka till deep sleep.
4. Exempel på kod för Deep Sleep
void setup() {
// Initiera Wi-Fi och anslut till nätverket
Serial.begin(115200);
Serial.println("Modulen vaknade upp");
// Skicka data eller utför en annan uppgift här
delay(2000); // Simulerar en uppgift
// Gå in i deep sleep i 60 sekunder
ESP.deepSleep(60 * 1000000);
}
void loop() {
// Tomt eftersom modulen går i deep sleep efter setup
}
5. Strömförbrukning i Deep Sleep-läge
I deep sleep-läge kan ESP8266-01 förbruka så lite som 20 µA, vilket är idealiskt för långvariga batteridrivna tillämpningar. Detta kan förlänga batteritiden avsevärt jämfört med att modulen är aktiv hela tiden.
6. Sammanfattning
Att använda deep sleep-läget med ESP8266-01 är ett effektivt sätt att optimera energiförbrukningen, särskilt för IoT-projekt som inte kräver konstant anslutning. Genom att koppla GPIO16 till RESET och använda rätt kod, kan du spara mycket ström och förlänga enhetens driftstid på batteri.
Hur länge kan ESP8266 vara i deep sleep?
ESP8266 kan vara i deep sleep i upp till cirka 71 minuter (4 294 967 295 mikrosekunder), vilket beror på begränsningar i den interna RTC-timern (Real-Time Clock). För längre perioder kan du använda externa kretsar för att väcka enheten.
Hur mycket ström förbrukar ESP8266 i deep sleep-läge?
I deep sleep-läge förbrukar ESP8266 mycket lite ström, vanligtvis omkring 20 µA. Detta gör det till ett idealiskt alternativ för batteridrivna projekt där lång batteritid är avgörande.
Hur använder man deep sleep i ESP8266?
För att använda deep sleep på ESP8266 kopplar du GPIO16 till RESET-pinnen. I din kod använder du funktionen ESP.deepSleep(time_in_microseconds);
. Exempelvis:
ESP.deepSleep(10 * 1000000); // Sätt modulen i deep sleep i 10 sekunder
Hur länge kan ESP32 vara i deep sleep?
ESP32 har en mer avancerad RTC och kan vara i deep sleep i upp till flera år, beroende på strömförsörjning och programmering. RTC-timern kan ställas in för att väcka modulen efter flera dagar, månader eller till och med längre perioder.
ESP8266-01 Deep Sleep-läge Pinout
För att aktivera deep sleep på ESP8266-01 kopplar du GPIO16 (D0) till RESET-pinnen. Detta gör att modulen kan väcka sig själv efter en period av djup sömn.
Pinout för Deep Sleep:
- GPIO16 (D0): Ansluts till RESET-pinnen.
ESP8266-01 Deep Sleep-läge med Arduino
När du använder Arduino IDE kan du enkelt implementera deep sleep-läge genom att använda ESP.deepSleep()
-funktionen. Se till att du har rätt inställningar för att ladda upp koden till din ESP8266-01.
ESP8266 Deep Sleep Maximal Tid
Maximal tid som ESP8266 kan vara i deep sleep är 71 minuter (4,294,967,295 mikrosekunder). Efter den tiden måste modulen väckas antingen av en extern händelse eller av RTC.
ESP8266 Deep Sleep Extern Väckning
För extern väckning kan du använda externa komponenter, som knappar eller sensorer, som är anslutna till GPIO-pinnar. Du kan också använda externa kretsar för att generera ett pulssignal som kopplas till RESET-pinnen.
ESP8266 Sömnlägen
ESP8266 har två huvudtyper av sömnlägen:
- Deep Sleep: Modulen stänger av det mesta av kretsarna och förbrukar minimal ström.
- Light Sleep: Modulen är delvis aktiv och kan snabbt väckas, men förbrukar mer ström än deep sleep.
ESP8266 Ljus Sömn
I ljus sömnläge kan ESP8266 reagera snabbare på externa händelser än i deep sleep-läget. Strömförbrukningen är högre än i deep sleep, men lägre än i normalt läge. Ljus sömn är användbar när du behöver snabbare respons utan att förlita dig på full drift.
ESP8266 Deep Sleep Vaknar Inte
Om ESP8266 inte vaknar från deep sleep kan det bero på:
- Felaktig koppling av GPIO16 till RESET: Kontrollera att anslutningen är korrekt.
- För kort sömnperiod: Om sömnperioden är för kort kan det hända att modulen inte hinner väckas.
- Strömproblem: Se till att strömförsörjningen är tillräcklig för att modulens uppvaknande ska fungera.
- Koden: Kontrollera att koden är korrekt och att
ESP.deepSleep()
-funktionen är korrekt implementerad.
Genom att följa dessa riktlinjer och kontrollera anslutningarna bör du kunna använda deep sleep-läget effektivt med din ESP8266-01.