ESP8266 ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ½Π°, ΡΠ½Π΅ΡΠ³ΠΎΡΠ±Π΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ ΠΊΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ½Π° Π½Π° ΠΏΠ»Π°ΡΠ΅ ESP8266. ΠΡΠΏΡΠ°Π²Π»ΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π² ΡΠΎΠ½ ΠΌΡ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΌ ΡΠ½Π΅ΡΠ³ΠΈΡ, ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΡΡΠ³Π»ΠΎΡΡΡΠΎΡΠ½ΠΎ.
Π‘Π°ΠΌΠΎΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° ESP ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡ, Π΄Π°Π½Π½ΡΠ΅ Ρ Π΄Π°ΡΡΠΈΠΊΠ° ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Ρ Π½Π΅ΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² 5 - 10 ΠΌΠΈΠ½ΡΡ. ΠΠ°ΠΌΠ΅Ρ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄, Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π±Π΅Π·Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ, ΠΏΠΎΡΡΠ΅Π±Π»ΡΡ ΡΠ½Π΅ΡΠ³ΠΈΡ. Π§ΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π·Π°ΡΡΠ΄ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡ ESP Π² ΡΠΎΠ½.
ΠΡΠΈΠΌΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°:
ESP8266 ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ WiFi
ESP8266 Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ (ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π΄Π°ΡΡΠΈΠΊΠΈ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅)
ESP8266 Π·Π°ΡΡΠΏΠ°Π΅Ρ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
ESP8266 ΠΏΡΠΎΡΡΠΏΠ°Π΅ΡΡΡ
ΠΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ WiFi, ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠΎΠ½...
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠΏΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°:
ΠΠΎΠ΄Π΅ΠΌ-ΡΠΎΠ½ - Π²ΡΠΊΠ»ΡΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ WiFi. Π’ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ 15 mA.
ΠΡΠ³ΠΊΠΈΠΉ ΡΠΎΠ½ - Π²ΡΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΎ, ΠΊΡΠΎΠΌΠ΅ ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (RTC), ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. Π’ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ 0.4 mA.
ΠΠ»ΡΠ±ΠΎΠΊΠΈΠΉ ΡΠΎΠ½ - Π²ΡΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΎ, ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (RTC). Π’ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ 20 uA.
Π’Π°Π±Π»ΠΈΡΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠ½Π° Π΄Π»Ρ ESP8266:
Item | Modem-sleep | Light-sleep | Deep-sleep |
Wi-Fi | OFF | OFF | OFF |
System clock | ON | OFF | OFF |
RTC | ON | ON | ON |
CPU | ON | Pending | OFF |
Π’ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ | 15 mA | 0.4 mA | ~20 uA |
Average current (DTIM = 1) | 16.2 mA | 1.8 mA | β |
Average current (DTIM = 3) | 15.4 mA | 0.9 mA | β |
Average current (DTIM = 10) | 15.2 mA | 0.55 mA | β |
Π― ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Π²ΡΠ΅ ΡΡΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ½Π° ΠΈ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π²Π°ΠΌ ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π» Π½Π° ΠΏΠ»Π°ΡΠ°Ρ ESP-01 ΠΈ WeMos D1 mini. ΠΠΎ Π²ΡΠ΅Ρ ΡΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π½ΡΠΆΠ½ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ WiFi.
ΠΠΎΠ΄Π΅ΠΌ-ΡΠΎΠ½ / Modem-sleep
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π΅ ΡΠΏΠΈΡ, Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ½Π΅ΡΠ³ΠΈΠΈ, Π²ΡΠ΅Π³ΠΎ 15 mA, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΊΠ°ΠΊ 2-3 ΡΡΠΊΠΈΡ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π°. ΠΡΠΈ ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡ ΡΠ΅ΡΠΈ ΡΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ½Π΅ΡΠ³ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ½Π΅Π±ΡΠ΅ΡΡ, Π° Π²ΠΎΡ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ° Ρ Π²Π°ΡΠΈΡ Π½Π΅ Π½Π° Π΄ΠΎΠ»Π³ΠΎ. ΠΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ½Π° ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π² ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠ°ΡΡ ΡΡΡΠΎΠΊ:
WiFi.forceSleepBegin(); // Wifi off
// ΡΡΡ ΠΊΠΎΠ΄ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
WiFi.forceSleepWake(); // Wifi on
delay(15000); // ΡΠΎΠ½ 15 ΡΠ΅ΠΊ
Π ΡΠ΅ΡΡΠ°Ρ ΡΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°Π» Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΡΠ³ΠΊΠΈΠΉ ΡΠΎΠ½ / Light-sleep
ΠΡΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΎ, ΠΊΡΠΎΠΌΠ΅ ΡΠ°ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (RTC), ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. Π’ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ 0.4 mA. Π‘ ΡΠ°ΠΊΠΈΠΌ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ.
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ±ΡΠΆΠ΄Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ WiFi. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΡΠ΄ΠΈΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ GPIO2 Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠΊΠ½ΡΡΡ Π½Π° ΠΌΠΈΠ½ΡΡΠΎΠ²ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄.
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»ΡΠ΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
void light_sleep()
{
//wifi_station_disconnect(); //not needed
uint32_t sleep_time_in_ms = 15000; // sleep time ms
wifi_set_opmode(NULL_MODE);
wifi_fpm_set_sleep_type(LIGHT_SLEEP_T);
wifi_fpm_open();
wifi_fpm_set_wakeup_cb(callback);
wifi_fpm_do_sleep(sleep_time_in_ms * 1000);
delay(sleep_time_in_ms + 1);
}
void callback()
{
Serial1.println("Callback");
Serial.flush();
}
ΠΠ΄Π΅ΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΠ½ΡΡΡ Π² ΠΊΠΎΠ΄Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ light_sleep(). Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ½Π° 15 ΡΠ΅ΠΊ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠΏΠΈΡΡ Π½Π°ΡΠΎΠ²ΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠ°, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΡΠΎΠΊΡ Π½Π° ΡΡΡ:
wifi_fpm_do_sleep(0xFFFFFFF); // Π·Π°ΡΠ½ΡΡΡ ΠΈ Π½Π΅ ΠΏΡΠΎΡΡΠΏΠ°ΡΡΡΡ
Π Π΅ΠΆΠΈΠΌ Π»ΡΠ³ΠΊΠΎΠ³ΠΎ ΡΠ½Π° ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΡΠ°ΠΌΡΠΌ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΈ ΠΊΠ°ΠΏΡΠΈΠ·Π½ΡΠΌ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΡΠ°Ρ Π°Π²ΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ Π΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠΎ-Π²ΡΠΎΡΡΡ ΡΡΠΎΡ ΡΠΎΠ½ Ρ ΠΌΠ΅Π½Ρ ΠΈΡΠΏΡΠ°Π²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΈΠ½ΡΡΡ, Π΅ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅, ΡΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΠ½Π°. ΠΡΠΎΠ±ΡΠΉΡΠ΅, ΠΌΠΎΠΆΠ΅Ρ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ½Π°ΡΠ΅ ΠΈΠ»ΠΈ Π²Π°ΠΌ ΡΠ΄Π°ΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΈΠ½Π°ΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π» ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ.
ΠΠ»ΡΠ±ΠΎΠΊΠΈΠΉ ΡΠΎΠ½ / Deep-sleep
ΠΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ½Π΅ΡΠ³ΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ESP8266 ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ Π²ΡΠ΅Π³ΠΎ 20 ΠΌΠΊΠ. ΠΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΠ΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π² ΡΡ Π΅ΠΌΠ΅ Π΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Ρ, ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, Π΄Π°ΡΡΠΈΠΊΠΈ.
ΠΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠΏΠ°Π½ΠΈΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ WiFi. Π’.Π΅. Π² ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° reset ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π°ΡΠ°Π»Π°.
Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ESP8266 Π² ΡΠ΅ΠΆΠΈΠΌ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΡΠ½Π°, Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ:
ESP.deepSleep(15e6); // ΡΠΎΠ½ (5 ΠΌΠΈΠ½ΡΡ = 300e6) ΠΈΠ»ΠΈ 0 - ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠΎΡΡΠΏΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ
Π§ΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΡΡ ΡΠ°Π·Π±ΡΠ΄ΠΈΡΡ, Π½ΡΠΆΠ½ΠΎ Π½Π° Π²ΡΠ²ΠΎΠ΄ RST ΠΏΠΎΠ΄Π°ΡΡ ΡΠΈΠ³Π½Π°Π» LOW.
Π§ΡΠΎΠ±Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΠΌΠΎΠ³Π»Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΉΡΠΈ ΠΈΠ· Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΡΠ½Π° Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΡΡΠΊΡ RST Π½Π° GPIO 16, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ D0. ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΡ, ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ GPIO 16 ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ WAKE
ΠΡΠΈΠΏΠ°ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΡΡΠΊΡ ΠΊΠ°ΠΊ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ Π΄Π»Ρ ΠΏΠ»Π°ΡΡ NodeMCU:
ΠΠ΅ΡΠ΅ΠΌΡΡΠΊΠ° Π΄Π»Ρ ΠΏΠ»Π°ΡΡ WeMos D1 mini:
Π‘Π»ΠΎΠΆΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΡΡΠΊΡ ΠΏΡΠΈΠΏΠ°ΡΡΡ Π½Π° ΠΏΠ»Π°ΡΠ΅ ESP-01, ΡΡΡ Π΅Π»Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΠΈ ΠΏΠ°ΠΉΠΊΠ° ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π²Π°Ρ ΠΌΠ°ΡΡΠ΅ΡΡΡΠ²Π°. ΠΡΠ»ΠΈ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠ΅Π±Π΅, ΡΠΎ Π»ΡΡΡΠ΅ Π½Π΅ ΠΏΠ°ΡΠΉΡΠ΅, Π²ΠΎΠ·ΡΠΌΠΈΡΠ΅ Π΄ΡΡΠ³ΡΡ ΠΏΠ»Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ WeMos D1 mini.
ΠΠ° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡ ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠΌ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½Π°Π΄ΠΎ ΠΏΡΠΈΠΏΠ°ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΡΡΠΊΡ ΡΡΠΎΡΡ SMD-Π΄Π΅ΡΠ°Π»ΠΈ, ΡΡΠΎ Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ°ΠΉΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΡΡΠΈΡΡ ΠΏΠ»Π°ΡΡ. ΠΠΈΠΆΠ΅ Π½Π° ΡΠΎΡΠΎ ΡΡΠ°ΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠ»Π°ΡΡ ΠΈ Π½ΠΎΠ²Π°Ρ. ΠΠ° ΡΡΠ°ΡΡΡ ΠΏΠ»Π°ΡΡ Ρ ΠΏΡΠΈΠΏΠ°ΡΠ» ΠΎΠ΄Π½ΠΎΠΆΠΈΠ»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠΊ, ΠΏΡΠΈΠΆΠ°Π» Π΅Π³ΠΎ ΠΊ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΠΈ ΡΠ²Π΅ΡΡ Ρ ΠΏΠΎΠ³ΡΠ΅Π» ΠΏΠ°ΡΠ»ΡΠ½ΠΈΠΊΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ Π½Π° ΡΡΠ°ΡΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ Π½ΡΠΆΠ½Π° ΠΏΠ΅ΡΠ΅ΠΌΡΡΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ»ΡΡΠΎΠ²ΡΠΌ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΈ Ch_PD, ΠΈΠ½Π°ΡΠ΅ ΠΏΠ»Π°ΡΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΈΠ²Π°ΡΡΡΡ. Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ½Π΅ΡΠ³ΠΎΡΠ±Π΅ΡΠ΅ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΠ°ΡΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄.



