ESP32 та Telegram-бот: віддалене керування через інтернет
Мікроконтролер ESP32 має вбудований Wi-Fi та дозволяє легко підключати пристрої до інтернету. Одним із найзручніших способів взаємодії з «розумним домом» або IoT-пристроями є використання Telegram-бота. У цій статті ми створимо простий проєкт, який дозволить керувати ESP32 за допомогою команд у Telegram.
Необхідне обладнання
- Плата ESP32 DevKit (WROOM або WROVER)
- Реле-модуль на 5 В (для керування навантаженням)
- Світлодіод і резистор 220 Ом (для індикації)
- Живлення 5 В для ESP32
- Wi-Fi мережа з доступом в інтернет
- Обліковий запис Telegram і створений бот через @BotFather
Принцип роботи
ESP32 підключається до Wi-Fi та за допомогою бібліотеки UniversalTelegramBot отримує команди від користувача. Команди надсилаються в Telegram-бот, бот передає їх на ESP32, а той вмикає або вимикає навантаження (реле чи світлодіод).
| Компонент | Підключення до ESP32 |
|---|---|
| Світлодіод | GPIO 2 через резистор 220 Ом |
| Реле-модуль | GPIO 5 (IN), VCC 5 В, GND |
Приклад коду
// Приклад ESP32 + Telegram Bot
// Бібліотеки: WiFi, WiFiClientSecure, UniversalTelegramBot, ArduinoJson
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
// Токен, отриманий у BotFather
#define BOT_TOKEN "123456789:AA..."
// ID чату (можна дізнатися, написавши боту через @userinfobot)
#define CHAT_ID "987654321"
WiFiClientSecure secured_client;
UniversalTelegramBot bot(BOT_TOKEN, secured_client);
const int ledPin = 2;
const int relayPin = 5;
unsigned long lastTimeChecked;
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
pinMode(relayPin, OUTPUT);
// Підключення до Wi-Fi
WiFi.begin(ssid, password);
Serial.print("Підключення до WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi підключено!");
secured_client.setInsecure(); // Вимикаємо перевірку TLS-сертифіката
}
void handleNewMessages(int numNewMessages) {
for (int i = 0; i < numNewMessages; i++) {
String chat_id = bot.messages[i].chat_id;
String text = bot.messages[i].text;
if (chat_id != CHAT_ID) continue; // Ігноруємо чужі чати
if (text == "/led_on") {
digitalWrite(ledPin, HIGH);
bot.sendMessage(chat_id, "Світлодіод увімкнено", "");
}
else if (text == "/led_off") {
digitalWrite(ledPin, LOW);
bot.sendMessage(chat_id, "Світлодіод вимкнено", "");
}
else if (text == "/relay_on") {
digitalWrite(relayPin, HIGH);
bot.sendMessage(chat_id, "Реле увімкнено", "");
}
else if (text == "/relay_off") {
digitalWrite(relayPin, LOW);
bot.sendMessage(chat_id, "Реле вимкнено", "");
}
}
}
void loop() {
if (millis() - lastTimeChecked > 2000) { // Перевірка раз на 2 секунди
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while (numNewMessages) {
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
lastTimeChecked = millis();
}
}
Застосування та розширення проєкту
- Керування світлом і побутовою технікою з будь-якої точки світу
- Запит температури або вологості з датчиків через команду
- Відправка сповіщень про тривогу (наприклад, при спрацюванні датчика руху)
- Створення простого «розумного дому» на базі ESP32
- Можливість додати авторизацію по ID чату для безпеки
Висновок
Зв’язка ESP32 та Telegram-бота — це доступний спосіб організувати віддалене керування та моніторинг ваших пристроїв без складних серверів чи хмарних платформ. Такий підхід можна легко масштабувати: додати нові команди, підключити датчики, розширити систему безпеки. Навіть початківець зможе зібрати робочий проєкт за один вечір.
Драйвер крокового двигуна DRV8825 під шилд RAMPS
Драйвер DRV8825 крокового двигуна для системи RAMPS. Приєднується до спеціального шилду Arduino для ..
104.31грн.
Трансформатор струму 0-30А
Аналоговий датчик змінного струму силою до 30А. Це роз'ємний трансформатор струму з діаметром отвору..
261.79грн.
Припой-паста для пайки SMD-компонентів
Паста-припой у шприці XG-Z40Намазується на контактні ділянки плати, плавиться при температурі > 1..
196.14грн.
Штекер Micro USB 2.0 розбірний
Розбірний штекер мікро-USB з виводами під пайкуКолір чорний..
12.78грн.
Розумний дім #2: Wi-Fi керування лампочкою через реле
Розумний дім #2: Wi-Fi керування лампочкою через реле Один із найпростіших і наочних проєкт..





