Руководства · 11 мин чтения

Управление ESP32 с телефона: BlueGrays IoT за 5 шагов

Управление ESP32 с телефона через BlueGrays IoT: подключение реле и DHT22, код от Ohmi, 5 шагов настройки, графики и решение частых ошибок.

Управление ESP32 с телефона означает, что реле, светодиод или мотор на плате можно включать и выключать со смартфона в кармане, а показания датчиков видеть прямо на экране. Это самый увлекательный первый шаг в IoT. В ESP32 уже встроены Wi-Fi 2,4 GHz и Bluetooth, поэтому дополнительный модуль не нужен. Главный вопрос в том, какой путь выбрать. Для управления ESP32 через приложение можно написать свой веб-сервер, подключиться по Bluetooth или завести Telegram-бота. Есть и облачные панели вроде Blynk и Arduino IoT Cloud. У каждого способа своё время настройки, дальность и ограничения.

В этом руководстве шаг за шагом настроим самый короткий путь: функцию BlueGrays IoT в приложении BlueGrays. Код для тебя готовит Ohmi. Остаётся собрать схему и загрузить код в ESP32 из Arduino IDE. Плата подключается к серверу BlueGrays по зашифрованному соединению, поэтому телефону и плате не нужно быть в одной сети. Лампу дома можно включить с работы даже через мобильный интернет. Сначала сделаем выключатель лампы на реле. Потом добавим в схему DHT22 и выведем температуру и влажность на телефон в виде живых значений и графиков. В конце статьи есть сравнение с другими способами и таблица решений самых частых ошибок.

Отладочная плата ESP32 для управления с телефона
ESP32 выходит в интернет напрямую через встроенный Wi-Fi 2,4 GHz; для управления с телефона дополнительный беспроводной модуль не нужен.

5 способов управлять ESP32 с телефона

  • Локальный веб-сервер: ESP32 отдаёт веб-страницу, а ты открываешь IP-адрес платы в браузере телефона. Аккаунт не нужен, но обычно доступ есть только из той же сети Wi-Fi. Подробности в статье ESP32 Async Web Server.
  • Bluetooth Classic и BLE: интернет и роутер не нужны, телефон подключается к плате напрямую. Дальность в помещении обычно около 10 метров. Оба вида разобраны в руководстве ESP32 и Bluetooth.
  • Telegram-бот: отправляешь плате команды сообщениями и получаешь от неё уведомления. Работает и вне дома, но панели с графиками или ползунками нет. Настройка описана в статье Telegram-бот на ESP32.
  • Облачные панели (Blynk, Arduino IoT Cloud): в веб-консоли задаёшь шаблон и переменные, код пишешь вручную, панель на телефоне тоже проектируешь сам процесс за процессом. Путь гибкий, но придётся освоить несколько экранов и понятий. Для Blynk есть готовое руководство Blynk для ESP32.
  • BlueGrays IoT: в приложении выбираешь один из 8 готовых шаблонов. Ohmi готовит код с твоими настройками пинов и ключом устройства. Переключатели, ползунки, выбор цвета и графики появляются на телефоне автоматически в зависимости от шаблона. Проектировать панель или поднимать сервер не нужно.

Что понадобится: компоненты и программы

КомпонентЗачем нуженПримечание
Отладочная плата ESP32Контроллер с Wi-FiПоддерживаются ESP32 Dev Module, WROOM, S3 и C3
USB-кабель с передачей данныхЗагрузка кода и питаниеС кабелем только для зарядки порт не появится
Модуль реле на 5 VКоммутация лампыВыбирай модуль с оптопарой, срабатывающий от сигнала 3,3 V
Светодиод + резистор 220 ΩБезопасная первая проверка вместо релеВ коде ставится RELAY_ACTIVE_LOW = false
DHT22 (по желанию)Измерение температуры и влажностиДля шаблона «Комнатная станция»
Макетная плата и провода-перемычкиСборка соединенийДля модулей удобны провода «папа–мама»
Сеть Wi-Fi 2,4 GHzВыход платы в интернетК сети 5 GHz плата не подключится
Arduino IDEЗагрузка кода в платуНужен пакет esp32 от Espressif версии 3.x
Приложение BlueGraysНастройка и управление с телефонаiOS и Android; первое устройство бесплатно