ΠΠΠΠΠΠΠ’ΠΠ ΠΠ

ΠΠΠΠΠ‘ΠΠ’Π¬ ΠΠΠΠΠΠΠ’ΠΠ ΠΠ

-
ΠΠ°ΠΉΡΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠ²Π½ΡΠΉ Π³ΠΎΡΡΠΎΠΊ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π° Π²ΠΎΡ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΡΡΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ :)ΠΠΌΠΈΡΡΠΈΠΉ ΠΠ 10.04.2009
-
Π‘Π΄Π΅Π»Π°ΡΡ Π·Π²Π΅Π·Π΄Ρ ΠΈΠ· Π±ΡΠΌΠ°Π³ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. Π’Π°ΠΊΠ°Ρ Π±ΡΠΌΠ°ΠΆΠ½Π°Ρ Π·Π²Π΅Π·Π΄Π° Π² ΡΠ΅Ρ Π½ΠΈΠΊΠ΅ ΠΎΡΠΈΠ³Π°ΠΌΠΈ ΡΡΠ°Π½Π΅Ρ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎΠ΄Π½Π΅ΠΉ Π΅Π»ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ³ΡΡΡΠΊΠΎΠΉ.ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ° 11.01.2020
-
Π‘ΡΡΠΈΠΊΠ΅Π½ β ΡΡΠΎ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ Π·Π²ΡΠ·Π΄ΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΡΡΠΎ Π½ΠΎΡΠΈΠ»ΠΈ Π½ΠΈΠ½Π΄Π·Ρ. Π£ Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌ ΠΈ Π²ΠΈΠ΄ΠΎΠ², Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄ Π·Π²Π΅Π·Π΄Ρ. ΠΠ΅ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΠΎΠ΄ΡΠ°ΡΡΠ°Π΅Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ Π½ΠΈΠ½Π΄Π·Ρ β ΡΠ·Π½Π°ΠΉΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΡΠΈΠΊΠ΅Π½ ΠΈΠ· Π±ΡΠΌΠ°Π³ΠΈ.ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ° 09.12.2021
ΠΡΠΎΡΠΈΠ²Π°Ρ ΠΏΠ»Π°ΡΡ ESP-01s ΠΏΡΠΎΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ESP.deepSleep(15e6); Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Deep Sleep. Π ΡΠΎΠ½ ΡΡ ΠΎΠ΄ΠΈΡ ΠΈ ΠΏΡΠΎΡΡΠΏΠ°Π΅ΡΡΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π² Π³Π»ΡΠ±ΠΎΠΊΠΎΠΌ ΡΠ½Π΅ 2 ΠΌΠ. Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ Π±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ 20 ΠΌΠΊΠ?
ΠΡΠ²Π΅ΡΠΈΡΡΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π»Π΅Π³ΠΊΠΈΠΉ ΡΠΎΠ½
ΠΡΠ²Π΅ΡΠΈΡΡ#include "user_interface.h" // Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ ΡΠ½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ RTC
#define WAKE_UP_PIN 0 // D3
void wakeupCallback() {//ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°,ΡΡΠΎΠ±Ρ Π»ΡΠ³ΠΊΠΈΠΉ ΡΠΎΠ½ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΉΠΌ-Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ (Π±Π΅Π· ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ delay()
delay(3);// Π±Π΅Π· ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡΡ delay(sleepSeconds * 1000 + 1)
Serial.println("ΠΎΠ±Ρ Π²ΡΠ·ΠΎΠ², ΡΠΎΠ½ ΠΊΠΎΠ½ΡΠΈΠ»ΡΡ");
// ΡΡΠΎΡ ΡΠ±ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ°ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠΎ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ
// ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π²ΡΠΉΡΠΈ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ delay(sleepSeconds * 1000 + 1)
Serial.flush();
}
void sleep(int sleepSeconds) {
extern os_timer_t *timer_list;
timer_list = nullptr;
// wifi_station_disconnect(); //not needed
wifi_set_opmode_current(NULL_MODE);//NULL_MODE β ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Wi-Fi ΠΌΠΎΠ΄ΡΠ»Ρ.
wifi_fpm_open();
wifi_fpm_set_sleep_type(LIGHT_SLEEP_T);
Serial.println("ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π² ΡΠΎΠ½");
Serial.flush();
gpio_pin_wakeup_enable(GPIO_ID_PIN(WAKE_UP_PIN), GPIO_PIN_INTR_LOLEVEL);
wifi_fpm_set_wakeup_cb(wakeupCallback); //ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΠ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ delay ΠΏΠΎΡΠ»Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ
wifi_fpm_do_sleep(sleepSeconds * 1000 * 1000);//ΠΡΠ³ΠΊΠΈΠΉ ΡΠΎΠ½ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π΄Π»ΠΈΡΡΡΡ ΠΎΡ ~10 000 Π΄ΠΎ 0xFFFFFFE = 2^28-1 = 268435454 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄ (~4 1/2 ΠΌΠΈΠ½ΡΡΡ)
delay(sleepSeconds * 1000 + 1); // Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π»ΡΠ³ΠΊΠΎΠ³ΠΎ ΡΠ½Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ delay() (ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°Ρ ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π½Π° 1 ΠΌΡ Π΄Π»ΠΈΠ½Π½Π΅Π΅, ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΡ ΡΠ½Π°
}
void setup() {
pinMode(WAKE_UP_PIN, INPUT_PULLUP);
Serial.begin(9600);
Serial.println();
}
void loop() {
delay(3); //Π±Π΅Π· ΡΡΠΎΠ³ΠΎ ΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΠ½, Π½ΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΏΠ°Π΅ΡΡΡ
for (int i = 0; i < 3; ++i) {
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΈΠ½Π° ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
Serial.print("Analog Pin ");
Serial.print(i + 1);
Serial.print("= ");
Serial.println(analogRead(A0));
delay(1000);
}
sleep(15);
}