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-бота для віддаленого моніторингу — це просте й надійне рішення для особистих і професійних завдань. Проєкт легко розширюється: можна додати додаткові датчики, автоматичні попередження та елементи керування. Такий підхід дозволяє зібрати функціональну систему віддаленого контролю без платних хмарних сервісів та складних серверних застосунків.
Світлодіодна матриця 8х8 з керуючим контролером MAX7219
Готовий блок світлодіодної матриці 8х8 з підтримкою каскадного увімкнення декількох ідентичних модул..
87.37грн.
Мотор безщіточний A2212 1000KV
Мотор трьохфазний безколекторний для мультикоптерів 1000KVKV: 1000 обертів на вольтМаксимальна ..
360.40грн.
Чистий код в Arduino IDE
Вступ Коли ми говоримо про чистий код в Arduino IDE, багато початківців дивуються: навіщо ц..
Набір перетинок (мама-папа) 40шт 20см
Набір з"єднувальних дротів для поєднання плат контролера з периферією без пайки. Підходять під станд..
54.01грн.
Модуль P-channel MOSFET 50A з оптоізоляцією (IRF4905, 30В, 3–5В керування)
Модуль P-channel MOSFET на базі транзистора IRF4905 призначений для комутації потужних навантажень п..
177.66грн.





