🛒
0 товар.
0 руб.
Логотип

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

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

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

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

Реле привода срабатывает от обычной кнопки на месте или от веб-страницы ESP8266 с телефона.

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

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

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

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

  1. Кнопка: сигнал → D2 (GPIO4), через подтягивающий резистор или INPUT_PULLUP в коде
  2. Модуль реле KY-019: сигнал → D1 (GPIO5)
  3. Впишите в код имя и пароль своей Wi-Fi сети
  4. После загрузки узнайте IP-адрес ESP8266 через монитор порта

Скетч

// Проверьте код через монитор порта под свою схему — я языковая модель, могу что-то упустить.

#include <ESP8266WiFi.h>

const int buttonPin = 4;
const int relayPin = 5;
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);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  Serial.print(F("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: Электронные модули.

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

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

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

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

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

Корзина

Поиск


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