ESP32 та Telegram bot: віддалений моніторинг
Сучасні IoT-системи все частіше використовують хмарні сервіси для контролю та керування. Але нерідко розробнику чи ентузіасту достатньо простого й безкоштовного рішення, яке дозволяє стежити за станом датчиків з будь-якої точки світу. ESP32 та Telegram-бот забезпечують зручний і надійний спосіб організувати віддалений моніторинг без складних серверів.
Необхідне обладнання
- Плата ESP32 DevKit (WROOM або WROVER)
- Датчик температури та вологості DHT22 (або аналогічний)
- USB-кабель для прошивки та живлення ESP32
- Wi-Fi мережа з доступом в інтернет
- Обліковий запис у Telegram і створений бот через @BotFather
Принцип роботи
ESP32 підключається до домашньої Wi-Fi мережі та періодично зчитує дані з датчика (наприклад, DHT22). Через бібліотеку UniversalTelegramBot контролер надсилає ці дані користувачу в Telegram. Користувач може запросити показники командою, а також отримувати автоматичні сповіщення, наприклад, при перевищенні температури.
Приклад коду
// Приклад: ESP32 + Telegram bot для моніторингу температури та вологості
// Бібліотеки: WiFi, WiFiClientSecure, UniversalTelegramBot, ArduinoJson, DHT
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
#define BOT_TOKEN "123456789:AA..." // токен від BotFather
#define CHAT_ID "987654321" // ваш chat_id
WiFiClientSecure secured_client;
UniversalTelegramBot bot(BOT_TOKEN, secured_client);
unsigned long lastCheck = 0;
const long interval = 60000; // 1 хвилина
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(ssid, password);
Serial.print("Підключення до WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi підключено");
secured_client.setInsecure(); // вимикаємо перевірку сертифіката
}
void loop() {
if (millis() - lastCheck > interval) {
lastCheck = millis();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Помилка зчитування з датчика DHT22");
return;
}
String message = "Температура: " + String(t) + "°C\nВологість: " + String(h) + "%";
bot.sendMessage(CHAT_ID, message, "");
}
// обробка вхідних команд
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while (numNewMessages) {
for (int i = 0; i < numNewMessages; i++) {
String text = bot.messages[i].text;
String chat_id = bot.messages[i].chat_id;
if (chat_id == CHAT_ID && text == "/status") {
float h = dht.readHumidity();
float t = dht.readTemperature();
String reply = "Зараз: " + String(t) + "°C, " + String(h) + "%";
bot.sendMessage(chat_id, reply, "");
}
}
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
}
Застосування та розширення проєкту
- Віддалений моніторинг температури й вологості в теплиці, на складі або у серверній
- Надсилання сповіщень про перевищення критичних значень
- Підтримка кількох датчиків (наприклад, DHT22, BMP280, DS18B20)
- Додавання команд Telegram-бота для керування реле чи вентилятором
- Логування даних у Google Sheets або локальну базу даних
Висновок
Використання ESP32 та Telegram-бота для віддаленого моніторингу — це просте й надійне рішення для особистих і професійних завдань. Проєкт легко розширюється: можна додати додаткові датчики, автоматичні попередження та елементи керування. Такий підхід дозволяє зібрати функціональну систему віддаленого контролю без платних хмарних сервісів та складних серверних застосунків.
Цифровий датчик температури та вологості DHT11
Вимірювання відносної вологості в межах 20 ... 90 %Точність вимірювання вологості ± 5,0 %RHВимірюван..
59.29грн.
Arduino основи програмування
Arduino основи програмуванняТут ми навчимося писати елементарну програму, здатну зробити що-небудь ц..
Налаштування Arduino IDE для програмування WiFi модуля ESP8266
ESP8266 це дешеві широко розповсюджені модулі Wi-Fi. Вони складаються з самодостатнього мікроконтрол..
Модуль 4 — Аналогові сигнали: ADC, PWM і регулятор яскравості
Модуль 4 — Аналогові сигнали (курс для початківців) Мета модуля: вивчити роботу з аналогови..
Таймери Arduino UNO — Частина 3. Режими роботи таймерів (CTC, Fast PWM, Phase Correct PWM)
Таймери Arduino UNO — Частина 3. Режими роботи таймерів (CTC, Fast PWM, Phase Correct PWM) ..





