Gruppo Meteo/HowToOld
Analisi per l'implementazione:
Proveremo a misurare la temperatura.
Per questo esempio utilizzeremo un raspberry e un arduino Uno La sensoristica prevede sue sensori di temperatura i2c della serie tmp della texax instrumets nello specifico o tmp102 o tmp275.
Sensoristica Utilizzeremo sensori I2C. Oltre alla versatitilità e ampia diffusione di questo bus su Raspberry la gestione di i2c e' fatta a livello hardware e non comporta carichi rilevanti per la cpu.
- Dato che il sensore tmp102 e' di tipo smd si puo' acqusitare anche gia' saldato su basetta lo vende ad esempio sparkfun
- questi i dati del tmp27 http://www.ti.com/lit/ds/symlink/tmp275.pdf
Procederemo a sperimentare anche:
- ADT7420 un sensore di precisione anche questo smd e prodotto da Analog; anche questo disponibile su basetta, ma un po' costosa: http://au.element14.com/digilent/pmodtmp2/adt7420-temp-sensor-16bit-pmod/dp/2290114
Esistono anche:
- MCP9808 prodotto da Microchip (l'accuratezza di questo sensore è al limite della accettabilità)
- LM75A by NXP (questo sensore è inaccurato e dovrebbe essere evitato in condizioni operative)
il broker mqtt e il data base con web service a applicazione javascript
Il tutto è implementato su raspberry con pidora 18. Per il momento basta sapere che è disponibile su http:pat1.bisognodipace.org
Predisposizione software
Il software in fase di sviluppo è disponibile qui: http://sourceforge.net/projects/r-map/
Su Raspberry Pi:
Ci sono una serie di dipendenze tra cui il software arduino e una serie di moduli python tra cui pyserial ... Bisogna anche installare Mosquitto tramite pacchetto e ancor meglio aggiungendo un repository facendo riferimento alla pagina: http://mosquitto.org/download/
In alternativa si può usare:
sudo apt-get install python-pip sudo pip install mosquitto
per scaricare il software r.map:
mkdir ~/svn cd ~/svn svn checkout svn://svn.code.sf.net/p/r-map/code/ r-map-code
Installare su arduino Aprire l'ambiente di sviluppo arduino
* modificare la posizione della cartella degli sketch da File-> preferenze e impostarlo a {tua home dir}/svn/r-map-code/trunk/sketchbook
compilare e caricare su arduino
eseguire su raspberry
cd ~/svn/r-map-code/trunk/python
Modificare latitudine e longitude nello script station.py inserendo quelle della propria stazione :
lon=11.86992 lat=44.98906
Modificare anche gli indirizzi i2c dei vostri sensori
rpcaddress=0x4f i2caddress=0x4c
il primo è quello collegato ad arduino il secondo è quello collegato a raspberry
installazione hardware
installazione su raspberry
- Un esempio di misura della temperatura con sensore TMP102 sul sito element14, in questo esempio viene anche interfacciato un chip DS1307 real time clock utile se c'e' la possibilita' perdita di connettvita' verso un server ntp.
- questo un altro how to http://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c
- questo un esempio di collegamento http://learn.adafruit.com/adding-a-real-time-clock-to-raspberry-pi/wiring-the-rtc
installazione su arduino
se avete la breakout board per tmp102 seguite le conessioni mostrate in: http://bildr.org/2011/01/tmp102-arduino/ (l'esempio software è pero' un po' approssimativo)
Al termite collegate raspberry a arduino tramite il cavo USB
semplice esempio di software di campionamento
su raspberry:
cd ~/svn/r-map-code/trunk/python python station.py
si puo' interrompere con ctrl-c
troverete i file logrpc.txt logmqtt.txt che riportano il trace delle relative comunicazioni.