Gruppo Meteo/HowToOld

Da raspibo.
Versione del 18 ott 2013 alle 13:47 di PaoloPatruno (discussione | contributi) (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...')
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

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 comporta carichi rilevanti per la cpu.

  • 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.
  • Dato che il sensore e' di tipo smd si puo' acqusitare anche gia' saldato su basetta lo vende ad esempio sparkfun
  • ADT7420 un sensore di precisione anche questo smd e prodotto da Analog
  • 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)

Predisposizione software per i client

Su Raspberry Pi:

E' consigliabile 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

In alternativa si può usare questa procedura per Raspbian eseguibile anche da utente normale ad esempio pi:

mkdir meteo
cd meteo
salvare i due files rmap.py e mystation.py nella cartella meteo 
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):

#define mystation
#uncomment the line below
#lon=11.86992
#lat=44.98906

Terminata l'installazione per verificare se tutto funziona:

$ python mystation.py 
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