• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Esp8266+Sensors+Batery

Eugenius

New member
Привет коллеги,
У меня NodeMCU V2 ESP8266 используется для опроса датчиков HTU21, BH1750, BMP085 раз в час и отправки данных GET запросом ко мне в базу данных в интернете.
Сейчас пытаюсь запитать модуль от 4-рех батареек ААА и столкнулся с тем что модуль не засыпает полностью, а продолжает давать питание на датчики.

Для глубокого сна использую команду ESP.deepSleep(3600000000, WAKE_RF_DEFAULT);
Пожалуйста, поделитесь опытом.
Спасибо.

На всякий случай покажу вам весь код скетча:

Код:
#include <ESP8266WiFi.h>
#include <Wire.h>
#include "SparkFunHTU21D.h"
#include <BH1750.h> // Sensor Library
#include <Adafruit_BMP085.h>


// прописываем параметры нашего WiFi
const char* ssid     = "109";
const char* password = "***";

// прописываем домен на который шлем данные
const char* host = "***";

// указываем ID нашего устройства
const char* sensorid   = "2";

// Создаем экземпляр объекта
HTU21D myHumidity;          // HTU21

BH1750 lightMeter;          // lightMeter BH1750, Wide range and High resolution. ( 1 - 65535 lx )

Adafruit_BMP085 bmp;

void setup()
{
    Serial.begin(115200);
  delay(10);

  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  // подключаемся к сети WiFi
  WiFi.begin(ssid, password);

  // если подключение не произошло - пробуем через 0,5 секунд
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected"); 
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

    // you're connected now, so print out the status:
  printWifiStatus();

  myHumidity.begin();
  lightMeter.begin();
  bmp.begin();
 

}

void loop()
{
  Serial.print("connecting to ");
  Serial.println(host);

  // Создаем интернет соединение с нашим сервером
  // Use WiFiClient class to create TCP connections
  WiFiClient client;
  const int httpPort = 80;

  // Если соединения не происходит, начинаем заново
  if (!client.connect(host, httpPort))
  {
    Serial.println("connection failed");
    return;
  }

  // Опрашиваем датчик
  float humd = myHumidity.readHumidity();
  float temp = myHumidity.readTemperature();
  int lux = lightMeter.readLightLevel();
  float temp2 = bmp.readTemperature();
  float pressure = bmp.readPressure();

 
  // Создаем URI нашего запроса на сервере
  String url = "/sensordatas/adddata";

  url += "?sensorid=";
  url += sensorid;
  url += "&temp=";
  url += temp;
  url += "&hum=";
  url += humd;
  url += "&temp2=";
  url += temp2;
  url += "&pressure=";
  url += pressure;
  url += "&lux=";
  url += lux;

 
  Serial.print("Requesting URL: ");
  Serial.println(url);
 
  // Отправляем этот GET запрос на сервер
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "Connection: close\r\n\r\n");

  // Фиксируем количество миллисекунд, прошедших с момента старта программы
  unsigned long timeout = millis();
  // Ждем пока количество байт, принятых клиентом от удаленного сервера, с которым установлено соединение не станет равным 0
  while (client.available() == 0)
  {
    // если ожидание длится дольше 5 секунд - начинаем сначала
    if (millis() - timeout > 5000)
    {
      Serial.println(">>> Client Timeout !");
      client.stop();
      return;
    }
  }

  // Считываем все строки полученные в ответе с сервера и выводим их в Serial
  while(client.available())
  {
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }
 
  Serial.println();
  Serial.println("closing connection");

  // подключаемся к сети WiFi
  WiFi.disconnect();
 
  ESP.deepSleep(3600000000);
}

void printWifiStatus()
{
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}
 
Сверху Снизу