When I first read that esp8266 could reach 20uA (and even less) in deep sleep mode, I realized it was not possible to reach such a low intensity for all of them.
At that time, I had a 8266 NodeMCU and I could only reach 10mM at best. After reading a bit, I understood why.
I also had an ESP-01, but when I realized the soldering I had to do to wake it up, I gave up with this one. I don't have any talent for soldering.
So I know I need to have the GPIO16 accessible. I'm pretty sure the 12F could be a good option. Could you please give me any advice or a reference (on Amazon for example) to make sure I'm choosing the right one this time.
What about these guys:
Yes, sorry, you're right. It was actually for the ESP32.
I might have done something wrong. But I read a few articles where people also had 10mA in deep sleep mode.
My sketch is basically getting values from different sensors, connecting to wifi to send data to a server via ftp (based on the SurferTim's FTP code (Arduino Playground - FTP)). It is pretty long and I don't want to bother you with that. Actually, I used a simple sketch I found on the web which just blink the led on the esp, and even with this one, I had 10mA in deep sleep mode :
#include <ESP8266WiFi.h>
// Edit "secret" ssid and password below
const char* ssid = "XXXXXXX";
const char* password = "XXXXXXXXXXX";
int count = 0;
void setup() {
disableWiFi();
pinMode(2, OUTPUT); // GPIO02 on ESP-12 module is linked to on-board LED
Serial.begin(9600);
delay(10);
wakeupWiFiModem();
connectToWiFi();
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
blink(5);
}
sleepAndWakeupWithRadioDisabled();
}
void disableWiFi() {
WiFi.mode(WIFI_OFF);
WiFi.forceSleepBegin();
delay(1);
return;
}
void wakeupWiFiModem() {
WiFi.forceSleepWake(); // wakeup WiFi modem
delay(1);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
return;
}
void connectToWiFi() {
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
count++;
Serial.print(".");
if (count > 20) {
Serial.println("WiFi connection failed");
break;
}
}
if (WiFi.status() == WL_CONNECTED) {
Serial.print("WiFi connected. IP address: ");
Serial.println(WiFi.localIP());
}
}
void blink(int count) {
for (int i = 0; i < count; i++) {
Serial.println("BLINK");
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
}
void sleepAndWakeupWithRadioDisabled() {
Serial.println("Deep sleeping for 5 seconds...");
Serial.println("Wakeup without WiFi next time");
WiFi.disconnect(true);
delay(1);
ESP.deepSleep(5000000, WAKE_RF_DISABLED); // radio disabled after wakeup
}
Any idea what's wrong? I really need this project to go fast and I'm blocked here.
Thanks so much for your help