Arduino iOS based controller 220 volt

 

Immaginate la possibilità di accendere il vostro scaldabagno mentre state rientrando a casa da una dura giornata lavorativa, aprire la porta e sapere che la doccia calda è garantita. Perché? Perché siete stati voi ad accendere lo scaldabagno dal sedile dell’autobus con il vostro Smartphone.

Questa non è fantascienza ma è Arduino!

La parte di elettronica consiste nell’utilizzo di un relè attivabile con una corrente di 5 volt che è in grado di gestire correnti superiori (220 volt).

L’esempio che vedete nel video comanda dei led che assorbono un pochino meno di uno scaldabagno. Ma il principio è lo stesso.

Collegate

Codice Arduino:

/* ***
Autore : Giovanni Gentile
Web : https://www.0lab.it
COMPILARE CON ARDUINO 1.0 o successive controllare
un attuatore via web con sensori di temperatura e luce
ARDUINO UNO ETHERNET SHIELD.
Ringrazio GianniFavilli.it - www.giannifavilli.it
*** */
#include <String.h> #include <SPI.h> #include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // mac address byte ip[] = { 192, 168, 1, 111 }; // ip arduino internet in byte gateway[] = { 192, 168, 1, 1 }; // internet access via router 192.168.1.254 byte subnet[] = { 255, 255, 255, 0 }; //subnet mask EthernetServer server(80); //server port

//Pin attuatori int outPin = 2; int outPin2 = 5;

//Status attuatori String readString; boolean PINON = false; boolean PINON2 = false;

void setup(){ Ethernet.begin(mac, ip, gateway, subnet); pinMode(outPin, OUTPUT); pinMode(outPin2, OUTPUT); Serial.begin(9600); // MAC address della Ethernet shield byte mac[6];

// Stampa MAC address: Serial.print("MAC: "); Serial.print(mac[5],HEX); Serial.print(":"); Serial.print(mac[4],HEX); Serial.print(":"); Serial.print(mac[3],HEX); Serial.print(":"); Serial.print(mac[2],HEX); Serial.print(":"); Serial.print(mac[1],HEX); Serial.print(":"); Serial.println(mac[0],HEX); } void loop(){ EthernetClient client = server.available(); if (client) { boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); readString.concat(c);

//if HTTP request has ended if (c == '\n' && currentLineIsBlank) { Serial.print(readString); if(readString.indexOf("L=1") > 0) {// lettura del valore se il LED si deve accendere

// il led sarà acceso digitalWrite(outPin, HIGH); // accendo il led PINON = true; Serial.print("ON pin "); Serial.println(outPin); } else if (readString.indexOf("L=2") > 0) { digitalWrite(outPin2,HIGH); PINON2 = true; Serial.print("ON pin"); Serial.println(outPin2); } else if(readString.indexOf("L=0") > 0) { digitalWrite(outPin, LOW); //sengo il led PINON = false; Serial.print("OFF pin "); Serial.println(outPin); } else if (readString.indexOf("L=3") > 0) { digitalWrite(outPin2, LOW);

//Spengo il led PINON2 = false; Serial.print("OFF pin "); Serial.println(outPin); }

// COSTRUZIONE PAGINA HTML client.println("HTTP/1.1 200 OK....."); client.println("Content-Type: text/html"); client.println();

client.print("<!DOCTYPE HTML><html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><meta name='viewport' content='width=device-width, user-scrollbar=no'><title>Web control Arduino</title><link href='style_mobile.css' rel='stylesheet' type='text/css' media='only screen and (min-width: 0px) and (max-width: 320px)' ><link href='style_tablet.css' rel='stylesheet' type='text/css' media='only screen and (min-width: 321px) and (max-width: 768px)' ><link href='style_desktop.css' rel='stylesheet' type='text/css' media='only screen and (min-width: 769px)' ></head>"); //inizai il body //client.println("<div style='width:320px; height:480px;'>"); //Attuatore numero 1 client.println("<h3>CONTROLLO ATTUATORI</h3>"); client.println("<hr />"); client.print("<h4>PIN control n. "); client.print(outPin); client.println("</h4>"); client.println("<br />"); //scrivo il LED status client.print("<font size='4'>PIN status: "); if (PINON) { client.println("<span style='color:green; font-weight:bold;'>ON</span></font>"); } else { client.println("<span style='color:grey; font-weight:bold;'>OFF</span></font>"); } client.print("<h2><a href='/?L=1'>ACCENDI</a> | <a href='/?L=0'>SPEGNI</a></h2>");

//Attuatore numero 2 client.print("<h4>PIN control n. "); client.print(outPin2); client.println("</h4>"); client.println("<br />");

//scrivo il LED status client.print("<font size='4'>PIN status: "); if (PINON2) { client.println("<span style='color:green; font-weight:bold;'>ON</span></font>"); } else { client.println("<span style='color:grey; font-weight:bold;'>OFF</span></font>"); } client.print("<h2><a href='/?L=2'>ACCENDI</a> | <a href='/?L=3'>SPEGNI</a></h2>");

// firma client.println("<hr />"); client.print("<h4>0lab<br><a href='https://www.0lab.it' target='_blank' />www.0lab.it</a></h4>"); client.println("<hr />");

// chiudo il div client.println("</div>");

// chiudo pagina da togliere se uso ajax client.println("</body></html>");

// pulisco la stringa per la successiva lettura readString="";

//fermo il client client.stop(); } } } } }
Mar 8, 2014 | Posted by in Arduino, Blog, Elettro, Tutorial | 0 comments

Add Your Comment

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Premium Wordpress Themes by UFO Themes