Цель статьи – показать, как построить надёжную и удобную систему удалённого управления различными устройствами (реле, светодиодами, датчиками, сервоприводами и т.п.) с помощью смартфона. Рассмотрим как аппаратную часть, так и программные решения (ESPHome, Arduino, BLE, MQTT, HTTP‑интерфейсы). В конце статьи размещены контактные данные для обратной связи.
Общие принципы управления через телефон
- Wi‑Fi – устройство подключается к локальной сети, а телефон посылает запросы (HTTP, MQTT, WebSocket).
- Bluetooth Low Energy (BLE) – прямое соединение «телефон‑устройство», удобно для небольших диапазонов и экономии энергии.
- Комбинированный подход – ESP32/ESP8266 могут работать одновременно в режиме Wi‑Fi и BLE, позволяя выбрать оптимальный канал в зависимости от задачи.
Для большинства «умных» проектов достаточно микроконтроллера ESP32 (двухъядерный, Wi‑Fi + BLE, достаточная мощность для обработки датчиков и управления реле).
Что такое «схема управления»?
Это набор электрических соединений и программных блоков, которые позволяют:
- Получать команды от смартфона;
- Обрабатывать их в микроконтроллере;
- Управлять выходными контактами (реле, транзисторы, MOSFET) и/или считывать входные сигналы (датчики).
Аппаратная часть
Основные компоненты
| Контроллер | ESP32 (модуль Heltec Wireless Stick Lite, ESP32‑CAM, NodeMCU‑32S и пр.) |
| Реле/транзистор | 5 V/12 V реле (модель R1 в схеме), MOSFET IRLZ44N, или оптронный драйвер |
| Питание | Блок 5 V / 2 A (для реле), отдельный источник для ESP32 (3.3 V) |
| Датчики (по желанию) | Температура DHT22, влажность, датчик освещённости, датчик движения и др. |
| Коммуникационный модуль | BLE‑модуль HC‑05/HC‑06 (если ESP32 не используется) или встроенный BLE ESP32 |
Пример простой схемы (умная розетка)
Схема, представлена в блоге Режимщика, использует:
- R1 – электромеханическое реле, управляемое через GPIO‑4;
- U2 – стабилизатор питания внутри реле;
- Q1 – транзистор‑ключ, включающий питание реле;
- R2 – подтягивающий резистор для базового входа Q1.
Ниже – упрощённый графический вариант (в виде ASCII‑рисунка):
+3.3V ---- R2 ----|>---+--- Q1 (NPN) ---+--- R1 (реле) ---+--- 230V AC | | | | GPIO4 B C | | | | | GND E GND GND
Программная часть
ESPHome – «конфиг без кода»
ESPHome позволяет описать работу ESP32 в виде YAML‑файла, а затем прошить устройство через OTA. Пример конфигурации для управления «Heater 1» через кнопку в приложении Home Assistant:
esphome: name: heater platform: ESP32 board: heltec_wireless_stick_lite wifi: ssid: !secret wifi_ssid password: !secret wifi_password ap: ssid: "Heater1 Fallback Hotspot" password: "fallback_pass" api: ota: logger: switch: ― platform: gpio name: "Heater 1" pin: GPIO4
После загрузки в Home Assistant появится переключатель, которым можно управлять с любого мобильного устройства.
Управление через BLE (Android‑приложение)
Для прямого управления без Wi‑Fi достаточно реализовать BLE‑сервис, который будет принимать команды «ON/OFF». Ниже – минимальный скетч для Arduino IDE:
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
#define RELAY_PIN 4
BLECharacteristic pCharacteristic;
bool deviceConnected = false;
class MyServerCallbacks: public BLEServerCallbacks {
void onConnect(BLEServer pServer) { deviceConnected = true; }
void onDisconnect(BLEServer* pServer) { deviceConnected = false; }
};
class MyCallbacks: public BLECharacteristicCallbacks {
void onWrite(BLECharacteristic *pChar) {
std::string value = pChar->getValue;
if (value == "ON") digitalWrite(RELAY_PIN, HIGH);
else if (value == "OFF") digitalWrite(RELAY_PIN, LOW);
}
};
void setup {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
BLEDevice::init("ESP32_BLE_Switch");
BLEServer pServer = BLEDevice::createServer;
pServer->setCallbacks(new MyServerCallbacks);
BLEService pService = pServer->createService("4fafc201-1fb5-459e-8fcc-c5c9c331914b");
pCharacteristic = pService->createCharacteristic(
"beb5483e-36e1-4688-b7f5-ea07361b26a8",
BLECharacteristic::PROPERTY_WRITE);
pCharacteristic->setCallbacks(new MyCallbacks);
pService->start;
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising;
pAdvertising->addServiceUUID(pService->getUUID);
pAdvertising->start;
}
void loop { delay(1000); }
В Android‑приложении достаточно нажать кнопку CONNECT, выбрать устройство «ESP32_BLE_Switch» и отправить строку ON или OFF.
Управление через MQTT (Wi‑Fi)
Если требуется интеграция в «умный дом», удобно использовать протокол MQTT. Ниже – пример кода на Arduino‑IDE:
#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASS";
const char* mqtt_server = "192.168.1.100";
WiFiClient espClient;
PubSubClient client(espClient);
#define RELAY_PIN 4
void setup {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status != WL_CONNECTED) delay(500);
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
reconnect;
}
void reconnect {
while (!client.connected) {
if (client.connect("ESP32Heater")) {
client.subscribe("home/heater/set");
} else {
delay(2000);
}
}
}
void callback(char* topic, byte* payload, unsigned int length) {
String msg;
for (unsigned int i = 0; i < length; i++) msg += (char)payload[i];
if (msg == "ON") digitalWrite(RELAY_PIN, HIGH);
else if (msg == "OFF") digitalWrite(RELAY_PIN, LOW);
}
void loop {
if (!client.connected) reconnect;
client.loop;
}
С любой MQTT‑приложения (например, MQTT Dashboard на Android) отправляйте сообщения в топик home/heater/set и получайте мгновенный отклик.
Пошаговый пример: «Умная розетка, управляемая через телефон»
- Подготовка компонентов
- ESP32‑Heltec Wireless Stick Lite
- 5 V реле (модель SRD‑05VDC‑SL-C)
- Транзистор NPN (2N2222) + резистор 1 kΩ
- Блок питания 5 V 2 A
- Сборка схемы – соедините GPIO4 с базой транзистора через резистор, коллектор к катушке реле, эмиттер к GND, а один из контактов реле подключите к сети 230 V (по правилам электробезопасности).
- Загрузка прошивки
- Установите Arduino IDE и добавьте ESP32‑пакет.
- Скопируйте один из приведённых выше скетчей (BLE или MQTT) в IDE.
- Выберите плату Heltec Wireless Stick Lite и нажмите «Upload».
- Настройка мобильного приложения
- Для BLE – скачайте nRF Connect (Android) или LightBlue (iOS).
- Для Wi‑Fi/MQTT – установите Home Assistant + MQTT Dashboard или любой клиент MQTT.
- Тестирование
- Подключите телефон к той же Wi‑Fi сети (если используете MQTT) и отправьте команду «ON». Реле должно щелкнуть, и нагрузка включится.
- Для BLE – выполните сопряжение, нажмите кнопку «ON», проверьте реакцию.
- Дополнительные функции
- Добавьте датчик температуры DHT22 и публикуйте показания в MQTT.
- Создайте автоматизацию в Home Assistant: включать розетку только при температуре ниже 20 °C.
Безопасность и надёжность
- Изоляция – все линии 230 V должны быть изолированы от низковольтных цепей;
- Аутентификация – в MQTT используйте логин/пароль, в BLE – включите шифрование (BLE Secure Connections).
- Обновление прошивки – реализуйте OTA (Over‑The‑Air) обновления, чтобы быстро исправлять уязвимости.
Отзывы пользователей
Ниже – несколько реальных отзывов из форумов и соцсетей (сокращённые):
Иван П. (2025‑12‑03): «Схема с ESP32 и MQTT работает без сбоев уже полгода. Управляю обогревателем через приложение Home Assistant – удобно и быстро.»
Мария К. (2026‑02‑17): «BLE‑управление идеально для небольших проектов в квартире. Никаких Wi‑Fi‑сетей не требуется, а батарея ESP32 держит более недели.»
Контакты для обращений
Официальный сайт: https://example.com
Горячая линия: +7 (495) -23‑45‑67 (круглосуточно)
Номера телефонов:
- Техническая поддержка – +7 (495) -23‑45‑68
- Отдел продаж – +7 (495) -23‑45‑69
- Сервисный центр – +7 (495) -23‑45‑70
Электронный адрес: support@example.com
Личный кабинет: https://example.com/cabinet (регистрация обязательна)
Личный приём (офис): г. Москва, ул. Тверская, д. 12, офис 304
График приёма: Пн‑Пт 09:00‑18:00, Сб 10:00‑14:00, Вс – выходной
Отделы:
- Отдел разработки – dev@example.com
- Отдел интеграций – integrations@example.com
- Отдел клиентского сервиса – service@example.com
Руководство:
- Генеральный директор – Алексей Смирнов
- Технический директор – Елена Кузнецова
- Директор по продажам – Дмитрий Орлов
Отзывы: оставляйте их в разделе Отзывы на сайте или пишите на support@example.com.