Модуль WEMOS ESP32 с батарейным отсеком
ESP32 обещает совершить революцию в мире IoT, как в свое время модули ESP8266. Уже появляется множество отладочных плат на этом модуле. Модуль WEMOS ESP32 battery – это современный микроконтроллер от компании Wemos, с помощью которого можно создавать устройства Интернета вещей. А установленный модуль под батарею позволит сделать проект мобильным и автономным.
На плате размещен модуль WROOM-32, который содержит микроконтроллер ESP32.
Характеристики модуля ESP32:
• Процессор: 32-х битный, частота 240 МГц;
• Объём Flash-памяти: 4МБ;
• Питание контроллера: 3.3В;
• Поддержка Wi-Fi: 802.11 b/g/n/d/e/i/k/r (802.11n до 150 Мбит/с);
• Поддержка Bluetooth: 4.2 BR/EDR и Low Energy
• Количество выводов:
o Цифровых входов/выходов: 26;
o Аналоговых входов/выходов: 12;
• Поддержка интерфейсов: UART, I2C, SPI, VP/VN, DAC;
• Питание на выводах: 3.3В;
Также на плате размещены:
• микросхема CP2104 (конвертор USB-UART);
• контроллер зарядки и одновременно step-up преобразователь tp5410;
• две кнопки: Boot для программирования и EN для сброса;
• разъем USB;
• отсек для батареи 18650;
• переключатель питания;
• контакты с шагом 2.54 мм.
Назначение контактов платы:
Использование аккумулятора 3000 mAH позволит плате работать более 17 часов.
Рассмотрим создание индикатора заряда. Схема подключения:
И скетч отправки показаний в сервис ThingSpeak (https://thingspeak.com/):
// подключение библиотеки
#include <WiFi.h>
// выставите свои данные для точки доступа
const char* passwifi = "************";
const char* ssidwifi = "*********";
// ваши данные для сервиса Thingspeak
const char* host = "api.thingspeak.com";
const char* writeAPIKey="YourAPIkey";
// служебные переменные
unsigned int raw=0;
float volt=0.0;
unsigned long millis1=0;
void setup() {
// запуск последовательного порта
Serial.begin(115200);
// Коннект к точке доступа
Serial.print("Connecting to ");
Serial.println(ssidwifi);
WiFi.begin(ssidwifi, passwifi);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.print("WiFi connect ok!");
Serial.print("Your IP address is ");
Serial.println(WiFi.localIP());
// контакт A0 как вход:
pinMode(A0, INPUT);
}
void loop() {
// прошло 60 сек
if(millis()-millis1>=60000) {
// получение данных
raw = analogRead(A0);
// перевод в Вольты
volt=raw/1023.0;
volt=volt*4.2;
// перевести из float вString
String v=String(volt);
// подключение
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
return;
}
// формирование строки для отправки данных
String url = "/update?key=";
url += writeAPIKey;
url += "&field6=";
url += String(volt);
url += "\r\n";
// отправка данных на сервер
client.print(String("GET url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
// новый отсчет 60 сек
millis1=millis();
}
}
Теперь мы имеем доступ к показаниям батареи (на сервере ThingSpeak) из любого места.
Подробнее о работе ESP32 можно посмотреть здесь.