Интернет-магазин «Неглупый Дом»
Реле привода срабатывает от обычной кнопки на месте или от веб-страницы ESP8266 с телефона.
ESP8266 одновременно опрашивает физическую кнопку и работает веб-сервером в одном цикле `loop()` — оба пути вызывают одну и ту же функцию `triggerGate()`, которая даёт короткий импульс на реле привода ворот. Это удобно: не нужно дублировать логику, достаточно одной функции для обоих способов управления.
Реализации модулей бывают разные — сверяйтесь с маркировкой своей платы.
// Проверьте код через монитор порта под свою схему — я языковая модель, могу что-то упустить.
#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 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.