Как работает управление ESP32 через приложение

В BlueGrays IoT телефон и ESP32 не соединяются напрямую. После включения плата сначала подключается к домашней сети Wi-Fi 2,4 GHz. Затем она открывает зашифрованное соединение WebSocket (TLS) с сервером BlueGrays через порт 443 и держит его постоянно открытым. Приложение на телефоне подключается к тому же серверу. Когда ты нажимаешь выключатель лампы, команда идёт с телефона на сервер, а с сервера на плату. Соединение уже открыто, поэтому команда доходит без задержки. Значение температуры от платы проходит тот же путь в обратную сторону. Порт 443 используют и обычные сайты. Поэтому не нужны ни проброс портов на роутере, ни свой сервер, ни знание IP-адреса платы.

Плату для сервера опознаёт ключ устройства. Это секретная строка, начинающаяся с bgd_, которую приложение создаёт вместе с устройством. Открывая соединение, плата передаёт ключ в заголовке, и сервер пересылает команду с телефона нужной плате. В монитор порта ключ не выводится. Если связь пропадает, библиотека BlueGraysIoT сама пробует переподключиться с растущими интервалами. Значения, измеренные офлайн, она отправляет после подключения, а после отключения электричества восстанавливает последнее состояние переключателей. Достаточно, чтобы у платы и телефона был интернет: плата может быть в домашнем Wi-Fi, а телефон в другом городе на мобильном интернете.

Схема: подключение модуля реле к ESP32

В шаблонах выключателя лампы и комнатной станции пины по умолчанию такие: вход IN реле идёт на GPIO26, вывод данных DHT22 на GPIO4. Эти пины можно поменять на 3-м шаге настройки. Расположение выводов своей платы проверь в утилите распиновки. На одних платах у пина 5 V написано VIN, на других 5V.

ДетальПин деталиПин ESP32Примечание
Модуль релеVCC5V (VIN)Катушке нужно 5 V; при питании платы от USB на этом пине около 5 V
Модуль релеGNDGNDОбщая земля
Модуль релеINGPIO26Управляющий сигнал 3,3 V
Светодиод (для проверки)Длинная ножка (+)GPIO26Через резистор 220 Ω; короткая ножка на GND, в коде RELAY_ACTIVE_LOW = false
DHT22VCC3V3Для комнатной станции
DHT22DATAGPIO4Для голого датчика нужна подтяжка (pull-up) 10 kΩ; на модулях она уже есть
DHT22GNDGNDОбщая земля
Коммутировать реле сетевую лампу или розетку на 220 V опасно. Делай это вместе с человеком, который в этом разбирается, и собирай соединения, когда вилка вынута из розетки. Не оставляй открытых контактов, спрячь схему в закрытый корпус. Приложение показывает в шаблонах с реле то же предупреждение: сначала попробуй со светодиодом. ESP32 работает с логикой 3,3 V. Большинство модулей реле на 5 V срабатывают от такого сигнала, но не все, поэтому выбирай модуль с оптопарой. Подробности в статье Что такое модуль реле?

Настройка BlueGrays IoT: 5 шагов в приложении

