• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Мониторинг напряжения LiPo батареи с помощью Wemos D1 в сервисе thingspeak

24 октября, 2018

Здравствуйте. В данной статье я покажу Вам как можно мониторить заряд своей LiPo батареи подключенной к микроконтроллеру ESP8266 на примере Wemos D1 mini и shield  к нему для подключения Lipo батарей. Для чего это нужно? Ну даже наверное не стоит это объяснять, так как все прекрасно понимают, что знать когда подзарядить свое устройство очень важно, дабы не потерять информацию.

Батарею можно использовать любую, 3.7 V емкость не имеет значения, так как батарея любой емкости, когда теряет свой запас энергии, тогда и теряет напряжение понемногу. За счет данного свойства мы и будем реализовывать наш мониторинг заряда батареи.

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

Как я уже и сказал нам понадобится:

Wemos D1: http://ali.pub/2u29u5 или http://ali.pub/2u2a94

Wemos battery shield: http://ali.pub/2u29yt или http://ali.pub/2u2ald

LiPo battery: http://ali.pub/2u2a1x или http://ali.pub/2u2as6

И резистор понадобится на 100кОм его можно купить в магазинах радиоэлектроники или также заказать на сайтах aliexpress и banggood.

Схема подключения выглядит следующим образом:

Я думаю схема довольно примитивная, чтоб ее объяснять, резистор на 100 кОм используется потому что в Wemos D1 mini уже используется внутренний делитель напряжения, который соединяет контакт A0 с АЦП ESP8266. Это делитель напряжения из резисторов 220 кОм и 100 кОм. Выглядит схема делителя напряжения таким образом:

 Добавив еще 100 кОм получится 100k+220k+100k = 420k. Поэтому если напряжение полностью заряженной батарейки будет составлять 4.2 В, АЦП ESP8266 получит 4.2*100/420= 1 Вольт.

1 Вольт это максимальный вход для АЦП и даст на A0 значение 1024. voltage =raw/1023;  voltage =4.2*voltage;

График напряжения на сайте thingspeak выглядит примерно таким образом:

Если подключите все так как описано выше, то имейте ввиду, что резисторы тоже разряжают батарею с постоянным потреблением 10uA (4.2v / 420000 ohm) . Энергопотребление ESP8266 в режиме сна составляет 77 uA. С резистором это будет 87 uA.

Сам скетч выглядит вот так:

/*
 * Wemos battery shield, measure Vbat
 * add 100k between Vbat and ADC
 * Voltage divider of 100k+220k over 100k
 * gives 100/420k
 * ergo 4.2V -> 1Volt
 * Max input on A0=1Volt ->1023
 * 4.2*(Raw/1023)=Vbat
 */

// Connect RST en gpio16 (RST and D0 on Wemos)
#include <ESP8266WiFi.h>
unsigned int raw=0;
float volt=0.0;
// Time to sleep (in seconds):
const int sleepTimeS = 60;

void setup() {
  Serial.begin(115200);
  Serial.println("ESP8266 in normal mode");
  const char* ssid     = "YourSSID";
  const char* password = "YourPW";
  const char* host = "api.thingspeak.com";
  const char* writeAPIKey="YourAPIkey";
  // put your setup code here, to run once:
  pinMode(A0, INPUT);
  raw = analogRead(A0);
  volt=raw/1023.0;
  volt=volt*4.2;
//  Connect to WiFi network
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
  delay(500);
  }
  String v=String(volt);// change float into string
  // make TCP connections
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    return;
  }
  String url = "/update?key=";
  url += writeAPIKey;
  url += "&field6=";// I had field 6 still free that's why
  url += String(volt);
  url += "\r\n";
 
// Send request to the server
  client.print(String("GET url + " HTTP/1.1\r\n" +
                 "Host: " + host + "\r\n" +
                 "Connection: close\r\n\r\n");

 //Sleep
   Serial.println("ESP8266 in sleep mode");
   ESP.deepSleep(sleepTimeS * 1000000);              
}

void loop() {
  //all code is in the Setup
}

Primary Sidebar

Поиск

Новые записи

  • Выводим уведомления из умного дома Home Assistant на Android TV с помощью программы TvOverlay.
  • Автоматизация оповещения о надвигающимся дожде в Home Assistant
  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·