/************************ Adafruit IO Configuration *******************************/ // visit io.adafruit.com if you need to create an account, // or if you need your Adafruit IO key. #define IO_USERNAME "Ver video anterior si no sabes que poner aqui" #define IO_KEY "Ver video anterior si no sabes que poner aqui" /******************************* WIFI Configuration **************************************/ const char *ssid = "Nombre del modulo"; const char *password = "Clave del modulo"; #define WIFI_SSID "Nombre de tu wifi" #define WIFI_PASS "clave de tu wifi" #include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); /************************ Main Program Starts Here *******************************/ #include #include #include #include #include #include #include MDNSResponder mdns; ESP8266WebServer server(80); #define Relay1 16 //Chiquito 0 grande 16 #define Relay2 5 #define Relay3 4 #define Relay4 0 #define CortinaU 2 #define CortinaD 12 #define Termometro A0 #define Movimiento 14 // button state int current = 0; int last = 0; int on1 = 1; int on4 = 1; int onU = 1; int onD = 1; int mov = 0; String modo = "M"; String audiomode = "computer"; String estado = ""; int input,temp; //char temperatura[6]; // variable de la pagina web String webPage; // set up the 'command' feed AdafruitIO_Feed *command = io.feed("lights"); String getPage(){ String webPage = ""; webPage += ""; webPage += "CHRIS'S ROOM"; webPage += ""; webPage += ""; webPage += "
"; webPage += "

"; webPage += ""; webPage += "

"; webPage += "

"; webPage += "

"; webPage += ""; webPage += "

"; webPage += ""; webPage += "

"; return webPage; } void setup() { // set button pin as an input pinMode(Relay1, OUTPUT); pinMode(Relay2, OUTPUT); pinMode(Relay3, OUTPUT); pinMode(Relay4, OUTPUT); pinMode(CortinaU, OUTPUT); pinMode(CortinaD, OUTPUT); pinMode(Termometro, INPUT); pinMode(Movimiento, INPUT); // start the serial connection Serial.begin(115200); // connect to io.adafruit.com Serial.print("Connecting to Adafruit IO"); io.connect(); Serial.print("Connecting to "); Serial.println(WIFI_SSID ); WiFi.begin(WIFI_SSID , WIFI_PASS); WiFi.softAP(ssid, password); IPAddress myIP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(myIP); // set up a message handler for the 'command' feed. // the handleMessage function (defined below) // will be called whenever a message is // received from adafruit io. command->onMessage(handleMessage); // wait for a connection while(io.status() < AIO_CONNECTED) { Serial.print("."); delay(500); } while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } if (mdns.begin("esp8266", WiFi.localIP())) Serial.println("MDNS responder started"); Serial.println(WiFi.localIP()); server.on("/", [](){ server.send(200, "text/html", getPage()); }); server.on("/T", [](){ server.send(200, "text/html", getPage()); Serial.println("Temp checked"); Serial.println(input); }); server.on("/L", [](){ luz(); server.send(200, "text/html", getPage()); }); server.on("/3", [](){ abanico3(); server.send(200, "text/html", getPage()); }); server.on("/5", [](){ abanico5(); server.send(200, "text/html", getPage()); }); server.on("/0", [](){ abanico0(); server.send(200, "text/html", getPage()); }); server.on("/A", [](){ audio(); server.send(200, "text/html", getPage()); }); server.on("/U", [](){ cortinaU(); server.send(200, "text/html", getPage()); }); server.on("/D", [](){ cortinaD(); server.send(200, "text/html", getPage()); }); server.on("/Modo", [](){ luzmode(); server.send(200, "text/html", getPage()); }); server.on("/Day", [](){ Day(); server.send(200, "text/html", getPage()); }); server.on("/Sleep", [](){ Sleep(); server.send(200, "text/html", getPage()); }); server.begin(); Serial.println("HTTP server started"); // we are connected Serial.println(); Serial.println(io.statusText()); } void loop() { input=analogRead(Termometro); temp=((input*3.3*100)/1024); io.run(); server.handleClient(); if (modo=="A"){ mov=digitalRead(Movimiento); Serial.println(mov); if (mov==1){ digitalWrite(Relay1,HIGH); estado=""; Serial.println("Movimiento detectado"); delay(100); } else{ digitalWrite(Relay1,LOW); estado=""; Serial.println("Todo está en calma"); delay(100); } } } // this function is called whenever a 'command' message // is received from Adafruit IO. it was attached to // the command feed in the setup() function above. void handleMessage(AdafruitIO_Data *data) { int command = data->toInt(); switch (command){ case 0: luz(); break; case 1: luz(); break; case 2: abanico3(); break; case 3: abanico5(); break; case 4: abanico0(); break; } } void luz(){ if(modo=="M"){ on1 = !on1; //Turn on LED digitalWrite(Relay1,on1 ? LOW:HIGH); delay(100); if (on1 == 1){ estado=""; Serial.println("Luz apagada"); } else{ estado=""; Serial.println("Luz encendida"); } } } void luzmode(){ if (modo == "M"){ modo="A"; } else{ modo="M"; } } void abanico3(){ Serial.println("Abanico en 3"); digitalWrite(Relay3, LOW); digitalWrite(Relay2, HIGH); delay(100); } void abanico5(){ Serial.println("Abanico en 5"); digitalWrite(Relay2, HIGH); digitalWrite(Relay3, HIGH); delay(100); } void abanico0(){ Serial.println("Abanico apagado"); digitalWrite(Relay2, LOW); digitalWrite(Relay3, LOW); delay(100); } void audio(){ on4 = !on4; digitalWrite(Relay4,on4 ? LOW:HIGH); delay(100); if (on4 == 1){ audiomode="bluetooth_connected"; Serial.println("Audio BT"); } else { audiomode="computer"; Serial.println("Audio PC"); } } void cortinaU(){ onU = !onU; digitalWrite(CortinaU,onU ? LOW:HIGH); delay(100); if(onU==1){ Serial.println("Cortina detenida"); } else { Serial.println("Cortina subiendo"); } } void cortinaD(){ onD = !onD; digitalWrite(CortinaD,onD ? LOW:HIGH); delay(100); if(onD==1){ Serial.println("Cortina detenida"); } else { Serial.println("Cortina bajando"); } } void Day(){ Serial.println("Day mode"); digitalWrite(Relay1,HIGH); abanico3(); } void Sleep(){ Serial.println("Sleep mode"); digitalWrite(Relay1,LOW); abanico5(); }