В приложении открой Мастерская › Мои устройства › Добавить устройство. Вверху экрана появится счётчик вроде «Шаг 1 из 5». Первые три шага проходят на телефоне, четвёртый на компьютере, пятый снова на телефоне.

  1. Плата и шаблон: на вопрос «Какая у тебя плата?» выбери ESP32, на вопрос «Что она будет делать?» отметь один из 8 шаблонов. Для первой попытки хорошо подойдут «Лампа с реле» или «Комнатная станция» с датчиком. Дай устройству понятное имя, например «Лампа в гостиной».
  2. Детали и схема: список «Подготовь детали» показывает нужные шаблону компоненты. Схема «Подключи провода» рисует, какой вывод на какой пин идёт. В шаблонах с реле появится предупреждение «Если будешь работать с 220 V, делай это с тем, кто в этом разбирается. Сначала попробуй со светодиодом».
  3. Wi-Fi и код: введи имя сети Wi-Fi и пароль. Имя сети должно совпадать точно и относиться к диапазону 2,4 GHz. При желании в разделе «Пины подключения» замени GPIO26 и GPIO4 на другие. Затем нажми «Создать устройство и подготовить код». Ohmi подготовит код с твоим ключом устройства; перенеси его на компьютер кнопкой «Копировать код» или «Поделиться».
  4. Загрузка в Arduino IDE: загружаешь код в ESP32. Подшаги из приложения подробно разобраны в следующем разделе.
  5. Подключение: экран «Ждём твою плату» сам переходит дальше, как только плата подключится к серверу.

Шаги 4 и 5: загрузка кода и проверка подключения

  1. Если Arduino IDE не установлена, установи её. Шаги описаны в статье Установка Arduino IDE.
  2. В «Менеджере плат» (Boards Manager) найди «esp32» и установи пакет esp32 от Espressif. Нужна версия 3.x; если стоит старая 2.x, обнови её. Установка пакета есть и в статье Что такое ESP32?
  3. Подключи плату кабелем с передачей данных. В меню «Инструменты › Плата» (Tools › Board) выбери ESP32 Dev Module (или модель своей платы), в «Инструменты › Порт» (Tools › Port) выбери появившийся порт. Если порта нет, замени кабель. Затем установи драйвер CP210x или CH340 в зависимости от USB-микросхемы на плате.
  4. В «Менеджере библиотек» (Library Manager) найди BlueGraysIoT и нажми «Установить» (Install). На вопрос о зависимостях выбери «Установить все» (Install all): так установятся и WebSockets, ArduinoJson и DHT sensor library. Если не получается, загляни в руководство Как добавить библиотеку в Arduino.
  5. Открой новый скетч, удали содержимое, вставь скопированный из приложения код и нажми «Загрузка» (Upload). Если в нижнем окне всё зависло на «Connecting…», зажми кнопку BOOT на плате. Отпусти её, когда появятся проценты записи.
  6. Открой «Монитор порта» (Serial Monitor) и выставь скорость 115200. Сначала должна появиться строка «Wi-Fi connected», а через несколько секунд «BlueGrays IoT: connected».

Как только в мониторе порта появится сообщение о подключении, экран «Ждём твою плату» на телефоне сменится на «Подключено: значения теперь приходят в реальном времени». Теперь нажми выключатель лампы: должен раздаться щелчок реле или загореться светодиод. Если плата не подключится за 2 минуты, приложение попросит проверить три вещи. Выбрана сеть 2,4 GHz? В мониторе порта есть «Wi-Fi connected»? Регистр букв в пароле верный? Если даже первая строка не появляется, проблема на стороне Wi-Fi. Тогда поможет чек-лист из статьи ESP32 не подключается к Wi-Fi.

Первый код: включаем и выключаем лампу с телефона

Код, который приложение готовит для шаблона «Лампа с реле», похож на приведённый ниже. Первые три строки приходят уже заполненными твоим ключом устройства, именем сети и паролем; здесь они показаны заглушками. Остальной код короткий: функция реле, описание переключателя и loop() в одну строку.

C++ (Arduino IDE)
1/*
2 * Salon lambası · BlueGrays IoT
3 * BlueGrays · bluegrays.com
4 * Bu kodu paylaşma: içinde cihaz anahtarın ve Wi-Fi şifren var.
5 * Do not share this code: it contains your device key and Wi-Fi password.
6 */
7
8#include <BlueGraysIoT.h>
9
10// Uygulama bu üç satırı senin bilgilerinle doldurur / The app fills these three lines with your details
11const char *DEVICE_KEY = "bgd_UYGULAMADAKI_ANAHTARIN";
12const char *WIFI_NAME = "EV_AGI_2_4_GHZ";
13const char *WIFI_PASSWORD = "WIFI_SIFREN";
14
15BlueGraysIoT bg(DEVICE_KEY);
16
17const int RELAY_PIN = 26;
18const bool RELAY_ACTIVE_LOW = true;  // çoğu röle modülü LOW ile çeker / most relay modules switch on LOW
19void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
20
21void setup() {
22  Serial.begin(115200);
23  pinMode(RELAY_PIN, OUTPUT);
24  setRelay(false);                  // açılışta lamba kapalı / lamp off at power-up
25  bg.onSwitch("lamba", setRelay);   // uygulamadaki "Lamba" anahtarı / the "Lamba" switch in the app
26  bg.setDebug(Serial);              // durum mesajları Seri Port Ekranı'na / status messages to the Serial Monitor
27  bg.setLanguage(BG_LANG_TR);
28  bg.begin(WIFI_NAME, WIFI_PASSWORD);
29}
30
31void loop() {
32  bg.loop();  // burada uzun delay() kullanma / avoid long delay() calls here
33}
34
СтрокаЧто делает
#include Подключает библиотеку; Wi-Fi, шифрованное соединение и переподключение берёт на себя библиотека
DEVICE_KEY, WIFI_NAME, WIFI_PASSWORDКлюч устройства (начинается с bgd_), имя сети 2,4 GHz и пароль; заполняет приложение
BlueGraysIoT bg(DEVICE_KEY)Создаёт объект bg с ключом; все остальные команды выполняются через него
RELAY_PIN = 26Пин, к которому подключён вход IN реле; если на 3-м шаге пин изменён, здесь будет другое число
RELAY_ACTIVE_LOW = trueБольшинство модулей реле срабатывают от LOW; при проверке со светодиодом поставь false, иначе всё будет наоборот
setRelay(bool on)Когда on равно true, выставляет активный уровень: LOW для модуля с активным LOW, HIGH для остальных
setRelay(false) (в setup)После включения платы лампа выключена
bg.onSwitch("lamba", setRelay)При каждом изменении переключателя «Лампа» в приложении вызывает setRelay с true или false
bg.setDebug(Serial)Выводит сообщения о состоянии подключения в монитор порта
bg.setLanguage(BG_LANG_TR)Сообщения о состоянии выводятся на турецком
bg.begin(WIFI_NAME, WIFI_PASSWORD)Запускает подключение к сети Wi-Fi и серверу BlueGrays
bg.loop()Обрабатывает входящие команды и поддерживает соединение; вызывать в loop() постоянно
Не используй длинные delay() в loop(). С delay(5000) плата 5 секунд не сможет вызвать bg.loop(). Команда переключателя с телефона придёт с опозданием, а соединение может оборваться. Если нужны паузы, используй millis(), как в следующем примере. Принцип разобран в статье Arduino millis() и delay().

Добавляем датчик: комнатная станция (реле + DHT22)

Теперь добавим к той же плате DHT22 и будем отправлять данные на телефон. Если выбрать в приложении шаблон «Комнатная станция», рядом с выключателем лампы появятся температура (°C) и влажность (%) с графиками. DHT22 измеряет температуру от -40 до 80 °C с точностью около ±0,5 °C, влажность в диапазоне 0–100%, и опрашивать его можно не чаще раза в 2 секунды. Подключи вывод данных к GPIO4, VCC к 3V3, GND к GND. Как устроено семейство DHT, сравнительно разобрано в статье Датчик температуры и влажности DHT11.

