Gruppo Meteo/HowToOld
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