Differenze tra le versioni di "Rasberry PI Progetto "Rasberry Temperatura""
Riga 112: | Riga 112: | ||
chmod +x /opt/dallas/create_graphs.sh | chmod +x /opt/dallas/create_graphs.sh | ||
+ | |||
+ | Creiamo il file get_temp.pl questo è il fle che va a leggere i dati dal sensore , perciò nella riga | ||
+ | $output = `sudo cat /sys/bus/w1/devices/'''10-0008027acdab'''/w1_slave 2>&1`; | ||
+ | Occorre mettere il codice del vostro sensore DS , ricordo che i sensori sono serializzati, ogni sensore ha un codice diverso, e nella riga | ||
+ | my $metar_url = 'http://weather.noaa.gov/pub/data/observations/metar/stations/LIMP.TXT'; | ||
+ | La sigla LIMP.TXT sta per Parma , ognuno poi metterà il codice della sua zona secondo la tabella di weather.noaa.gov, io ho messo PR , purtroppo Reggio non avendo aereoporto non è contemplata |
Versione delle 00:24, 19 mar 2013
Ciao a tutti , scrivo il primo WIKI della mia vita , spero di non fare troppi errori, in ogni caso, un grazie a Davide per le info iniziali
Volevo presentare il progetto a cui sto lavorando in questi ultimi giorni , anche lui il è mio primo Rasberry. E' uno dei tanti progetti per leggere la temperatura , però volevo propinarlo lo stesso.. Intanto presentato in italiano, poi a parte la gestione elettronica, che è molto semplice. Il tutto prevede di integrare nel rasberry; un server web , un gestore di grafici rrdtools , vari script in php + bash + python, perciò anche come "palestra" per imparare una qualche funzione mi sembra utile , personalmente mi sta dando parecchi spunti. Poi funziona e ottengo il grafico della temperatura in casa .
SCHEMA PROGETTO Rasberry Temperatura
Lo scopo è visualizzare l'andamento della temperatura nel tempo , e creare un grafico con gli RRDTOOL, poi esportare il tutto su un server web esterno , per poter visualizzare il tutto anche da fuori casa , in più è stato aggiunto un modulo per leggere la temperatura esterna dal servizio weather.noaa.gov.
Il "cuore" del sistema è l'integrato DS18B20
Il principio di funzionamento e lo schema sono illustrati nella sezione 1Wire e il sensore di temperatura ds18s10
E' obbligatoria la lettura che comprende anche i test per verificare che il sensore sia installato in modo corretto.
HARDWARE
Lista componenti
- Rasberry PI versione B
- Chip DS18B20
- Resistenza 4,7 Kohm
- Collegare il pin1 (GND) del DS18B20 al pin 6 del GPIO Rasberry
- Collegare il pin2 (DQ) del DS18B20 al pin 7 GPIO4 del Rasberry
- Collegare il pin3 (VDD) del DS18B20 al pin 1 3,3V del GPIO Rasberry
- Collegare la resistenza 4,7 Kohm tra il piedino 2 e 3 del DS18B20
Questa è l'immagine del primo prototipo
SOFTWARE
- occorre che il rasberry abbia il "suo"sistema operativo già installato , la Raspbian Wheezy è perfetta.
- ricordo i test di funzionamento ( 1Wire e il sensore di temperatura ds18s10 )
- installiamo i moduli mancanti del sistema operativo
- sudo apt-get install libwww-perl
- sudo apt-get install python-paramiko
- sudo apt-get install rrdtool
- sudo apt-get install apache2 php5 libapache2-mod-php5
- Creiamo una cartella dove andare a memorizzare i file degli script , i miei esempi fanno riferimento ad una cartella creata in /opt/dallas, ma non è vincolante ( DALLAS è l'iniziale della sigla DS18B20 la società che costruisce il componente NDR )
- creiamo il primo file chiamato create_db.sh , questo serve per creare e inizializzare il database "round robin" utilizzato da rrdtools
Io utilizzoo il "vi" ma ognuno utilizzi il suo "editor" preferito
- vi /opt/dallas/create_db.sh
#!/bin/bash rrdtool create hometemp.rrd --start N --step 300 \ DS:temp:GAUGE:600:U:U \ DS:outtemp:GAUGE:600:U:U \ RRA:AVERAGE:0.5:1:12 \ RRA:AVERAGE:0.5:1:288 \ RRA:AVERAGE:0.5:12:168 \ RRA:AVERAGE:0.5:12:720 \ RRA:AVERAGE:0.5:288:365
Ricordiamoci di renderlo eseguibile con:
chmod +x /opt/dallas/create_db.sh
- Creiamo il file create_graphs.sh questo script crea l'andamento giornaliero, settimanale, mensile e annuale sulla base dei dati memorizzati nel database rrdtool
vi /opt/dallas/create_graphs.sh
#!/bin/bash DIR="/opt/dallas" #set to C if using Celsius TEMP_SCALE="C" #define the desired colors for the graphs INTEMP_COLOR="#CC0000" OUTTEMP_COLOR="#0000FF" #hourly rrdtool graph $DIR/temp_hourly.png --start -4h \ DEF:temp=$DIR/hometemp.rrd:temp:AVERAGE \ AREA:temp$INTEMP_COLOR:"Inside Temperature [deg $TEMP_SCALE]" \ DEF:outtemp=$DIR/hometemp.rrd:outtemp:AVERAGE \ LINE1:outtemp$OUTTEMP_COLOR:"Outside Temperature [deg $TEMP_SCALE]" #daily rrdtool graph $DIR/temp_daily.png --start -1d \ DEF:temp=$DIR/hometemp.rrd:temp:AVERAGE \ AREA:temp$INTEMP_COLOR:"Inside Temperature [deg $TEMP_SCALE]" \ DEF:outtemp=$DIR/hometemp.rrd:outtemp:AVERAGE \ LINE1:outtemp$OUTTEMP_COLOR:"Outside Temperature [deg $TEMP_SCALE]" #weekly rrdtool graph $DIR/temp_weekly.png --start -1w \ DEF:temp=$DIR/hometemp.rrd:temp:AVERAGE \ DEF:outtemp=$DIR/hometemp.rrd:outtemp:AVERAGE \ AREA:temp$INTEMP_COLOR:"Inside Temperature [deg $TEMP_SCALE]" \ LINE1:outtemp$OUTTEMP_COLOR:"Outside Temperature [deg $TEMP_SCALE]" #monthly rrdtool graph $DIR/temp_monthly.png --start -1m \ DEF:temp=$DIR/hometemp.rrd:temp:AVERAGE \ DEF:outtemp=$DIR/hometemp.rrd:outtemp:AVERAGE \ AREA:temp$INTEMP_COLOR:"Inside Temperature [deg F]" \ LINE1:outtemp$OUTTEMP_COLOR:"Outside Temperature [deg F]" #yearly rrdtool graph $DIR/temp_yearly.png --start -1y \ DEF:temp=$DIR/hometemp.rrd:temp:AVERAGE \ DEF:outtemp=$DIR/hometemp.rrd:outtemp:AVERAGE \ AREA:temp$INTEMP_COLOR:"Inside Temperature [deg $TEMP_SCALE]" \ LINE1:outtemp$OUTTEMP_COLOR:"Outside Temperature [deg $TEMP_SCALE]" #aggiorna server web locale cp $DIR/*.png /var/www/. #aggiorna server web esterno #/opt/dallas/ftp_graphs.sh
rendiamo sempre il file eseguibile
chmod +x /opt/dallas/create_graphs.sh
Creiamo il file get_temp.pl questo è il fle che va a leggere i dati dal sensore , perciò nella riga
$output = `sudo cat /sys/bus/w1/devices/10-0008027acdab/w1_slave 2>&1`;
Occorre mettere il codice del vostro sensore DS , ricordo che i sensori sono serializzati, ogni sensore ha un codice diverso, e nella riga
my $metar_url = 'http://weather.noaa.gov/pub/data/observations/metar/stations/LIMP.TXT';
La sigla LIMP.TXT sta per Parma , ognuno poi metterà il codice della sua zona secondo la tabella di weather.noaa.gov, io ho messo PR , purtroppo Reggio non avendo aereoporto non è contemplata