C++ (Arduino IDE)
1/*
2 * Oda istasyonu · BlueGrays IoT
3 * BlueGrays · bluegrays.com
4 * Bu kodu paylaşma: içinde cihaz anahtarın ve Wi-Fi şifren var.
5 * Do not share this code: it contains your device key and Wi-Fi password.
6 */
7
8#include <BlueGraysIoT.h>
9#include <DHT.h>
10
11const char *DEVICE_KEY = "bgd_UYGULAMADAKI_ANAHTARIN";
12const char *WIFI_NAME = "EV_AGI_2_4_GHZ";
13const char *WIFI_PASSWORD = "WIFI_SIFREN";
14
15BlueGraysIoT bg(DEVICE_KEY);
16
17const int RELAY_PIN = 26;
18const bool RELAY_ACTIVE_LOW = true;  // çoğu röle modülü LOW ile çeker / most relay modules switch on LOW
19void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
20DHT dht(4, DHT22);                   // DHT22 veri ucu GPIO4 / DHT22 data on GPIO4
21unsigned long lastReadMs = 0;
22
23void setup() {
24  Serial.begin(115200);
25  pinMode(RELAY_PIN, OUTPUT);
26  setRelay(false);
27  bg.onSwitch("lamba", setRelay);
28  dht.begin();
29  bg.setDeadband("sicaklik", 0.1);   // 0,1 °C değişmeden gönderme / send only after a 0.1 °C change
30  bg.setDeadband("nem", 1.0);        // %1 değişmeden gönderme / send only after a 1 % change
31  bg.setDebug(Serial);
32  bg.setLanguage(BG_LANG_TR);
33  bg.begin(WIFI_NAME, WIFI_PASSWORD);
34}
35
36void loop() {
37  bg.loop();  // burada uzun delay() kullanma / avoid long delay() calls here
38  if (millis() - lastReadMs >= 2000) {  // DHT22 en fazla 2 saniyede bir okunur / DHT22 reads at most every 2 s
39    lastReadMs = millis();
40    bg.send("sicaklik", dht.readTemperature());
41    bg.send("nem", dht.readHumidity());
42  }
43}
44

Часть с реле такая же, как в первом коде; нового три вещи. Первая — строка bg.send("sicaklik", dht.readTemperature()): она отправляет значение с платы в приложение, а первый параметр — имя переменной в приложении. Вторая — строка bg.setDeadband("sicaklik", 0.1). Она задаёт минимальное изменение: пока температура не изменится на 0,1 °C, повторно она не отправится, для влажности порог 1%. Третья — проверка millis() - lastReadMs >= 2000 внутри loop. Датчик опрашивается раз в 2 секунды, а bg.loop() между опросами продолжает крутиться без ожидания. Библиотека отправляет значение только при изменении и не превышает скорость плана. Между двумя отправками одной переменной проходит не меньше 1 секунды на бесплатном плане и не меньше 0,2 секунды в Premium. Эти лимиты проверяются на сервере; изменение чисел в коде их не обойдёт. Если температура в комнате минутами держится на 23,4 °C, плата ничего нового не шлёт, а при 23,5 °C уйдёт одно сообщение. Если провод болтается или нет подтяжки, показание будет недействительным (NaN). Если значения не приходят, сначала проверь подключение GPIO4 и питание.

Что видно на телефоне

  • Состояние: вверху экрана устройства написано «Онлайн» или «Офлайн», ниже — «Последние данные … назад». Здесь первым делом видно, действительно ли плата подключена.
  • Управление: в шаблоне лампы появляется переключатель вкл/выкл. В шаблоне RGB-ленты — выбор цвета, яркость 0–100% и выбор эффекта. В шаблоне штор — ползунок угла 0–180°.
  • Живые значения и графики: есть интервалы 1 ч, 24 ч, 7 дн. и 30 дн. В видах на 7 и 30 дней показывается среднее за час. На графике указаны минимум, максимум и последнее значение. Пока плата на связи, каждую минуту добавляется новая точка.
  • Код и ключ: здесь же позже можно посмотреть весь код, ключ устройства и данные Wi-Fi. Если плату нужно перепрограммировать, скопируй код отсюда.
  • Обновить ключ: используй, если кто-то увидел ключ или плата заменена. Старый ключ сразу перестаёт действовать, достаточно один раз загрузить в плату новый код.
  • Удалить устройство: устройство и история графиков удаляются, место для устройства освобождается.

Бесплатно и Premium: сколько можно использовать

