🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


🚪 Проект: ворота с двойным управлением — кнопка и веб-страница на ESP8266

ESP8266, реле и кнопка

Реле привода ворот или калитки срабатывает от обычной кнопки на месте — или, если нужно впустить гостя удалённо, от веб-страницы ESP8266, открытой с телефона в домашней сети.

Как это работает

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

Ключевая идея — функция `triggerGate()` вынесена отдельно и вызывается из ДВУХ независимых источников: обработки нажатия физической кнопки и обработки HTTP-запроса от веб-страницы. Оба пути в итоге делают одно и то же — подают короткий импульс на реле привода ворот, имитируя нажатие штатного пульта. Это удобный приём: не нужно дублировать логику управления, достаточно вызвать одну функцию из разных мест кода.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. Подключите кнопку (локальное управление): сигнал → D2 (GPIO4), с подтягивающим резистором или через `INPUT_PULLUP`.
  2. Подключите модуль реле KY-019 (привод ворот): сигнал → D1 (GPIO5), VCC → 5V (или 3.3V, смотря по модулю), GND → GND.
  3. В коде замените `your_wifi_name` и `your_wifi_password` на реальные данные вашей домашней Wi-Fi-сети.
  4. После прошивки откройте монитор порта на скорости 9600 — ESP8266 выведет полученный IP-адрес, именно его нужно открыть в браузере телефона/компьютера в той же сети.
  5. Реле подключайте к реальному приводу ворот только после проверки работы на макетной плате — ошибка в схеме с реальным приводом может повредить дорогостоящее оборудование ворот.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

#include <ESP8266WiFi.h>

const int buttonPin = 4;   // кнопка локального управления (GPIO4 / D2)
const int relayPin = 5;    // реле привода ворот (GPIO5 / D1)
const char* ssid = "your_wifi_name";
const char* password = "your_wifi_password";
WiFiServer server(80);

void triggerGate() {
  digitalWrite(relayPin, HIGH);
  delay(1000); // длительность импульса на реле — как короткое нажатие пульта
  digitalWrite(relayPin, LOW);
}

void setup() {
  Serial.begin(9600);
  pinMode(buttonPin, INPUT);
  pinMode(relayPin, OUTPUT);

  WiFi.begin(ssid, password);
  Serial.print("Подключение к Wi-Fi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("Подключено! IP-адрес для управления воротами: ");
  Serial.println(WiFi.localIP()); // этот адрес нужно открыть в браузере

  server.begin();
}

void loop() {
  if (digitalRead(buttonPin) == HIGH) {
    triggerGate();
  }

  WiFiClient client = server.available();
  if (client) {
    String request = client.readStringUntil('\r');
    client.flush();
    if (request.indexOf("/open") != -1) {
      triggerGate();
    }
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html; charset=utf-8");
    client.println();
    client.println("<html><body><a href=\"/open\"><button>Открыть ворота</button></a></body></html>");
  }
}

Функция `triggerGate()` вызывается из двух независимых мест — обработки кнопки и обработки веб-запроса, оба пути приводят к одному и тому же импульсу на реле привода.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 📟 веб-панель температуры и влажности на ESP8…🛑 автоотключение нагрузки при перегрузке по … →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 324 ₽ 292 ₽ (экономия 32 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA