// Stai leggendo ...

Fonera

Ma è una Fonera o una stazione meteo? I2C Seconda Puntata: oggi lezione pratica

FoneraPerchè mai dovrei leggere la temperatura ambientale con la mia Fonera?Mah, non saprei…forse perchè odio i termometri a mercurio, o forse semplicemente perchè voglio darvi prova delle grandissime potenzialità di un Bus I2C. Realizzazione pratica di una stazione meteo, perchè alla fantasia non c’e’ proprio freno.


Per dimostrarvi parte della potenza di un I2C bus, ho deciso di montare affianco al sensore di temperatura (può essere un DS75 o DS1621 o altro) un PCF8574 che permette la gestione di 8 canali digitali che possono essere utilizzati come input o output. Per il momento non ho creato nessuna interfaccia WEB, in quanto la reputo una cosa semplice da implementare, ma solamente la gestione della temperatura e delle 8 nuove porte (che possono facilmente arrivare 8,16,24,etc affiancando più PCF8574).

Il mio circuito è puramente sperimentale e per questo motivo ho inserito solamente dei led per verificare

Schema elettricovisualmente il comportamento degli 8 input.

Per la costruzione è richiesta una leggera manualità con un saldatore da 25W.

Il materiale per questa implementazione è

  • Saldatore
  • Stagno
  • filo
  • Basetta mille fori
  • 74HC05
  • DS75 o DS1621 (Quelli con cui è stato testato il software)
  • PCF8574
  • 6 resistenze da 1 k Ohm da 1/4W
  • 8 resistenze da 330 Ohm da 1/4W
  • 8 LED

Porte GPIO della foneraUna volta terminato il montaggio ed averlo connesso al fonera (alle porte GPIO che ho indicato qui sulla sinistra) passate ad installare il software (tutte le informazioni relative al driver, e le istruzioni per utilizzarlo le trovate al post precedente)

A questo punto non vi resta che aggiornare il software per gestire le nuove periferiche: scaricate il file i2ctools ed installatelo con il comando

ipkg install i2ctools

In questa versione ho utilizzato (per semplicità di debug) 3 files separati, uno per ogni periferica, ma un domani sarebbe bello integrarli in un unico file ed aggiungere un interfaccia web per la gestione.

Come notate potete notare il circuito realizzato non è il “massimo della bellezza”, ma visteCircuito I2C con Fonera le finalità del post lo considero più che sufficiente.

Iniziamo con il detect delle periferiche I2C presenti nel nostro bus.

Per fare questo usiamo il comando:

i2cdetect 0

(per un utilizzo corretto del comando vi rimando nuovamente al precedente post).

root@OpenWrt:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: XX XX XX XX XX XX XX XX XX XX XX XX XX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
20: XX 21 XX XX XX XX XX XX XX XX XX XX XX XX XX XX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
40: XX XX XX XX XX XX XX XX 48 XX XX XX XX XX XX XX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
70: XX XX XX XX XX XX XX XX
root@OpenWrt:~#

Secondo il mio schema ho un espansione di IO con l’indirizzo 21 ed un sensore di temperatura con l’indirizzo 48.
Ora interroghiamo il sensore di temperatura, che nel mio caso è un DS1621 della maxim-ic

root@OpenWrt:~# ds1621 -d /dev/i2c-0 -a 0x48
22.50

22.50 sta a significare che nella stanza in cui è presente la Fonera sono 22.50 gradi centigradi

Ma vediamo se ho degli input :-)
Per fare questo usiamo il comando:

pcf8574
pcf8574
Usage :
pcf8574 -d /dev/i2c-x -a address -w mask -r -v

Questo permette altri settaggi, il comando -w e -r sono mutual exclusive.
Con -w settiamo le porte di uscita, mentre con -r leggiamo le porte

root@OpenWrt:~# pcf8574 -d /dev/i2c-0 -a 0x21 -r
Testing
LSB MSB
0 0 1 0 0 0 0 0

Come si può vedere nella mia configurazione solo il 3 bit è settato

Ma se vogliamo cambia un uscita dobbiamo passare il valore in esadecimale
root@OpenWrt:~# pcf8574 -d /dev/i2c-0 -a 0×21 -w 0×04

Interfaccia web per la gestione del I2CA questo punto non resta che realizzarvi una semplice interfaccia grafica per la gestione del BUS i2c, qui a sinistra vedete la mia. Lo so, è molto spartana e gestisce solamente la lettura dei dati dal BUS, l’ho creata solo per mostrarvi qualcosa in più e stimolare la vostra immaginazione nella gestione delle vostre nuove periferiche. Immaginate il controllo di alcune vostre apparecchiature da remoto, vi serve solo una presa di rete elettrica o qualsiasi sorgente di tensione a 5V continui e naturalmente la copertura WiFi: il codice casomai dovesse servirvi lo trovate qui

NOTE: Lo staff di Liberailvoip non vuole in alcun modo promuovere un’ utilizzo del social router Fonera contrario alle condizioni d’acquisto sottoscritte dagli utenti.Ogni singolo utente è L’UNICO responsabile del buon esito del progetto FON.Le nostre sono solo sperimentazioni dimostrative delle infinite potenzialità di questo router, il cui firmware, rilasciato sotto licenza GPLv.2, è liberamente modificabile e personalizzabile.Vi invitiamo pertanto a ricaricare il firmware ufficiale al termine delle vostre prove. Non potremo essere ritenuti responsabili di un uso distorto delle informazioni reperibili in questa pagina.

ATTENZIONE: se pensate di pilotare delle utenze che hanno degli amperaggi elevati e/o tensioni state molto attenti alle elettrocuzione, corto circuito ed altro che potrebbe non solo bruciare il vostro circuito, ma anche arrecare danni alla vostra persona.

Un sentito ringraziamento al nostro amico francese del sito http://www.lefinnois.net/dotclear/ dal cui progetto ho preso spunto.

Commenti

commenti


I commenti all'articolo

20 commenti for “Ma è una Fonera o una stazione meteo? I2C Seconda Puntata: oggi lezione pratica”

  1. [...] vi serve per realizzare questo nuovo circuito? Se avete già effettuato il precedente circuito, vi servirà solamente un LCD compatibile con HD44780 e un po’ di cavo per collegare il [...]

    Commentato da Colleghiamo un Display alla Fonera » Libera il VoIP | maggio 27, 2007, 00:47 |
  2. E io che pensavo di essere pazzoo…..
    HAHAH!

    Commentato da Redirete | giugno 15, 2007, 13:02 |
  3. Veramente bello, a breve voglio fare questo esperimento.
    Se mi serve aiuto a chi di voi e come posso chiedere?

    Un’altra cosa, per la fonera 2200?
    I pin dovrebbero essere specificati in questo link, mi aiutate?
    http://www.flickr.com/photos/sbma44/2106289704/in/photostream/

    Un salutone a tutti…

    Commentato da Davide | febbraio 5, 2008, 15:39 |
  4. [...] codice da me personalizzato in passato non era stato rilasciato perchè mi ero ripromesso di migliorarlo prima di renderlo pubblico, ma [...]

    Commentato da Codice sorgente (source code) I2C per la Fonera | Libera il VoIP | | giugno 30, 2008, 18:28 |
  5. Dopo aver letto questa pagina non potevo fare altro che correre a prendere i componenti ;)
    L’unico problema è che non sono riuscito a capire se le resistenze devono essere da 10 kohm o da 1 kohm. Nello schema e nella foto sono da 10k ma nell’elenco componenti sono da 1k. Le resistenze devono essere da 1k se si utilizza un 74hc05 e da 10k se si utilizza un 74ls05?
    Spero che qualcuno possa togliermi questo dubbio così inizio a saldare :)

    Complimenti per il blog

    Fabrizio

    Commentato da Fabrizio | marzo 10, 2009, 18:35 |
  6. Usa le 10K

    Commentato da Michele | marzo 15, 2009, 19:59 |
  7. Grazie Michele, gentilissimo ;)

    Commentato da Fabrizio | marzo 16, 2009, 11:17 |
  8. Ragazzi sto tentando di combinare qualcosa ma non riesco proprio a capire come installare i driver e fare le configurazioni del caso…qualcuno ha voglia gentilmente di spiegarmi passo passo?

    Commentato da Simone | maggio 25, 2009, 16:05 |
  9. Se mi spieghi il tuo primo problema cerco di ricordare

    Commentato da michele | maggio 25, 2009, 23:53 |
  10. Allora per il circuito tutto ok.
    Mi pare che ci sia un po di confusione nella guida su cosa va installato e come va configurato… è la parte software che non capisco…

    Commentato da Simone | maggio 26, 2009, 01:19 |
  11. Hai scaricato il file?
    l’hai installato?
    Qual’e’ la confusione, se puoi essere piu specifico vediamo cosa non e’ chiaro e vedro di risponderti

    Commentato da michele | maggio 26, 2009, 01:59 |
  12. Ho scaricato questo file
    http://www.lefinnois.net/fonerai2c/i2c_gpio.tar.gz

    ho letto il readme ma non ho capito come procedere…

    Commentato da Simone | maggio 26, 2009, 14:10 |
  13. Allora novità…per il software forse sono a posto..(dico forse)…
    se lancio il comando i2cdetect 0 mi escono solo XX e nessun numero…-.-

    Commentato da Simone | maggio 27, 2009, 00:23 |
  14. Significa che non legge l’indirizzo del I2C

    Commentato da Michele | maggio 27, 2009, 10:36 |
  15. Ah capisco…:( il circuito l’ho ricontrollato e sembra tutto ok..!!
    Che sia l’integrato scassato?

    Commentato da Simone | maggio 27, 2009, 15:41 |
  16. Mi sono accorto ora che ho il 74LS05 al posto del 74HC05…che sia diverso il funzionamento?? anche se alla fine sempre porte not sono..!

    Commentato da Simone | maggio 27, 2009, 20:45 |
  17. Nessuno raga??

    Commentato da Simone | giugno 7, 2009, 23:04 |
  18. ok ho risolto sostituendo un 74HC05 al 74LS05.

    Ora però non capisco una cosa;con il comando
    pcf8574 -d /dev/i2c-0 -a 0×21 -w 0×04
    setto il 4 bit a livello logico basso, per settarlo a livello alto cosa cambia?

    grazie

    Commentato da Simone | luglio 14, 2009, 11:19 |
  19. Raga possibile che non risponde nessuno????

    Commentato da Simone | luglio 17, 2009, 12:27 |
  20. [...] ma il pc (win/linux) E' TUTTA UN'ALTRA STORIA tempo fa avevo provato di installare le webcam (meteo e' altri plugin) sui router della fon/amv e non vi dico le notti perse per i vari reset o [...]

    Commentato da EeeBox come muletto per stazione meteo | febbraio 4, 2011, 16:17 |

Lascia un commento

Devi essere autenticato per lasciare un commento.