Первое устройство бесплатно. Для выключателя лампы или комнатной станции на одной ESP32 больше ничего не нужно. В комнатной станции температура и влажность — две отдельные переменные. На бесплатном плане живые значения обеих приходят на телефон, но история графика хранится только для одной переменной. Различия между планами ниже; подробности в статье Что открывает BlueGrays Premium?

ВозможностьБесплатноPremium
Количество устройств110
Переменных с историей графиков120
Срок хранения истории24 часа30 дней
Минимальный интервал между отправками одной переменной1 секунда0,2 секунды

Сравнение с другими способами

СпособДоступ вне домаЧто нужно сделатьПанель и графикиКогда подходит
Локальный веб-серверОбычно нет, только из той же сетиНаписать код ESP32 и HTML-страницуПроектируешь самДомашняя панель управления без интернета
Bluetooth / BLEНет, около 10 мКод платы и приложение на телефонеЗависит от приложенияМеста без роутера, управление вблизи
Telegram-ботЕстьСоздать бота и написать кодСообщения и кнопки, без графиковУведомления и простые команды
BlynkЕстьШаблон, потоки данных, панель и кодГотовые виджеты и графикиДля тех, кто хочет свою панель
Arduino IoT CloudЕстьЗадать Thing и переменные в аккаунте Arduino, дописать кодВиджеты DashboardДля тех, кто остаётся в экосистеме Arduino
BlueGrays IoTЕстьСобрать схему и загрузить кодГотовые элементы управления и графики по шаблонуБыстрый старт и использование во время учёбы

Правильный выбор зависит от задачи. Если интернета нет совсем, остаются только Bluetooth или локальный веб-сервер. BlueGrays IoT, Blynk и Arduino IoT Cloud требуют, чтобы у платы и телефона был интернет. Если нужна гибкость, например интерфейс с нуля или связка с Home Assistant, больше возможностей дают ESP32 и MQTT и облачные панели. Готовых шаблонов в BlueGrays IoT 8. Зато схема, список деталей, код и интерфейс на телефоне приходят готовыми и согласованными между собой. Во время учёбы шансов ошибиться где-то по пути меньше.

Безопасность: ключ, пароль Wi-Fi и код

  • Ключ устройства — это удостоверение платы. Тот, кто знает ключ с bgd_, может выдать себя за твою плату. Поэтому не показывай ключ на скриншотах, в форуме или в чатах.
  • Пароль Wi-Fi остаётся на телефоне. На сервер он не отправляется; имя сети хранится вместе с устройством, чтобы позже снова показать код. Но в коде, загруженном в плату, пароль записан.
  • Не делись кодом. Как предупреждает и приложение, в коде есть ключ устройства и пароль Wi-Fi. Если показываешь код на форуме, чтобы попросить помощи, сначала удали строки DEVICE_KEY, WIFI_NAME и WIFI_PASSWORD.
  • Соединение зашифровано. Трафик между платой и сервером идёт по TLS через порт 443, и кто-то в той же сети не прочитает команды.
  • При подозрении обнови ключ. Кнопка «Обновить ключ» сразу делает старый ключ недействительным. Если отдаёшь плату другому человеку, тоже обнови ключ или удали устройство.

Частые ошибки и их решение

