Differenze tra le versioni di "Gruppo Meteo/HowToOld"

Da raspibo.
Jump to navigation Jump to search
(Creata pagina con ' ''' Analisi per l'implementazione: ''' Ipotizziamo di utilizzare un sensore I2C dato che su Raspberry la gestione di questo tipo di bus e' fatta a livello hardware e non com...')
 
(ristrutturato il tutto)
Riga 1: Riga 1:
 +
''' 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.
  
''' Analisi per l'implementazione: '''
+
''' 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 [https://www.sparkfun.com/products/9418 sparkfun]
 +
 
 +
* questi i dati del tmp27 http://www.ti.com/lit/ds/symlink/tmp275.pdf
 +
 
 +
Procederemo a sperimentare anche:
 +
* [http://www.analog.com/static/imported-files/data_sheets/ADT7420.pdf 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
  
Ipotizziamo di utilizzare un sensore I2C dato che su Raspberry la gestione di questo tipo di bus e' fatta a livello hardware e non comporta carichi rilevanti per la cpu.
 
  
* Un esempio di misura della temperatura con sensore TMP102 sul sito [http://www.element14.com/community/groups/raspberry-pi/blog/2012/07/26/is-it-done-yet-temperature-sensing-with-the-raspberry-pi 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.
+
Esistono anche:
* Dato che il sensore e' di tipo smd si puo' acqusitare anche gia' saldato su basetta lo vende ad esempio [https://www.sparkfun.com/products/9418 sparkfun]
 
* [http://www.analog.com/static/imported-files/data_sheets/ADT7420.pdf ADT7420] un sensore di precisione anche questo smd e prodotto da Analog
 
 
* [http://ww1.microchip.com/downloads/en/DeviceDoc/25095A.pdf MCP9808] prodotto da Microchip (l'accuratezza di questo sensore è al limite della accettabilità)
 
* [http://ww1.microchip.com/downloads/en/DeviceDoc/25095A.pdf MCP9808] prodotto da Microchip (l'accuratezza di questo sensore è al limite della accettabilità)
 
* [http://www.nxp.com/documents/data_sheet/LM75A.pdf LM75A] by NXP (questo sensore è inaccurato e dovrebbe essere evitato in condizioni operative)
 
* [http://www.nxp.com/documents/data_sheet/LM75A.pdf LM75A] by NXP (questo sensore è inaccurato e dovrebbe essere evitato in condizioni operative)
  
''' Predisposizione software per i client'''
+
''' 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:
 
Su Raspberry Pi:
  
E' consigliabile installare Mosquitto tramite pacchetto e ancor meglio aggiungendo un repository facendo riferimento alla pagina:  http://mosquitto.org/download/
+
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:
 
In alternativa si può usare:
Riga 21: Riga 42:
 
  sudo pip install mosquitto
 
  sudo pip install mosquitto
  
In alternativa si può usare questa procedura per Raspbian eseguibile anche da utente normale ad esempio pi:
+
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 [http://www.element14.com/community/groups/raspberry-pi/blog/2012/07/26/is-it-done-yet-temperature-sensing-with-the-raspberry-pi 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 '''
  
  mkdir meteo
+
se avete la breakout board per tmp102 seguite le conessioni mostrate in:
cd meteo
+
http://bildr.org/2011/01/tmp102-arduino/
salvare i due files rmap.py e mystation.py nella cartella meteo
+
(l'esempio software è pero' un po' approssimativo)
sudo apt-get install libwrap0-dev libssl-dev
 
wget http://mosquitto.org/files/source/mosquitto-1.2.1.tar.gz
 
tar zxf mosquitto-1.2.1.tar.gz
 
cd mosquitto-1.2.1/
 
make ;sudo make install ; sudo ldconfig
 
cd meteo/
 
python mystation.py
 
  
Modificare latitudine e longitude nello script mystation.py togliendo il commento ed inserendo quelle della propria stazione (con 5 decimali):
+
Al termite collegate raspberry a arduino tramite il cavo USB
  
#define mystation
+
''' semplice esempio di software di campionamento '''
#uncomment the line below
 
  
  #lon=11.86992
+
su raspberry:
  #lat=44.98906
+
  cd ~/svn/r-map-code/trunk/python
 +
  python station.py
  
Terminata l'installazione per verificare se tutto funziona:
+
si puo' interrompere con ctrl-c
  
  $ python mystation.py
+
  troverete i file logrpc.txt logmqtt.txt che riportano il trace delle relative comunicazioni.
log: Sending PUBLISH (dFalse, q1, r1, m1, 'maint/-/1121446,4429043/generic/-,-,-/-,-,-,-/B01213', ... (13 bytes)
 
log: Sending PUBLISH (dFalse, q1, r1, m2, 'dballe/-/1121446,4429043/generic/-,-,-/-,-,-,-/B07030', ... (11 bytes)
 
log: Sending PUBLISH (dFalse, q1, r0, m3, 'dballe/-/1121446,4429043/generic/254,0,0/103,2000,-,-/B12101', ... (42 bytes)
 
log: Received CONNACK (0, 0)
 
connect rc: 0
 
log: Received PUBACK (Mid: 1)
 
mid: 1
 
log: Received PUBACK (Mid: 2)
 
mid: 2
 
log: Sending PUBLISH (dFalse, q1, r0, m4, 'dballe/-/1121446,4429043/generic/254,0,0/103,2000,-,-/B12101', ... (42 bytes)
 
log: Received PUBACK (Mid: 3)
 
mid: 3
 
log: Received PUBACK (Mid: 4)
 
mid: 4
 
log: Sending PUBLISH (dFalse, q1, r0, m5, 'dballe/-/1121446,4429043/generic/254,0,0/103,2000,-,-/B12101', ... (42 bytes)
 
log: Received PUBACK (Mid: 5)
 
mid: 5
 

Versione delle 14:57, 18 ott 2013

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

Procederemo a sperimentare anche:


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

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.