#include #include #include #include #define D0 2 ESP8266WebServer server(80); char *APssid = "HomeDynamic"; char *APpw = "homedynamic"; //Global variables for mode int CurrentMode = 0; //0 = softAP, 1 = STA void setup() { Serial.begin(9600); delay(1000); WiFi.hostname("IMUS Relay Module"); boolean result = WiFi.softAP(APssid, APpw); if(result == true){ Serial.println("Soft AP Starting Ready"); }else{ Serial.println("Soft AP Starting Failed!"); } //Declare System Function for NodeMCU server.on("/", showForm); server.on("/submitForm", submitForm); server.on("/uuid", uuid); server.on("/info", info); server.on("/on", ON); server.on("/off", OFF); //Declare Output Pins pinMode(D0, OUTPUT); //Start Server server.begin(); Serial.println("Home Dynamic controller started at:"); Serial.println(WiFi.softAPIP()); } void showForm(){ int size=1000; char temp[size]; snprintf( temp, size, "
Your Wifi name:

Your Wifi password:


"); server.send(200, "text/html", temp); } void submitForm(){ WiFiClient client; // ssid and pw from user form GET String ssidStr = server.arg("ssid"); String pwStr = server.arg("wifipw"); Serial.println(ssidStr); Serial.println(pwStr); // use the ssid and pw to connect int sl1 = ssidStr.length() + 2; int sl2 = pwStr.length() + 2; char ssidbuf[sl1]; char pwbuf[sl2]; char temp[50]; snprintf( temp, 50, "Please wait while processing..."); ssidStr.toCharArray(ssidbuf,sl1); pwStr.toCharArray(pwbuf,sl2); WiFi.begin(ssidbuf, pwbuf); WiFi.mode(WIFI_STA); Serial.println("Home Dynamic controller connected to user WIFI at: "); Serial.println(WiFi.localIP()); client.print("Connected"); CurrentMode = 1; } void info(){ int size=1000; char temp[size]; snprintf( temp, size, "Standard Relay Module_9ff1e168-e83f-490d-bd28-2a8b7ffbc65d_"); server.send(200, "text/html", temp); } void uuid(){ int size=100; char temp[size]; snprintf( temp, size, "9ff1e168-e83f-490d-bd28-2a8b7ffbc65d"); server.send(200, "text/html", temp); } void ON(){ digitalWrite(D0,LOW); digitalWrite(D1,HIGH); Serial.println("Turned ON"); sendDone(); } void OFF(){ digitalWrite(D0,HIGH); digitalWrite(D1,LOW); Serial.println("Turned OFF"); sendDone(); } void sendDone(){ int size=100; char temp[size]; snprintf( temp, size, "DONE"); server.send(200, "text/html", temp); } void loop() { if (CurrentMode == 0){ Serial.printf("client count = %d\n", WiFi.softAPgetStationNum()); delay(300); } server.handleClient(); }