Здравствуйте. Пересмотрел много тем на форуме, но никак не могу разобраться с light sleep. Есть несколько проблем:
1) Прерывание по кнопке срабатывает отлично. А вот с прерыванием по таймеру есть проблемы. Esp просто выходит из сна циклически, но если в скобках писать максимальное время сна, то всё работает нормально.
2)После того, как esp вышла из сна, нужно отправить данные на сервер. Но esp не подключается к wifi.
Функция для отправки данный на сервер:
В Serial пишет connection failed.
Подскажите, пожалуйста, как можно решить данные проблемы. Использую Esp12f
1) Прерывание по кнопке срабатывает отлично. А вот с прерыванием по таймеру есть проблемы. Esp просто выходит из сна циклически, но если в скобках писать максимальное время сна, то всё работает нормально.
Код:
void sleepNow() {
Serial.println("going to light sleep...");
wifi_station_disconnect();
wifi_set_opmode(NULL_MODE);
wifi_fpm_set_sleep_type(LIGHT_SLEEP_T); //light sleep mode
gpio_pin_wakeup_enable(GPIO_ID_PIN(2), GPIO_PIN_INTR_LOLEVEL); //set the interrupt to look for HIGH pulses on Pin 0 (the PIR).
wifi_fpm_open();
delay(100);
wifi_fpm_set_wakeup_cb(wakeupFromMotion); //wakeup callback
wifi_fpm_do_sleep(60000000);
delay(100);
}
void wakeupFromMotion(void) {
wifi_fpm_close;
wifi_set_opmode(STATION_MODE);
wifi_station_connect();
}
Функция для отправки данный на сервер:
Код:
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
// Создаём url
Serial.print("Requesting URL: ");
Serial.println(url);
// Отправляем данные на сервер
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
Подскажите, пожалуйста, как можно решить данные проблемы. Использую Esp12f