Веб-сервер на ESP32: керуємо світлодіодами та реле з телефона
Перший IoT-проєкт: ESP32 піднімає сторінку в домашній Wi-Fi мережі, а ви вмикаєте й вимикаєте два виходи прямо з браузера.
Покрокові проєкти для ESP32 з поясненнями, схемами та кодом. Корисні посилання на документацію — у кожній статті.
Знайдено: 24
Перший IoT-проєкт: ESP32 піднімає сторінку в домашній Wi-Fi мережі, а ви вмикаєте й вимикаєте два виходи прямо з браузера.
Датчик DHT22 + ESP32 = жива сторінка з показами, яка оновлюється кожні 5 секунд без перезавантаження. Плюс JSON-API для інших пристроїв.
Прошиваємо ESP32 готовою прошивкою WLED прямо з браузера, підключаємо стрічку WS2812B і керуємо нею з телефона, Home Assistant чи голосом.
Запускаємо офіційний приклад CameraWebServer на платі AI-Thinker ESP32-CAM: живе відео в браузері, фото, розпізнавання облич і налаштування якості.
Протокол ESP-NOW дозволяє платам обмінюватися короткими повідомленнями напряму з затримкою в кілька мілісекунд. Робимо кнопку-пульт і приймач зі світлодіодом.
ESP32 бере точний час з NTP-серверів, сам перемикається на літній/зимовий час і показує його на дисплеї SSD1306 128×64.
Ємнісний датчик вологості ґрунту + помпа через реле. Уся логіка — у YAML-конфігу ESPHome: полив за порогом, захист від переливу, поріг змінюється з Home Assistant.
Плата прокидається раз на 10 хвилин, міряє температуру, вологість, тиск і заряд акумулятора, публікує їх у MQTT і знову засинає. Розбираємо, як вичавити максимум з батареї.
Прибираємо пароль від Wi-Fi з коду: при першому запуску ESP32 піднімає власну точку доступу з веб-формою, де можна вибрати мережу й задати власні параметри.
Робимо з ESP32 BLE-пристрій із сервісом UART: надсилаємо команди з телефона та отримуємо відповіді. Працює там, де немає роутера — у машині, на велосипеді, в гаражі.
Керуємо світлом командами /on та /off з будь-якої точки світу й отримуємо повідомлення в Telegram, коли PIR-датчик помітив рух. Без білого IP та прокидання портів.
Зчитувач RC522 розпізнає картки та брелоки 13.56 МГц, ESP32 перевіряє UID за списком і на 3 секунди відкриває електромагнітний замок. Плюс звукова індикація.
Один раз прошиваємо по USB — далі нові версії летять по Wi-Fi прямо з Arduino IDE чи PlatformIO. Незамінно, коли плата вже висить під стелею чи в щитку.
Чотири матриці 8×8 утворюють яскравий біжучий рядок. Текст змінюємо з телефона через просту веб-форму — для майстерні, кав'ярні чи дитячої кімнати.
Керуємо сервоприводом SG90/MG996R з телефона: тягнете повзунок — вал повертається в реальному часі. ШІМ генеруємо вбудованим модулем LEDC, без сторонніх бібліотек.
Ультразвуковий датчик над поверхнею води міряє відстань, ESP32 перетворює її на відсоток заповнення й показує на сторінці з анімованим баком. Для дачі, бочки з дощовою водою чи септика.
ESP32 має 10 вбудованих сенсорних входів. Шматок фольги, монета чи мідна пластина під склом стають кнопками: вмикаємо світлодіод і плавно змінюємо яскравість дотиком.
Водонепроникні датчики DS18B20 підключаються паралельно до одного GPIO. Міряємо температуру котла, бойлера, вулиці й кімнати одночасно та віддаємо все одним JSON.
Вмикаємо INA219 у розрив живлення й бачимо в браузері напругу, струм, потужність і накопичені мВт·год. Незамінно для оцінки автономності пристроїв на батарейках.
Пишемо скетч, який при підключенні сам реєструє в Home Assistant пристрій із сенсорами та перемикачем. Жодних записів у configuration.yaml — лише MQTT-брокер.
Цифровий MEMS-мікрофон передає звук по I2S без шумів АЦП. Рахуємо RMS, переводимо в децибели й вмикаємо сигнал, коли в кімнаті стає занадто гучно. Основа для голосових і звукореактивних проєктів.
Стрічка WS2812B плавно розгоряється теплим світлом, коли вночі хтось проходить, і сама гасне через хвилину. Фоторезистор не дає нічнику вмикатися вдень.
Найдешевший кроковий двигун із драйвером ULN2003. Пишемо власний неблокуючий напівкроковий драйвер, керуємо кутом і швидкістю командами з Serial. Основа для жалюзі, годівниць і поворотних платформ.
Модуль NEO-6M ловить супутники, бібліотека TinyGPSPlus розбирає NMEA, а ESP32 показує координати, швидкість, висоту й пройдену відстань на веб-сторінці з посиланням на OpenStreetMap.