СимптомВозможная причинаРешение
В мониторе порта так и не появляется «Wi-Fi connected»Выбрана сеть 5 GHz или ошибка в регистре букв пароляВведи имя сети 2,4 GHz; если диапазоны на роутере с одним именем, раздели их; аккуратно введи пароль заново
В меню «Инструменты › Порт» нет портаКабель только для зарядки или нет драйвераВозьми кабель с передачей данных; установи драйвер CP210x или CH340 под свою микросхему
Загрузка зависает на «Connecting…»Плата не входит в режим загрузкиЗажми BOOT и отпусти, когда начнётся запись; подробнее в статье Код не загружается в Arduino
Компиляция останавливается с ошибками ядра ESP32Установлена старая версия пакета esp32 2.xОбнови до версии 3.x в «Менеджере плат»
«No such file or directory» (нет такого файла) (BlueGraysIoT.h, DHT.h, WebSockets)Не установлена библиотека или её зависимостиПереустанови BlueGraysIoT и выбери «Установить все»; недостающую найди отдельно по имени
Непонятные символы в мониторе портаСкорость не 115200Выставь в мониторе порта скорость 115200
«Wi-Fi connected» есть, а «BlueGrays IoT: connected» нетСеть не выходит в интернет, корпоративная сеть блокирует или загружен код до обновления ключаПопробуй через точку доступа на телефоне; загрузи актуальный код с экрана «Код и ключ»
Плата перезагружается при щелчке релеНе хватает питания (brownout)Возьми качественный кабель и мощный адаптер, питай реле от 5V; см. ESP32 Brownout
Светодиод горит при выключенном переключателеRELAY_ACTIVE_LOW оставлено true, как для релеЕсли светодиод подключён напрямую, поставь RELAY_ACTIVE_LOW = false
Аналоговый датчик после включения Wi-Fi выдаёт одно и то же значениеДатчик на пине ADC2Используй один из пинов ADC1 (GPIO32–39); подробности в статье Что такое АЦП?
Температура и влажность не приходятВывод данных DHT22 не на том пине или нет подтяжкиПодключи DATA к GPIO4, VCC к 3V3; для голого датчика добавь подтяжку 10 kΩ

Идеи IoT-проектов на ESP32

Когда путь между платой, сервером и телефоном настроен один раз, новое устройство добавляется за пару минут. Начни с выключателя лампы, потом посмотри, как данные с DHT22 текут на телефон, а затем переходи к проектам побольше вроде полива или штор. В приложении BlueGrays эти IoT-проекты на ESP32 есть пошагово, со схемой и кодом. Можно воспользоваться фильтром IoT-проектов в «Обзоре», а карточкой «Настроить как IoT-устройство» на странице проекта подключить ту же схему прямо к телефону.

Частые вопросы

Как управлять ESP32 с телефона?

ESP32 можно управлять с телефона через локальный веб-сервер, Bluetooth, Telegram-бота или облачные панели. В BlueGrays IoT открой Мастерская › Мои устройства › Добавить устройство. Выбери плату и шаблон, введи данные Wi-Fi и загрузи код от Ohmi через Arduino IDE. Когда плата подключится, переключатели и значения появятся на телефоне.

Можно ли управлять ESP32 с телефона без интернета?

С BlueGrays IoT нельзя: интернет нужен и плате, и телефону, потому что команды идут через сервер. Для управления без интернета подойдёт Bluetooth (BLE) или веб-сервер на ESP32 в той же сети.

Можно ли управлять ESP32 из другого города?

Да. Плата и телефон подключаются к одному серверу, поэтому им не нужно быть в одной сети. Плата может быть в домашнем Wi-Fi 2,4 GHz, а телефон на мобильном интернете. Проброс портов, статический IP и свой сервер не нужны.

BlueGrays IoT платный?

Первое устройство бесплатно. На бесплатном плане доступны 1 устройство, история графика для 1 переменной и история за 24 часа. В Premium открываются 10 устройств, история графиков для 20 переменных и хранение до 30 дней.

Что лучше для ESP32: Bluetooth или Wi-Fi?

Bluetooth не требует интернета и роутера, но дальность в помещении обычно около 10 метров. При управлении через Wi-Fi и сервер плату можно контролировать из любой точки мира, а графики и история сохраняются. Если всегда дома и роутера нет, подойдёт Bluetooth, для удалённого доступа лучше Wi-Fi.

Сколько устройств можно подключить к BlueGrays IoT?

На бесплатном плане 1 устройство, в Premium 10. Поддерживаются платы ESP32 (Dev Module, WROOM, S3, C3) и Raspberry Pi Pico W. После удаления устройства место для него освобождается.

Все проекты
IoT-выключатель лампы на ESP32 (реле)
#372Новичок
IoT

IoT-выключатель лампы на ESP32 (реле)

