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

Умный дом #4: Умная розетка на ESP32

Умный дом #4: Умная розетка на ESP32 Умная розетка — один из наиболее востребованных элемен..

Модуль PS/2

Модуль PS/2

Модуль порта PS2 для подключения компьютерной клавиатуры или мыши к плате контроллераПитающее напряж..

61.53грн.

ESP32 LED PWM: управление яркостью светодиодов LEDC

ESP32 LED PWM: управление яркостью светодиодов LEDC

ESP32 LED PWM Controller: управление яркостью светодиодов ESP32 имеет встроенный модуль LED..

Разработка IoT устройств под ключ

Разработка IoT устройств под ключ

Разработка IoT устройств под ключ Вам нужно IoT устройство под ключ — от ..

Циклы 4 — Цикл do...while

Циклы 4 — Цикл do...while

Циклы 4 — Цикл do...while Введение Цикл do...while — это разновидность цикла while, но с..