Ciao a tutti , è la prima volta che scrivo qui anche se è da molto tempo che sto cercando di farmi una cultura su arduino grazie ai vostri post.
La settimana scorsa mi sono deciso ad acquistare arduino uno con il workshop start, ho iniziato a fare un po di pratica e tutto funziona al meglio.
Ieri, per prepararmi adeguatamente al mio obbiettivo finale, ho provato ad azionare con arduino un relè da 12v e (per non collegarmi subito ad una 220v ) a far accendere un led e dopo un po di prove con un alternatore 12v sono riuscito a far funzionare il tutto ( non riuscivo a fare il circuito in modo corretto).
Ora vengo al dunque, il mio progetto è poter controllare da un pc connesso alla rete di casa le varie luci dell'abitazione e i due cancelli.
Per cercare di ridurre il problema diciamo che voglio poter controllare una luce presente in punto della casa.
Ho visto in un altro post che un utente ha realizzato esattamente questo, ma con rete cablata ethernet.
Quello che voglio fare io , data la posizione non facilmente raggiungibile del punto luce , è poter fare tutto tramite wireless.
PC >>><<<ARDUINO---LUCE.
Ovviamente devo procurarmi un relè 5v in modo da evitare transistori e diodi e ridurre le dimensione (se avete uno in particolare da consigliarmi ve ne sarei grato ; se ce ne fosse uno che può' andare bene su RS-ITALIA ancora meglio).
A questo punto viene il "problema".
Come far comunicare arduino con il mio router e quindi poter con un cellulare/pc connettermi ad arduino e controllarlo!?
Dal punto di vista programmazione ho in mente di partire da questo codice: http://www.ioscripto.it/?p=1
Caricare quindi una pagina html su arduino e poter quindi collegarmi a questa pagina per controllare l'uscita di arduino.
1° QUESITO: il codice del link usa una libreria ethernet.h ; è facilmente estendibile/modificabile per funzionare anche a livello wireless o addirittura può' essere usato così comè?
A questo punto viene la parte più complicata su cui sto sbattendo la testa da qualche giorno, la parte hardware.
2° QUESITO : Appurato che mi serve un relè da 5v, che tipo di shield dovrei utilizzare su arduino per poter farlo comunicare facilmente in wireless con il mio router?!
-Ho letto sul forum che arduino è compatibile con il protocollo ZigBee ma non sono riuscito a capire esattamente quali componenti mi servirebbero per fare questo tipo di collegamento. La cosa che ho appreso è che ovviamente non si tratta di un 802.11 e quindi non comunicherà con lo stesso linguaggio del mio router. Quali componenti mi servirebbero? Il codice sopra riportato si potrebbe utilizzare anche con il protocollo ZigBee. ( So veramente poco su questa tecnologia quindi più siete pratiche meglio riesco a capirvi)
-Visto che questo ZigBee usa un altro linguaggio , ho pensato che sarebbe più comodo una shield wifi e così non devo preoccuparmi di eventuali compatibilità arduino/router.
Bene, ho cercato ed ho trovato sia una Wishield ad un costo non proprio contenuto e poi questo http://www.sparkfun.com/products/10822 che pero' non riesco a capire se si tratta di 802.11 od altro ( tra l'altro, quella del link è solo la trasmittente?! serve anche il modulo sotto?! non capisco proprio nulla)
In definitiva, cosa mi conviene usare? E soprattutto , a seconda delle tecnologie come si riadatta il codice a livello wireless?
Ringrazio tutti anticipatamente , pendo dalle vostre "dita".
ILLUMINATEMI
risposta a domanda 1: la libreria Ethernet.h si può utilizzare con lo shield Ethernet (ufficiale o meno, ma che monti il chip W5100 della Wiznet) o con la Arduino Ethernet.
Se hai una delle soluzioni apena accennate, lo puoi utilizzare così com'è - aggiornando naturalmente le variabili legate alla tua rete.
Se vuoi utilizzare uno shield WiFI, allora il codice va ripreso per mano, in modo da sostituire metodi/funzioni proprietari della libreria Ethernet.h con quelli più idonei.
risposta a domanda 1: ZigBee non è Wireless IEEE 802.11, quindi devi avere una più Zigbee per creare effettivamente una rete wireless.
Se vuoi utilizzare il WiFi "classico" puoi puntare sul modulo che hai linkato, con l'utilizzo combinato però dello shield Xbee (altrimenti per montarlo su Arduino devi fare collegamenti volanti..)
Altrimenti puoi optare per altri shield WiFi:
Watterott ha il suo RedFly shield a 65 eur
a giorni dovrebbe uscire Carambola, uno shield WiFi con pure OpenWrt a bordo al costo di ca. 40 eur
non so quando dovrebbe uscire lo shield WiFi ufficiale Arduino, presumo attorno ai 50-60 eur
Per linguaggio wireless non capisco cosa intendi: se utilizzi la rete, punterai ad usare come linguaggio per generare la tua interfaccia l'HTML, in modo che sia da smartphone che da pc con un semplice browser tu possa pilotare i tuoi attuatori.
Quindi in base allo shield e alle librerie fornite a corredo, la cosa che dovrai modificare non sarà la logica o la parte di codice html, ma come detto per la libreria Ethernet, eventuali metodi e funzioni.
Grazie per la risposta. Allora , quando parlo di linguaggio intendo il linguaggio di programmazione di arduino, sull'html ok!
Ma, io intendo : se uso Ethernet uso la libreria ethernet(codice link) , se uso zigBee che libreria dovrei usare?! e se uso il modulo wifi che mi hai suggerito?! Cambia tanto il codice da quello di ethernet?!
Spero di essermi spiegato meglio di prima
Ho riletto e forse non mi sono di nuovo spiegato. Probabilmente , anzi, sicuramente non afferro il problema io.
Se io usassi una ethernet shield potrei usare quel codice bello e pronto, attraverso la pagina html mi collego ad arduino e se il client legge un determinato valore in ingresso (ho schiacciato il link "ACCENDI LUCE") , arduino darà tensione sull'uscita stabilità , attiverà il relè e la lampadina si accende. Nel caso di un modulo Wifi i passaggi sono uguali? è questo che non capisco
Se io usassi una ethernet shield potrei usare quel codice bello e pronto, attraverso la pagina html mi collego ad arduino e se il client legge un determinato valore in ingresso (ho schiacciato il link "ACCENDI LUCE") , arduino darà tensione sull'uscita stabilità , attiverà il relè e la lampadina si accende. Nel caso di un modulo Wifi i passaggi sono uguali? è questo che non capisco
tra Eth Shield (o Arduino Eth) e WiFi shield la sostanza non cambia: crei una istanza server che ascolta su socket/porta 80 (o altro); tu da pc/smartphone farai una chiamata GET; la "leggi" e ti comporti come nell'esempio sopra riportato.
Quindi che cambia saranno i metodi o le funzioni per istanziare il server e per leggere la GET (ma non di molto).
Se hai voglia e tempo, puoi scaricarti le librerie degli shield WiFi che ti interessano e caricarli su Arduino.
Quasi sempre ci sono degli esempi disponibili: questo è un buon modo per farsi un'idea delle differenze...
Ecco!!! Hai centrato il punto , volevo cercare di capire proprio questo. Dove le potrei trovare queste librerie con gli esempi!?
Ultima cosa, con lo zigBee dovrei mettere un ricevitore zigBee al mio router , per poter far parlare i due diversi protocolli 802.11 e zigbee: esiste?!
Ciao
Xbee modulo + shield che hai postato, in caso di Xbee, dovrebbero andare bene, ma ti fermo in quanto con Xbee non ho ancora avuto il piacere di lavorare.
Posso dirti che per collegare uno Xbee al router, il tuo router deve essere fornito di porta seriale (o usb), ma questo router deve essere "aggiornato" con firmware tipo OPenWRT, dd-wrt o altri, che ti permettano poi di interfacciarti, con questo modulo.
Il WiFi non ti piace?
EDIT: le librerie solitamente le trovi o nel sito del produttore/rivenditore, oppure all'interno dello stesso sito Arduino.
Nel caso Xbee, trovi davvero molto materiale anche con una semplice ricerca web...
Il wifi semplice mi piace molto di più , ma il problema è il costo più elevato e come ti ho spiegato la possibilità di ordinare lo zigbee su rs.
Penso che comunque dovro' orientarmi su un wifi cosi da evitare altre problematiche.
Mi piacerebbe trovare ora uno sketch semplice pronto con libreria wifi. Mi metto alla ricerca
Ok, ora sparo una cavolata di quelle grosse , invece del modulo wifi e del dover riscrivere un codice adattandolo alla libreria wifi:
io ho il mio arduino ethernet, con sopra caricato il mio codice per funzionare in ethernet (quello che ho linkato all'inzio) , collegato alla mia luce da accendere. Bene, invece che tirare il cavo uso uno di questi:
Ragionando logicamente dovrebbe funzionare, io invio il segnale al router che lo invia all'arduino.
ROUTER >>>>wifi>>>>> ADATTORE WIFI-RJ45 >>>>ethernet>>>> ARDUINO.
All'arduino arrivare sempre e comunque un pkt ethernet non wifi, quindi l'adattore per arduino non esisterebbe (trasparente).
Sbaglio qualcosa?
edopoli,
la soluzione proposta può funzionare, anche se complicata (nel senso non semplice, lineare).
Mi avevi parlato di costi alti relativamente allo shield wifi, ma qui tra Ehernet Shield e adattatore rj45-wifi non penso tu stia spendendo molto di meno, anzi...