Sei sulla pagina 1di 30

Domotica Arduino

La casa intelligente

A cura di El hor Younes Classe 5AN

Domotica Pag. 3 Arduino UnoPag. 4 a 5 Arduino Shield.Pag. 6 a 7 Sensore DHT 22...Pag. 8 a 9 Circuito di raffreddamento...Pag. 10 a 11 Display LCD 16x1Pag. 12 Circuito di riscaldamento..Pag. 13 Circuito di illuminazione..Pag. 14 a 15 Sensore PIR...Pag. 16 a 17 Sensore MQ5.Pag. 18 Telecamera IPPag. 19 a 20 RouterPag. 21 Componenti elettrici..Pag. 22 PCB progetto.Pag. 23 Comunicazione tra Arduino e un sito WebPag. 24 a 29

Domotica
La domotica una scienza interdisciplinare che si occupa dello studio e delle tecnologie atte a migliorare la qualit della vita nella casa. Il termine domotica deriva dal latino domus che significa "casa. Questa area fortemente interdisciplinare richiede l'apporto di molte tecnologie e professionalit, tra le quali ingegneria edile, automazione, elettronica ed elettrotecnica, telecomunicazione ed informatica. Pi concretamente, la domotica, e' l'evoluzione tecnica dell' integrazione dei componenti dell' impianto elettrico "tradizionale" comunemente intesi come comandi luce, prese per prelievo energia, impianto citofonico o videocitofonico, impianto antifurto, motorizzazioni tapparelle, tende, finestre, porte, portoni e cancelli, riscaldamento, climatizzazione, irrigazione, prese TV-SAT, prese telefoniche, segnali audio e video, ecc... insomma, qualsiasi aspetto della vita quotidiana in cui coinvolta l'elettricit. La casa domotica e la domotica stessa non deve essere complicata, ma aiutarci nella semplificazione delle operazioni domestiche della vita quotidiana e gestibile dal proprietario come da un ospite che vi entra per la prima volta e non conosce il sistema.

Arduino Uno

Arduino una piattaforma hardware programmabile, con cui possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto in ambito di robotica ed automazione. Si basa su un Microcontrollore della ATMega328. Un particolare molto importante che ogni programma che si scrive su Arduino sar naturalmente avviato a loop() finch non si toglie l'alimentazione dal dispositivo. Quando lo colleghiamo ad una fonte di alimentazione (ad esempio la USB del PC o anche una comunissima Batteria da 9V) si accende e avvia il programma caricato. La scheda Arduino in grado di interagire con l'ambiente in cui si trova ricevendo informazioni da una grande variet di sensori. Ma non si parla solo di sensori, Arduino pu comandare luci, LED, motori e altri attuatori. Di seguito sono elencati i pin della scheda Arduino:

AREF ( Tensione analogica di riferimento) Questo pin regola il voltaggio di massima risoluzione degli input analogici GND - Massa PWM - I pin a disposizione con questa funzionalit sono 6 (Pin3/5/6/9/10/11). Il PWM, o pulse width modulation permette di creare un'onda di corrente regolabile. Questa molto utile per comandare svariati sistemi elettronici. Un esempio quello di comandare i servomotori da modellismo. DIGITAL PINS (dal 0 al 1) - Sono i pin TX e RX DIGITAL PINS (dal 2 al 13) Sono i pin del microcontrollore con la possibilit di essere configurati come INPUT o OUTPUT RESET - Questo un PIN digitale. Se la lettura di questo PIN=HIGH il controller si resetta PIN uscita corrente a 3.3V PIN uscita corrente a 5V Vin - PIN input corrente per alimentazione controller Analog in(0 al 5) - PIN input analogici. Possono percepire molto precisamente una corrente DC tra 0 e 5V, resistuendo un valore da 0 a 1023.

Caratteristiche della scheda Arduino Uno


Clock Speed 16 MHz EEPROM 1 KB (ATmega328) SRAM 2 KB (ATmega328) Memoria flash 32 KB (ATmega328) di cui 2kb usati dal bootloader Corrente DC per il PIN 3.3v 50 mA Corrente DC I/O per PIN 40 mA PIN input analogici 6 PIN I/O digitali 14 (di cui 6 PWM output) Limiti voltaggio alimentazione 6-20V Voltaggio alimentazione 7-12V Voltaggio operativo 5V

Arduino Shield

L' Arduino Ethernet Shield permette ad una scheda Arduino di collegarsi ad internet. Si basa sul chip ethernet Wiznet W5100. Il WIZnet W5100 implementa il protocollo ethernet con tutto lo stack TCP/IP e UDP. Supporta fino a quattro connessioni simultanee. Lo shield accompagnato dalla libreria Ethernet che consente di scrivere sketch che si collegano a Internet. Lo shield ethernet si collega ad una scheda Arduino tramite dei lunghi header che si estendono attraverso lo shield. Ci mantiene intatto il layout dei pin e permette di poter montare un altro shield sovrapposto. Grazie alla scheda Ethernet Shield possiamo controllare le cose da un PC, da un cellulare o qualsiasi altro dispositivo che pu collegarsi a Internet. Ovviamente la scheda dispone di un MAC address e un indirizzo IP, parametri fondamentali per la comunicazione .

IP -( Inetrnet Protocol ) Questo livello gestisce la comunicazione tra una macchina ed un'altra; accetta una richiesta di inoltro di un pacchetto da un livello di trasporto insieme all'identificazione della macchina alla quale il pacchetto deve essere inviato. il livello pi caratteristico di internet che crea il datagramma di base della rete, sostanzialmente, riceve e trasferisce senza garanzie i pacchetti, che gli arrivano, verso la macchina destinataria.

MAC ( MAC address ) E un indirizzo fisico, rappresenta in sostanza un identificativo per un particolare dispositivo di rete a livello di rete locale: ad esempio due schede di rete in due diversi computer avranno due diversi nomi (e quindi diversi indirizzi MAC), cos come avranno nomi diversi una scheda Ethernet ed una scheda wireless posizionate nel stesso computer.

Collegamento Ethernet Shield e scheda Arduino Uno

Sensore DHT22 (Sensore Temperatura e Umidit)

Questo sensore utilizza una comunicazione di tipo digitale e grazie a questa cosa interfacciarlo con Arduino Uno molto pi facile. Come si vede dalla foto il sensore DHT22 ha 4 piedini ma solamente 3 di questi devono essere collegati ad Arduino (Vcc , Data , Gnd). Lo svantaggio di questo sensore la sua lentezza , infatti si parla di circa 2s tra una lettura e laltra. Per fare in modo che il sensore DHT22 venga riconosciuto dalla scheda Arduino bisogna prima aggiungere una libreria (Libreria DHT). Dato che nel progetto la temperatura e lumidit devono essere visualizzate sia su un Display che su una pagina Web, quindi aspettare la conferma di avvenuta ricezione possiamo sfruttare a nostro vantaggio il problema che riguarda la lentezza del sensore per portare avanti pi compiti in simultanea. Una volta che Arduino entra in funzionamento , quindi di conseguenza anche il sensore gli errori si possono verificare in 2 occasioni: 1. Durante la misura da parte della circuiteria interna , per questo tipo di errore difficilmente si pu eliminare. 2. Durante la trasmissione del dato alla scheda Arduino. Questo tipo di errore non ci deve preoccupare dato che nella comunicazione seriale, il sensore inserisce un byte di CRC per il controllo degli errori.

Caratteristiche tecniche: Alimentazione : 3.3-6V Assorbimento in Misura : 1-1.5mA Assorbimento in Standby : 40-50uA Umidit : 0 / 100% Relativa Temperatura : -40 / +80 C Precisione Umidit : 0.1% Precisione Temperatura 0.1C Errore Umidit : +-2% Relativa Errore Temperatura : +-0.5 C

Schema di collegamento

Circuito di raffreddamento

Tramite una ventola presa da un PC viene simulato il raffreddamento della casa. Lo scopo della ventola e quello di intervenire nel momento in cui viene superata la temperatura impostata da noi tramite la programmazione di Arduino. Ovviamente la temperatura pu essere cambiata ogni volta che si vuole . La ventola , come viene riportato sullo stesso attuatore gira a una tensione di 12V con una corrente di circa 0,14A. Visto che Arduino fornisce una tensione massima di 5V con una corrente di 40mA dobbiamo adattare Arduino con la ventola tramite un transistor che ha la funzione di amplificare la corrente di uscita dal piedino di Arduino. Per essere pi precisi prima della BASE del transistor mettiamo una resistenza (RB) che serve per la sicurezza del circuito. Prima di montare il circuito sono state fatte delle prove sulla breadborad e siamo arrivate alla conclusione che la ventola gira a 12V con una corrente di 50mA , ma come stato detto prima Arduino da in uscita una corrente di 40mA proprio per questo motivo fondamentale lutilizzo del transistor. Il transistor ha 3 piedini (BASE , COLLETTORE , EMETTITORE) la base viene collegata in serie alla resistenza (RB) e poi sul piedino della scheda Arduino, lemettitore va direttamente a massa (GND) e infine il collettore va a pilotare la ventola. In parallelo alla ventola stato messo un diodo di ricircolo in modo che in caso di sbalzi improvvisi la ventola non subisca gravi conseguenze. Per poter dimensionare la corrente di base prima bisogna vedere alcune formule importanti: Per ricavare la corrente IC la formula la seguente Ic I B *
10

Il transistore utilizzato il 2N1711 e guardando dal suo Datasheet si scopre che ha un che varia da 100 a 300. A questo punto abbiamo deciso di usare un intermedio di 200. Per ricavare la corrente IB la formula la seguente I B
IC

Nelle propriet di un transistor la corrente di base deve essere pi piccola della corrente di collettore, mentre la corrente dellemettitore quella pi elevata ma in questo caso non ci interessa.

Per ricavare la RB bisogna fare un equazione alla maglia Varduino RB * I B VBE 0 dove Varduino = 5V , la corrente di base IB = 0,25mA e la tensione base-emettitotre = 0,6V
RB 5 0.7 18K 0.25m

La ventola pu essere controllata in 2 modi: 1. Controllo manuale cio pu essere accessa e spenta dallutente direttamente da una pagina web. Per poter accedere alla pagina web bisogna immetere lindirizzo corrispondete a questultima nella barra degli indirizzi di Internet. Una volta che si ha laccesso alla pagina web caricata dentro Arduino si potr accendere e spegnere la ventola con un semplice click. 2. Controllo automatico. In questo caso la ventola si accende quando viene superata la temperatura base impostata ad esempio 23C e si spegner quando si scendera al di sotto. Schema di collegamento

11

Display LCD 16x1

Tramite il display viene visualizzata la temperatura e lumidit della casa. Il display 16x1 presenta 16 colonne e 1 riga su cui poter scrivere ci che si desidera. Sul display si possono visualizzare anche le scritte in movimento ma nel nostro caso abbiamo scelto una visualizzazione statica dato che la temperatura e lumidit si devono tenere sotto controllo. I display hanno una interfaccia parallela , ci significa che il microcontrollore deve controllare contemporaneamente i pin di interfaccia per tenere sotto controllo la visualizzazione. I pin che sono stati utilizzati sono gli seguenti: Pin (RS) Register Select , il pin che controlla in quale parte del display si stanno scrivendo i dati. Pin (R/W) Read /Write , il pin che decide se il microcontrollore e nella fase di lettura oppure di scrittura. Pin (V0) Contrast Adjust A questo pin stato collegato un potenziometro da 10K per poter regolare la luminosit del display. Pin (E) Questo abilit la scrittura dei registri. Pin (DO-D7) Sono i pin dati Ovviamente ci sono i pin di alimentazione per poter alimentare il display. Per questo progetto stato scelto un display 16x1 soltanto perch si devono visualizzare la temperatura e lumidit. In commercio esistono display molto pi grandi e intelligenti, che necessitano di una programmazione delle librerie interne da parte dellutente.
12

Circuito di riscaldamento

Per simulare il riscaldamento della casa stata usata una resistenza di riscaldamento. Dato che nel nostro progetto lalimentazione a 12V gi presente abbiamo deciso di utilizzare questa resistenza che ha una resistivit di 50 e un alimentazione di 12V. Quando la corrente (I) attraversa una resistenza (R) si ha il riscaldamento di questultima. Nonostante le sue piccole dimensioni ha un riscaldamento notevole fino ad arrivare al punto di non poter pi tenere la mano appoggiata sopra. Per quanto riguarda ladattamento con la scheda Arduino abbiamo utilizzato lo stesso schema del circuito di raffreddamento con laggiunta di un rel con un alimentazione a 12V e una corrente di 100mA. Il rel un dispositivo elettromeccanico costituito da un avvolgimento e da uno o pi contatti meccanici, utilizzato per operazione di interruzione e commutazione di circuiti elettrici. In sostanza il rel un interruttore che non viene azionato a mano ma da un elettromagnete. Di seguito illustrato lo schema di un rel:

1. Bobina 2. Ancora 3. Contatto mobile


13

Schema di collegamento

Circuito di illuminazione

Per lilluminazione della casa abbiamo usato 2 LED funzionanti a una tesnione di 12V. I LED possono essere accessi e spenti tramite un PC , un cellulare , un IPOD in poche parole da un qualsiassi dispositivo che permetta il collegamento a Internet.
14

Dato che i LED funzionano a 12V anche qui stato necessario lutilizzo del transistor 2N1711. Di seguito viene riportata una foto di un transistor 2N1711:

Schema di collegamento

15

Sensore PIR (Passive InfraRes sensor)

E un dispositivo elettronico che misura la luce a infrarossi (IR) irradiata dagli oggetti nel suo campo di vista. Il PIR un sensore di movimento quindi ogni volta che rileva un oggetto o una persona ne segnala subito la presenza. Tutti gli oggetti emettono ci che noto come radiazione di corpo nero. Si tratta di radiazioni infrarosse che sono invisibili all'occhio umano, ma possono essere rilevate da dispositivi elettronici progettati per un tale scopo. Il termine passivo in questo caso significa che il dispositivo PIR non emette un fascio di luce a infrarossi, ma semplicemente rileva in ingresso le radiazioni infrarosse. Il sensore fa parte di un circuito integrato in cui figurano un amplificatore differenziale seguito da comparatore e altri circuiti che hanno il compito, durante le misurazioni del PIR di annullare la temperatura media del campo di vista che viene rimosso dal segnale elettrico; un aumento dell'energia IR attraverso il sensore automaticamente cancellata e non attiver il dispositivo. In questo modo, il dispositivo resiste a false indicazioni di cambiamento come nel caso di esposizione a luce intensa che potrebbe saturare il materiale del sensore e disabilitare il sensore per altre misurazioni. Allo stesso tempo, questo dispositivo riduce al minimo l' interferenza dovuta a campi elettrici nelle vicinanze. Di seguito riportato lo schema del sensore PIR:

16

Caratteristiche del sensore: Tensione di alimentazione +5V Sensibilit regolabile Angolo di rilevamento 100 Range di rilevamento 3 / 4 metri Corrente di alimentazione 4,7 mA Tempo di ritenzione del livello alto 10 - 12 sec. Intervallo tra 2 livelli alti 2 -3 sec

17

Sensore MQ5 ( Rilevatore di gas )

Il rilevatore di gas un dispositivo elettronico utilizzato per verificare la presenza di gas nocivi per la salute degli essere viventi allinterno delle nostre abitazioni. I rilevatori di gas sono dispositivi che rilevano la presenza di particelle grazie alla ionizzazione prodotta dal passaggio di un fotone o di una particella carica in un gas. Il rilevatore tecnicamente costituito da un contenitore riempito di un gas facilmente ionizzabile e da due componenti: uno che funge da anodo e uno che funge da catodo. Il sensore MQ5 presenta 6 pin, dove 4 di essi sono utilizzati per andare a prendere i segnali, e altri 2 sono utilizzati per fornire corrente di riscaldamento. Essi sono utilizzati in apparecchiature di rilevamento fughe di gas in famiglia e l'industria, sono adatti per la rilevazione di GPL, gas naturale e gas di citt.

Caratteristiche tecniche: Alimentazione: 5V DC o AC Richiede una tensione di riscaldamento Temperatura di funzionamento: da -10C a 50C Consumo del riscaldatore: meno di 750mW

18

Telecamera IP

Una telecamera IP o IP cam un tipo di videocamera che genera un segnale video in forma digitalizzata pronto per la trasmissione diretta su rete dati, senza necessit di conversione analogico-digitale, e in grado di essere controllata direttamente tramite la rete dati stessa. Il campo di utilizzo tipico delle telecamere IP sono i sistemi di telesorveglianza remota. In dotazione alla teleceamera viene fornito un CD che contiene il software da installare sul PC per potere programmare e controllare la telecamera. Dato che la telecamera dispone di unantenna wireless si evita di collegare il cavo ethernet direttamente al router. Per poter accedere alla pagina web della telecamera e visualizzare ci che sta riprendendo bisogna inserire lindirizzo IP nella barra degli indirizzi corrispondente a questultima. La telecamera IP non dipende dalla scheda Arduino come gli altri compnenti del progetto. Con il continuo sviluppo della tecnologia le telecamere IP sono sempre pi utilizzate per poter fronteggiare le intrusioni dei malviventi. Caratteristiche tecniche della telecamera IP

Interfaccia: RJ-45
Protocollo: TCP/IP, DHCP, SMTP, DDNS Monitoraggio: Internet Explorer browse. Security Password Protection: Si.
19

Illuminazione minima: 0 Lux. Bilanciamento: Automatico. Temperatura di lavoro: 0 - 50 C. Alimentazione: Power Adapter (100V-240V). Consumo: 3W. Distanza di visione: - Giorno: 80 - 100 metri. - Notte: 50 metri. Visione e registrazione: - Schermo unico. - Schermo multiplo Operativit: - Controllo a 360 gradi. Risoluzione: - 320 x 240, 640 x 480 Specifiche di registrazione: - Formato MJEPG (AVI). 640 x 480. - Audio: PCM Codec / 8000Hz Risoluzione: 320 x 240,

Sistemi operativi supportati: Windows 2000/2003/XP/Vista/Windows 7.

CONTENUTO CONFEZIONE: Telecamera IP. Cablaggi Rete. Accessori per il montaggio. Power Adapter CD con manuale in Inglese ed applicazioni IP Camera. Schema di un possibile collegamento per poter visualizzare le telecamere IP:

20

Router

Un router (dall'inglese instradatore) un dispositivo elettronico che, in una rete informatica a commutazione di pacchetto, si occupa di instradare i dati, suddivisi in pacchetti, fra reti diverse. Caratteristica fondamentale dei router l'utilizzo di indirizzi di livello 3 del modello OSI (corrispondente al livello IP dello stack TCP/IP), a differenza dello switch o del bridge che instradano a livello locale sulla base degli indirizzi di livello 2 detti indirizzi MAC. Dal punto di vista fisico i router non sono altro che sistemi di elaborazione dedicati ad un solo scopo, cio indirizzamento/instradamento di pacchetti e quindi possono essere normali computer che fanno girare un software apposito (gateway), o sempre pi spesso apparati (hardware e software) specializzati a questo solo scopo. In generale i router, in quanto hanno il loro sistema operativo necessitano di essere configurati manualmente da parte dell'amministratore di rete (specifica delle interfacce di rete, abilitazione protocolli e servizi). Il router, per essere configurato fornisce un'interfaccia basata su web (accessibile digitando l'indirizzo del gateway nel browser). Molti router utilizzati nellambiente domestico incorporano la funzionalit di access point per reti Wi-Fi e modem per l'aggancio alla rete Internet. In questo caso occorre tenere presente che la velocit di connessione ad Internet non superiore a quella stipulata per contratto. Dal punto di vista della sicurezza il router possiede un firewall incorporato, poich il punto di ingresso/uscita di una rete verso l'esterno ovviamente il luogo migliore dove effettuare controlli sui pacchetti in transito.

21

Componenti elettrici per la creazione del progetto


1. LCD 16x1 = 6,50 2. Sensore DHT 22 = 12 3. Scheda Ethernet Shield = 55 4. Arduino Uno = 26 5. Router = 30 6. IP camera = 75 7. Sensore PIR = 17 8. Sensore MQ-5 = 10 9. Ventola PC = recuperata da un pc non funzionante 10.Resistenza riscaldamento = 2 11. 2 LED a 12V = 15 12.Panello solare = 30 13.Rel = 3
22

14. 4 transistor 2N1711 = 4 15. 4 resistenze da 18 K e 2 da 10 K = 2 16. 7 morsettiere = 3 17. Potenziometro da 10 K = 1 18. 2 cavi ethernet UTP RJ-45 = 5

PCB progetto
Per realizzare il circuito stampato stato usato il software Express PCB. Come software non tanto completo perch nelle sue librerie non contiene tutti i componenti elettronici. Prima di creare il circuito stampato con Express PCB bisogna prendere bene le misure dei componenti.

23

Comunicazione tra Arduino e un sito Web

Gli Host
Con il nome Host si intende un generico utilizzatore di una rete, che pu essere: Un PC Un Router Un Cellulare Una Stampante Lo shield Ethernet di Arduino Ogni host identificato all'interno di una rete da un indirizzo IP. Un indirizzo IP formato da 4 byte, quindi identificabile da quattro numeri decimali da 0 a 255 (Es. 192.168.1.1). Un indirizzo IP da solo non individua un host, ma necessit di una Subnet Mask che ha il compito di individuare le due parti di un indirizzo IP: Identificativo della Rete Identificativo dell'Host Una Subnet Mask, a livello binario, si presenta come una serie di 1 seguiti da una serie di 0 che in totale vanno ad occupare 4byte, da notare che una Subnet Mask valida ha una sola serie di 1 e una sola serie di 0, cio (1111111111111111111100000000) valida, (1111111111100000011100000000) non lo . Mettendo a confronto a livello binario la maschera con l'IP, la parte con gli 1 identifica la rete, la parte con gli 0 identifica l'host.

24

Ad esempio: IP host : 192.168.0.10 Subnet Mask : 255.255.255.0 Identificativo della Rete : 192.168.0 Identificativo dell'Host : 10 LHost per funzionare correttamente deve comprendere: 1. Un proprio indirizzo IP 2. Una Subnet Mask 3. L'indirizzo del Default Gateway 4. Indirizzo del server DNS primario 5. Indirizzo del server DNS secondario (nel caso il primo non risponda)

Configurazione IP statico IP -( Inetrnet Protocol )

Configurazione IP dinamico tramite DHCP

Questo livello gestisce la comunicazione tra una macchina ed un'altra; accetta una richiesta di inoltro di un pacchetto da un livello di trasporto insieme all'identificazione della macchina alla quale il pacchetto deve essere inviato. il livello pi caratteristico di internet che crea il datagramma di base della rete, sostanzialmente, riceve e trasferisce senza garanzie i pacchetti, che gli arrivano, verso la macchina destinataria.
25

Subnet Mask E il metodo utilizzato per definire il range di appartenenza di un host all'interno di una sottorete IP al fine di ridurre il traffico di rete e facilitare la ricerca e il raggiungimento di un determinato host con relativo indirizzo IP. Esistono 3 tipi di Subnet Mask di un indirizzo IP e sono denominate classi: Classe A 255.0.0.0 Classe B 255.255.0.0 Classe C 255.255.255.0 La Subnet Mask di classe A compresa tra 0 e 127, un esempio a tal proposito pu essere 10.56.32.08. La Subnet Mask di classe B compresa tra 128 e 191, un esempio 172.12.56.10. La Subnet Mask di classe C compresa tra 192 e 223 ed un uso pi comune: 192.168.0.2. Gateway Il suo scopo principale quello di veicolare i pacchetti di rete all'esterno della rete locale (LAN). Da notare che gateway un termine generico che indica il servizio di inoltro dei pacchetti verso l'esterno; il dispositivo hardware che porter a termine questo compito tipicamente un router.

DNS ( Domani Name System ) Quando accediamo ad un indirizzo di rete (come www.iisprimolevi.it) automaticamente esso viene tradotto in un indirizzo numerico IP, la corrispondenza tra nome e numero si ottiene grazie al servizio DNS. E un servizio di directory distribuito su Internet che permette di convertire i nomi di dominio negli indirizzi IP che le macchine hanno nella rete e controlla l'inoltro della posta su Internet. La corrispondenza tra nome di dominio ed indirizzo IP viene in pratica tenuta in un database distribuito sulla rete.

26

DHCP (Dynamic Host Configuration Protocol) Si occupa in una rete di fornire ad ogni host che ne fa richiesta i 5 parametri necessari alla loro configurazione, tenendo conto degli indirizzi gi assegnati per non avere casini sulla rete. Per rimanere in tema con il nostro progetto i passi che portano Arduino con il suo Ethernet Shield ad arrivare a comunicare con un sito sono i seguenti: (Nella nostra rete il servizio DHCP svolto dal router) Accensione Richiesta di un indirizzo IP al DHCP della rete Ricezione della configurazione completa dal DHCP della rete Connessione a www.domoticarduino.tk Richiesta al DNS di risolvere il nome www.domoticarduino.tk Il DNS risponde con un IP effettuo la connessione all'IP fornito dal DNS sulla porta che ho specificato nel codice Invio la richiesta http a www.domoticarduino.tk www.domoticarduino.tk risponde con il contenuto richiesto (pagina, file, etc.) Alla successiva connessione si riparte dal 4 punto

Esempio pratico di come si comanda Arduino da un sito Web Utilizzando la scheda Ethernet Shield possiamo pilotare da remoto le uscite di Arduino. I pc della rete e lArduino UNO (con Ethernet Shield) sono collegati tra loro tramite uno Router. Il pc eseguir, usando un browser, delle richieste http. per recuperare, ad esempio, il valore di una tensione applicata su un pin analogico, oppure accendere o spegnere un led, applicato su un pin digitale in uscita. Il collegamento tra la scheda Ethernet Shield e la scheda Arduino UNO avviene tramite dei header , i cosidetti piedini della scheda che permettono il collegamento tra una scheda e laltra. La Ethernet Shield ha un connettore RG-45 dove possibile collegare il cavo Ethernet da mandare poi a una qualsiasi porta del Router. La scheda Arduino ha una porta USB dove possibile collegare il cavo USB da mandare al pc
27

per dare alimentazione oppure modificare lo sketch che si sta utilizzando. Di seguito sono riportate le istruzioni che permettono il riconoscimento della Ethernet Shield: Apriamo lIDE di Arduino e scriviamo questo codice:

//Librerie impiegate per il progetto #include <SPI.h> #include <Ethernet.h> //Creo un array di byte per specificare il mac address byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //creo un array di byte per specificare l'indirizzo ip byte ip[] = {IP Ethernet Shield}; //creo una variabile char per memorizzare i byte letti dal client char Data_RX; //creao un oggetto server che rimane in ascolto sulla porta specificata Server ArduinoServer(80); void setup() { //inizializza lo shield con il mac e l'ip Ethernet.begin(mac, ip); //inizializza l'oggetto server ArduinoServer.begin(); } void loop() { //nel void loop sono comprese tutte le istruzioni necessarie per il funzionamento di tutti i componenti elettronici presenti delay(10); }

I commenti nel codice spiegano a grandi linee il funzionamento dello stesso. Dopo aver inserito le due librerie che permettono di interfacciarsi allEthernet Shield, definiamo due array di byte, uno che contiene lindirizzo fisico della scheda di rete (MAC address) e laltro che contiene lindirizzo IP. Successivamente abbiamo creato un oggetto Server che permette di rimanere in ascolto sulla porta specificata, in
28

questo caso la porta 80, proprio quella utilizzata dal protocollo http. La variabile Data_RX verr impiegata successivamente per memorizzare i byte provenienti dal client. Dentro il blocco setup() ci sono due importanti funzioni, la prima (Ethernet.begin(mac, ip);) serve per inizializzare il chip WIZnet con lindirizzo MAC e lindirizzo IP, la seconda (ArduinoServer.begin();) avvia il server e lo mette in ascolto sulla porta 80 per le avvenutali richieste dei client. Nel blocco loop() viene inserito un ritardo di 10ms, per il momento non eseguiamo altro. Questo utile per testare, tramite un semplice ping, se lEthernet Shield correttamente configurata nella rete e se risponde alle interrogazioni del client. Per eseguire il ping bisogna fare alcuni passaggi:

Start

Esegui

cmd

Ping IP scheda

Eseguendo questo semplice test ci permette di escludere problemi di alimentazione della board o errori doviti al cavo di collegamento.

29

Abbiamo deciso di creare questo progetto per far vedere come la tecnologia di oggi sta avanzando e come pu semplificare la vita delle persone specialmente persone con problemi di salute che non si possono muovere per labitazione e grazie a questa tecnologia queste persone possono avere il pieno controllo della loro abitazione da un punto solo o da un punto mobile che pu essere un dispositivo mobile (IPAD TABLET CELLULARE ECT). In questo progetto vengono illustrate solo alcune delle applicazioni che si possono applicare in una casa intelligente. E incredibile pensare che una piccola scheda come Arduino riesca a gestire tutte queste cose. La nostra intenzione quella di trasmettere alle persone il campo della Domotica sperando che in un futturo le case diventerano tutte progettate in questo modo per avere una massima sicurezza e facilitare la vita di tutti i giorni.

El hor Younes

30