/** * WiFi розетка. Версия 1.0 * Copyright (C) 2015 http://samopal.pro */ #include #include #include #include // GPIO, куда подцелено реле uint8_t PowerPin = 2; bool PowerOn = false; // Имя хоста const char* host = "esp8266-power"; // Вместо звездочек свои параметры WiFi сети const char* ssid = "*****"; const char* password = "******"; ESP8266WebServer server(80); void setup() { // Последовательный порт для отладки Serial.begin(115200); Serial.printf("\n\nFree memory %d\n",ESP.getFreeHeap()); // Инициализация выхода реле pinMode(PowerPin , OUTPUT); digitalWrite(PowerPin , PowerOn); // Подлючение к WiFi WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); if(WiFi.waitForConnectResult() == WL_CONNECTED){ // Запуск WEB-сервера MDNS.begin(host); server.on ( "/", HTTP_handleRoot ); server.onNotFound ( HTTP_handleRoot ); server.begin(); Serial.printf( "HTTP server ok! Open http://%s.local in your browser\n", host); } else { Serial.printf("WiFi started is fail"); } } void loop() { server.handleClient(); delay(50); } /* * Оработчик главной страницы сервера */ void HTTP_handleRoot(void) { bool stat = false; if( server.hasArg("stat") ){ if( strncmp(server.arg("stat").c_str(),"1",1) == 0 )stat = true; } else { stat = PowerOn; } String out = ""; out = "\ \ \ WiFi розетка\ \ \ \

WiFi розетка. Версия 1.0

\n"; if( stat ){ out+="\

Состояние: Включено
\ Выключить

\ "; } else { out+="\

Состояние: Выключено
\ Включить

\ "; } out+= "\ \ "; server.send ( 200, "text/html", out ); if( stat != PowerOn ){ PowerOn = stat; digitalWrite(PowerPin , PowerOn); if( PowerOn )Serial.println("Power is ON"); else Serial.println("Power is OFF"); } }