30
1 Domotica Arduino La casa intelligente A cura di Classe 5°AN El hor Younes

Domotica Arduino La Casa Intelligente Elhor

  • Upload
    vjexter

  • View
    179

  • Download
    8

Embed Size (px)

DESCRIPTION

domotica arduinola casa intelligente

Citation preview

Page 1: Domotica Arduino La Casa Intelligente Elhor

1

Domotica Arduino La casa intelligente

A cura di

Classe 5°AN

El hor Younes

Page 2: Domotica Arduino La Casa Intelligente Elhor

2

Domotica …………………………………………………………Pag. 3

Arduino Uno………………………………………………………Pag. 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 16x1…………………………………………………Pag. 12

Circuito di riscaldamento…………………………………………..Pag. 13

Circuito di illuminazione…………………………………………..Pag. 14 a 15

Sensore PIR………………………………………………………...Pag. 16 a 17

Sensore MQ5……………………………………………………….Pag. 18

Telecamera IP………………………………………………………Pag. 19 a 20

Router………………………………………………………………Pag. 21

Componenti elettrici………………………………………………..Pag. 22

PCB progetto……………………………………………………….Pag. 23

Comunicazione tra Arduino e un sito Web…………………………Pag. 24 a 29

Page 3: Domotica Arduino La Casa Intelligente Elhor

3

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.

Page 4: Domotica Arduino La Casa Intelligente Elhor

4

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:

Page 5: Domotica Arduino La Casa Intelligente Elhor

5

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

Page 6: Domotica Arduino La Casa Intelligente Elhor

6

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.

Page 7: Domotica Arduino La Casa Intelligente Elhor

7

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

Page 8: Domotica Arduino La Casa Intelligente Elhor

8

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 l’altra.

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 l’umidità 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.

Page 9: Domotica Arduino La Casa Intelligente Elhor

9

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.1°C

• Errore Umidità : +-2% Relativa

• Errore Temperatura : +-0.5 °C

Schema di collegamento

Page 10: Domotica Arduino La Casa Intelligente Elhor

10

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 l’utilizzo 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, l’emettitore 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 *BIIc

Page 11: Domotica Arduino La Casa Intelligente Elhor

11

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 C

B

II

Nelle proprietà di un transistor la corrente di base deve essere più piccola

della corrente di collettore, mentre la corrente dell’emettitore è quella più

elevata ma in questo caso non ci interessa.

Per ricavare la RB bisogna fare un equazione alla maglia

0* BEBB VIRVarduino dove Varduino = 5V , la corrente di base IB =

0,25mA e la tensione base-emettitotre = 0,6V

Km

RB 1825.0

7.05

La ventola può essere controllata in 2 modi:

1. Controllo manuale cioè può essere accessa e spenta dall’utente

direttamente da una pagina web. Per poter accedere alla pagina web

bisogna immetere l’indirizzo corrispondete a quest’ultima nella barra

degli indirizzi di Internet. Una volta che si ha l’accesso 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 23°C e si spegnerà

quando si scendera al di sotto.

Schema di collegamento

Page 12: Domotica Arduino La Casa Intelligente Elhor

12

Display LCD 16x1

Tramite il display viene visualizzata la temperatura e l’umidità 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 l’umidità 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 l’umidità. In commercio esistono display molto più

grandi e intelligenti, che necessitano di una programmazione delle librerie interne da

parte dell’utente.

Page 13: Domotica Arduino La Casa Intelligente Elhor

13

Circuito di riscaldamento

Per simulare il riscaldamento della casa è stata usata una resistenza di riscaldamento.

Dato che nel nostro progetto l’alimentazione 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

quest’ultima. 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 l’adattamento con la scheda Arduino abbiamo utilizzato lo stesso schema del

circuito di raffreddamento con l’aggiunta 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

Page 14: Domotica Arduino La Casa Intelligente Elhor

14

Schema di collegamento

Circuito di illuminazione

Per l’illuminazione 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.

Page 15: Domotica Arduino La Casa Intelligente Elhor

15

Dato che i LED funzionano a 12V anche qui è stato necessario l’utilizzo del transistor

2N1711. Di seguito viene riportata una foto di un transistor 2N1711:

Schema di collegamento

Page 16: Domotica Arduino La Casa Intelligente Elhor

16

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:

Page 17: Domotica Arduino La Casa Intelligente Elhor

17

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

Page 18: Domotica Arduino La Casa Intelligente Elhor

18

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 all’interno 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 -10°C a 50°C

▪ Consumo del riscaldatore: meno di 750mW

Page 19: Domotica Arduino La Casa Intelligente Elhor

19

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 un’antenna 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 l’indirizzo IP nella barra degli

indirizzi corrispondente a quest’ultima. 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.

Page 20: Domotica Arduino La Casa Intelligente Elhor

20

■ 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). Risoluzione: 320 x 240,

640 x 480. - Audio: PCM Codec / 8000Hz

■ 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:

Page 21: Domotica Arduino La Casa Intelligente Elhor

21

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 nell’ambiente 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.

Page 22: Domotica Arduino La Casa Intelligente Elhor

22

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€

Page 23: Domotica Arduino La Casa Intelligente Elhor

23

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.

Page 24: Domotica Arduino La Casa Intelligente Elhor

24

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.

Page 25: Domotica Arduino La Casa Intelligente Elhor

25

Ad esempio:

IP host : 192.168.0.10

Subnet Mask : 255.255.255.0

Identificativo della Rete : 192.168.0

Identificativo dell'Host : 10

L’Host 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 Configurazione IP dinamico tramite DHCP

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.

Page 26: Domotica Arduino La Casa Intelligente Elhor

26

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.

Page 27: Domotica Arduino La Casa Intelligente Elhor

27

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 l’Arduino 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 l’altra. 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

Page 28: Domotica Arduino La Casa Intelligente Elhor

28

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 l’IDE 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 all’Ethernet Shield,

definiamo due array di byte, uno che contiene l’indirizzo fisico della scheda di rete

(MAC address) e l’altro che contiene l’indirizzo IP. Successivamente abbiamo creato

un oggetto Server che permette di rimanere in ascolto sulla porta specificata, in

Page 29: Domotica Arduino La Casa Intelligente Elhor

29

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

l’indirizzo MAC e l’indirizzo 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 l’Ethernet Shield è

correttamente configurata nella rete e se risponde alle interrogazioni del client.

Per eseguire il ping bisogna fare alcuni passaggi:

Eseguendo questo semplice test ci permette di escludere problemi di alimentazione

della board o errori doviti al cavo di collegamento.

Start Esegui cmd Ping IP scheda

Page 30: Domotica Arduino La Casa Intelligente Elhor

30

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 l’abitazione 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