Включай и выключай лампу с телефона откуда угодно. Этот проект — пошаговое руководство к IoT-шаблону «Лампа на реле» в приложении, собранному на ESP32 и модуле реле и сначала опробованному со светодиодом. Открой Мастерская › Устройства › Добавить устройство и выбери «Лампа на реле»; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

0.0(0)
IoT-комнатная станция на ESP32 (реле + DHT22)
#371Средний
IoT

IoT-комнатная станция на ESP32 (реле + DHT22)

Включай лампу с телефона и следи за температурой и влажностью в комнате вживую откуда угодно. Этот проект — пошаговое руководство к IoT-шаблону «Комнатная станция» в приложении, собранному на ESP32, модуле реле и DHT22. Открой Мастерская › Устройства › Добавить устройство и выбери «Комнатная станция»; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

0.0(0)
1
IoT-полив растений на ESP32 (датчик почвы + насос)
#376Средний
IoT

IoT-полив растений на ESP32 (датчик почвы + насос)

Пусть насос включается сам, когда земля в горшке пересыхает, а влажность почвы видна на телефоне вживую. Этот проект — пошаговое руководство к IoT-шаблону «Влажность почвы + насос» в приложении, собранному на ESP32, датчике влажности почвы, реле и мини-помпе для воды. Открой Мастерская › Устройства › Добавить устройство; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

0.0(0)
IoT RGB-лента на ESP32 (WS2812B)
#374Средний
IoT

IoT RGB-лента на ESP32 (WS2812B)

Управляй светом в комнате с телефона: выбирай цвет, задавай яркость, включай эффект радуги или дыхания. Этот проект — пошаговое руководство к IoT-шаблону «RGB-лента» в приложении, собранному на ESP32 и ленте WS2812B из 30 светодиодов с тремя проводами. Открой Мастерская › Устройства › Добавить устройство и выбери «RGB-лента»; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

0.0(0)
1
IoT-открыватель штор на ESP32 (сервопривод SG90)
#378Средний
IoT

IoT-открыватель штор на ESP32 (сервопривод SG90)

Нажми + или − на телефоне, и сервопривод в тот же миг повернётся на этот угол: управляй моделью шторы, тягой жалюзи или крышкой откуда угодно. Этот проект — пошаговое руководство к IoT-шаблону «Штора на сервоприводе» в приложении, собранному на ESP32 и сервоприводе SG90 всего с 3 проводами. Открой Мастерская › Устройства › Добавить устройство; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

0.0(0)
1
IoT-температура и влажность на Pico W (DHT22)
#373Новичок
IoT

IoT-температура и влажность на Pico W (DHT22)

Следи за температурой и влажностью в комнате вживую на телефоне откуда угодно. Этот проект — пошаговое руководство к IoT-шаблону «Температура и влажность» в приложении, собранному на Raspberry Pi Pico W и DHT22. Открой Мастерская › Устройства › Добавить устройство, выбери плату Pico W и шаблон «Температура и влажность»; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

0.0(0)
1
IoT-датчик двери на Pico W (геркон)
#375Новичок
IoT

IoT-датчик двери на Pico W (геркон)

Дверь или окно остались открытыми? Проверь на телефоне откуда угодно. Этот проект — пошаговое руководство к IoT-шаблону «Дверь / окно» в приложении, собранному на Raspberry Pi Pico W, герконе и маленьком магните с двумя проводами. Открой Мастерская › Устройства › Добавить устройство, выбери плату Pico W и шаблон «Дверь / окно»; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

0.0(0)
IoT-счётчик движения на Pico W (PIR)
#377Новичок
IoT

IoT-счётчик движения на Pico W (PIR)

Считай, сколько раз кто-то проходит через дверь или коридор, и смотри момент движения вживую на телефоне. Этот проект — пошаговое руководство к IoT-шаблону «Датчик движения» в приложении, собранному на Raspberry Pi Pico W и PIR-датчике движения всего с 3 проводами. Открой Мастерская › Устройства › Добавить устройство; Ohmi подготовит код с твоим собственным ключом устройства. Код на этой странице — пример: ключ и данные Wi-Fi в нём заглушки.

0.0(0)