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 разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Монтажный шилд для NodeMcu ESP8266

Монтажный шилд для NodeMcu ESP8266

Монтажный модуль расширения для WiFi контроллера NodeMcu ESP8266Позволяет выполнять монтаж прое..

90.58грн.

Arduino Nano I2C двухсторонняя связь между контроллерами

Arduino Nano I2C двухсторонняя связь между контроллерами

Продолжаем разбор технологии обмена данными по коммуникации I2C В предыдущей статье рассматривался ..

Символьный индикатор LCD 2004

Символьный индикатор LCD 2004

Четырехстрочный символьный жидкокристаллический индикатор с синей подсветкой LCD2004.Напряжение пита..

205.21грн.

Адаптер USB 2.0 в TTL UART

Адаптер USB 2.0 в TTL UART

Коммуникационный конвертер USB 2.0 в TTL UARTОснован на микросхеме CP2102Имеется самовоста..

125.05грн.

Модуль 5 — Датчики и модули: DHT11, LDR и проект «Умная лампа»

Модуль 5 — Датчики и модули: DHT11, LDR и проект «Умная лампа»

Модуль 5 — Датчики и модули (курс для начинающих) Цель модуля: познакомиться с популярными ..