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-бота для віддаленого моніторингу — це просте й надійне рішення для особистих і професійних завдань. Проєкт легко розширюється: можна додати додаткові датчики, автоматичні попередження та елементи керування. Такий підхід дозволяє зібрати функціональну систему віддаленого контролю без платних хмарних сервісів та складних серверних застосунків.

<< Проекти << Усі товари >> Статті, уроки >>

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Модуль реле одноканальний 5В 10А

Модуль реле одноканальний 5В 10А

Одноканальный модуль реле для підключення напряму до дискретного виходу контролера. Світлодіодна інд..

43.11грн.

Arduino управління двигунами постійного струму

Arduino управління двигунами постійного струму

Arduino управління двигунами постійного струму1. Управління маленькими моторчикамиУправління маленьк..

Кінцевий вимикач або кінцевик

Кінцевий вимикач або кінцевик

Має одну групу перемикаючих контактів. На кінчику ричага встановлений рухомий ролік.Максимальний стр..

23.58грн.

3 безкоштовні MQTT-сервери для тестування ESP32

3 безкоштовні MQTT-сервери для тестування ESP32

3 безкоштовні MQTT-сервери для тестування ESP32 Під час розробки IoT-проєктів на ESP32 майже за..

Розробка IoT пристроїв під ключ

Розробка IoT пристроїв під ключ

Розробка IoT пристроїв під ключ Потрібен IoT пристрій під ключ — від ідеї..