УМНЫЙ ДОМ Умная лампа на ESP-8266

NovinTutor

✩✩✩✩✩✩✩
19 Июл 2025
14
1
Пытался сделать умную лампу из ESP-8266 (вместо самой лампы пока светодиод, потом подключу реле).
Написал программу:
Код:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char* ssid = "MTS.s.153";
const char* password = "11853374";
const int RELAY_PIN = D1;
ESP8266WebServer server(80);
void handleOn() {
  digitalWrite(RELAY_PIN, HIGH);
  server.send(200, "text/plain", "ON");
  Serial.println("[HTTP] Command: ON -> Relay activated");
}
void handleOff() {
  digitalWrite(RELAY_PIN, LOW);
  server.send(200, "text/plain", "OFF");
  Serial.println("[HTTP] Command: OFF -> Relay deactivated");
}
void handleNotFound() {
  server.send(404, "text/plain", "404: Not Found");
  Serial.println("[HTTP] Error: 404 - Page not found");
}
void setup() {
  Serial.begin(115200);
  Serial.println("\n[SYSTEM] ESP8266 starting...");
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);
  WiFi.begin(ssid, password);
  Serial.print("[WIFI] Connecting to ");
  Serial.println(ssid);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\n[WIFI] Connected!");
  Serial.print("[WIFI] IP address: ");
  Serial.println(WiFi.localIP());
  server.on("/on", HTTP_GET, handleOn);
  server.on("/off", HTTP_GET, handleOff);
  server.onNotFound(handleNotFound);
  server.begin();
  Serial.println("[HTTP] HTTP server started on port 80");
}
void loop() {
  yield();
  server.handleClient();
}
Далее собирался закомутировать его с Яндекс Алисой через AlexStar. Получились следующие правила: 1767684802703.png
и такое же для выключения, только off вместо on
дальше создал там виртуальное устройство и подключил его в приложении дом с алисой, оно начало отображаться но при нажатии кнопки переключения ничего не происходило. Помогите пожалуйста!
 
Изменено:

SlavaZagaynov

★✩✩✩✩✩✩
27 Ноя 2019
156
29
www.youtube.com
См. Доступный из интернета.
Купи у твого интернет провайдера услугу реальный ip, настрой на роутере переадресацию какого нибудь порта для есп, пропиши на роутере постоянный адрес в твоей сети для есп и сайт алексстар вообще будет не нужен.
p.s.
while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
ты ведь в курсе , что этот говнокод будет выполняться вечно, если подключение к вайфай не произошло? Неглупые люди так не делают.
 
Изменено: