Умный дом #2: Wi-Fi управление лампочкой через реле

Один из самых простых и наглядных проектов умного дома — это управление лампочкой или другим электроприбором через Wi-Fi. В этой статье мы рассмотрим, как подключить реле к контроллеру ESP32 и создать простой веб-сервер для включения и выключения лампы с телефона или компьютера. Такой проект является отличной отправной точкой для изучения основ домашней автоматизации и разработки собственных систем на базе ESP32.

Список оборудования и компонентов

  • Модуль ESP32 DevKit (с поддержкой Wi-Fi).
  • Модуль реле 5 В (с оптронами или без, рассчитанный на управление нагрузкой 220 В).
  • Лампочка накаливания или светодиодная лампа 220 В.
  • Соединительные провода (Dupont male-female).
  • Блок питания для ESP32 (5 В, 1 А, microUSB или внешний).
  • Макетная плата (по желанию, для удобства соединений).

Схема подключения и принцип работы

Подключение реле к ESP32 предельно простое. Для управления используется цифровой выход микроконтроллера. При подаче логического нуля или единицы (в зависимости от типа модуля) реле замыкает или размыкает цепь питания лампочки.

Основные соединения:

  • IN модуля реле → GPIO 23 (можно выбрать другой цифровой пин).
  • VCC модуля реле → 5 В ESP32.
  • GND модуля реле → GND ESP32.
  • Лампочка подключается к разрыву фазы сети 220 В через контакты реле (COM и NO).

Важно! Работа с сетевым напряжением 220 В требует осторожности. При сборке проекта соблюдайте правила безопасности, используйте изолированные провода и корпус для размещения компонентов.

Пример кода для ESP32

Ниже приведён базовый скетч на Arduino IDE, который создаёт веб-сервер. Через веб-интерфейс можно включать и выключать лампу.


// Подключаем библиотеки Wi-Fi
#include <WiFi.h>

// Указываем параметры Wi-Fi сети
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

// Порт для веб-сервера
WiFiServer server(80);

// Пин управления реле
const int relayPin = 23;

void setup() {
  Serial.begin(115200);
  
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, HIGH); // Реле изначально выключено

  // Подключение к Wi-Fi
  WiFi.begin(ssid, password);
  Serial.print("Подключение к Wi-Fi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("\nWi-Fi подключен!");
  Serial.print("IP-адрес: ");
  Serial.println(WiFi.localIP());

  // Запускаем сервер
  server.begin();
}

void loop() {
  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  Serial.println("Новый клиент");
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();

  // Управление реле через URL
  if (request.indexOf("/relay/on") != -1) {
    digitalWrite(relayPin, LOW); // Включить реле
  }
  if (request.indexOf("/relay/off") != -1) {
    digitalWrite(relayPin, HIGH); // Выключить реле
  }

  // Формируем простой HTML-интерфейс
  client.println("HTTP/1.1 200 OK");
  client.println("Content-type:text/html");
  client.println();

  client.println("<!DOCTYPE html><html>");
  client.println("<head><meta charset='utf-8'><title>Управление лампой</title></head>");
  client.println("<body style='font-family:Verdana; text-align:center;'>");
  client.println("<h1>Управление лампочкой через ESP32</h1>");
  client.println("<p><a href='/relay/on'><button style='padding:15px; font-size:18px;'>Включить</button></a></p>");
  client.println("<p><a href='/relay/off'><button style='padding:15px; font-size:18px;'>Выключить</button></a></p>");
  client.println("</body></html>");

  client.println();
  delay(1);
  Serial.println("Клиент отключён");
}

Применение и расширение проекта

Данный проект — только первый шаг. На его основе можно строить более сложные системы:

  • Добавить несколько реле и управлять разными приборами (например, освещением в разных комнатах).
  • Интегрировать управление через протокол MQTT и связать с Home Assistant.
  • Использовать таймеры или сценарии автоматизации (например, включение света по расписанию).
  • Добавить датчик движения, чтобы свет включался только при необходимости.
  • Управлять устройствами не только через веб-интерфейс, но и с помощью голосовых команд через Google Assistant или Alexa.

Заключение

Мы рассмотрели базовый проект умного дома — Wi-Fi управление лампочкой через реле с помощью ESP32. Такой пример помогает понять основы взаимодействия микроконтроллера с исполнительными устройствами и веб-технологиями. На практике этот подход позволяет быстро создавать прототипы и постепенно расширять систему, превращая её в полноценный умный дом.

Если вам нужен индивидуальный проект — разработка электроники, схемы, печатной платы и программного обеспечения, мы можем помочь. Мы разрабатываем и производим платы под задачи клиентов, создаём уникальные решения на базе ESP32. Ознакомьтесь с примерами реализованных проектов в нашем портфолио.

<< Проекты << Все товары >> Статьи, уроки >>

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Циклы 2 — Цикл for

Циклы 2 — Цикл for

Циклы 2 — Цикл for Введение Цикл for — один из самых часто используемых инструментов в A..

Джойстик 3 оси аналоговый влагозащищенный с кнопкой

Джойстик 3 оси аналоговый влагозащищенный с кнопкой

Джойстик аналоговый для установки в плоскую панельВлагозащищенной является только верхняя часть джой..

800.99грн.

Регулятор оборотов двигателя 3А 6-28В

Регулятор оборотов двигателя 3А 6-28В

Регулятор оборотов двигателя постоянного тока. Скорость задается переменным резистором.  Принц..

151.10грн.

Какие виды дисплеев можно использовать с Arduino для отображения информации

Какие виды дисплеев можно использовать с Arduino для отображения информации

Какие виды дисплеев можно использовать с Arduino для отображения информации Arduino — это п..

Модуль питания повышающий 2...24В/5...28В 2А

Модуль питания повышающий 2...24В/5...28В 2А

Модуль повышающий напряжение постоянного тока с 2 ... 24 В до 5 ... 28 ВНапряжение на выходе ре..

36.78грн.