| Se si
utilizza una delle ultime versioni del sistema operativo di
Raspberry, è necessario creare un ambiente virtuale in cui
installare sia le librerie richieste che i programmi per il
sensore BMP280, che permette di creare una piccola stazione
meteorologica: infatti registra con precisione la
temperatura (in gradi Celsius e Farheneith), l'umidità, la
pressione - e con una approssimazione abbastanza
inaffidabile - l'altezza sul livello del mare, ma in effetti
questa è un'informazione opzionale. |
![]() il
piccolo sensore BME280
|
| |
|
|
| |
| BME280
o BMP280? |
![]() I
moduli BME280 (a sinistra) e BMP280 (a destra), fortemente
ingranditi.
|
I
moduli con i sensori BMP280 e BME280 sono estremamente
simili, e possono essere facilmente confusi, anche in fase
di acquisto, poichè certi siti, come per esempio Aliexpress,
non sono molto chiari nei codici e nella descrizione degli
articoli. Perciò bisogna stare un poco attenti. Ricordo che BME280 misura la temperatura, pressione e umidità; mentre BMP280 misura solamente temperatura e pressione. Essi richiedono librerie differenti. Si possono riconoscere guardando (meglio con una lente) i sensori. Quello di BME280 è leggermente più grande e quadtato; quello di BMP280 è più piccolo e bombato. |
| |
| |
| Metodi di collegamento tra il tuo computer e il Raspberry |
| Uno dei problemi che è necessario affrontare rapidamente è quello di connettersi tra il proprio computer e il Raspberry. 1: trasferimento di file: hai scaricato il programma che desideri dal Web sul tuo computer, il metodo più semplice per portarlo sul Raspberry (ma non certo il più elegante) è caricarlo su di una chiavetta e poi trasferirlo sul microcomputer. Un altro sistema più sofisticato consiste nell'utilizzare il programma di trasferimento FTP "Filezilla", ma questo richiede un minimo di configurazione. Per informazioni precise, vedi questo articolo presente su "Randomnerdstutorial". 2: desktop remoto: può essere molto comodo poter gestire il Raspberry dal proprio computer, perchè evita l'uso di un uteriore monitor, tastiera e stampante. Per effettuare il collegamento VLC, vedi questo esauriente articolo su "Randomnerdstutorial". |
| |
| La
creazione dell'ambiente virtuale |
Ipotizziamco che sul desktop del proprio Raspberry si crei una cartella "Projects" e all'interno una sottocaretlla "BME280" in cui creeremo l'ambiente virtuale (che chiameremo "280"), le librerie necessarie e i programmi. Nota: naturalmente i nomi dati alle sottocartelle possono essere variati a piacere. Postulando che si siano create le cartelle indicate, si può iniziare con la programmazione. Aprire un terminale (la quatra icona in alto a destra) e digitare quanto
segue:
La prima è "adafruit-circuitpython-bmp280". Ecco il comando necessario:
Per lanciare il terzo programma, "bmp280_webs.py", è necessario installare alche le seguenti librerie nell'ambiente virtuale:
|
| Come
collegare il sensore BME280 alla basetta (BDS) |
Il sensore BMP280 usa il protocollo I2C. Il sistema operativo del Raspberry usa di default il GPIO2 per SDA e GPIO3 per SCL per I2C. Sulla BDS ci sono quattro connettori che permettono di usare questo protocollo; semplicemente hanno una diversa disposizione dei piedini, in modo da poter connettere il maggior numero possibile di periferiche. In questo caso BME280 è stato connesso sul connettore I2C2. E' sempre necessario fare molta attenzione alla giusta sequenza di collegamento, per evitare di danneggiare il sensore o addirittura il Raspberry! |
![]() La connessione del sensore sulla basetta su I2C2 |
|
|
| Primo programma: visualizzare i dati della
stazione meteorologica sul terminale |
Dopo aver caricato il programma, lanciarlo con il seguente comando:, potremmo salvare il nostro primo programma, nella cartella "bme280", che con con grande fantasia è stato chiamato "bmp280_1.py". Clicca qui per scaricare il programma in formato ".zip" Clicca qui per visualizzare il programma in formato testo. Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella "bme280"; altrimenti leggi il paragrafo relativo allo scambio dei dati.
Ed ecco il risultato dei nostri sforzi: ![]() Il programma continuerà ad aggiornare i dati fino a quando non si premeranno contemporaneamente i tasti "Ctrl" + "C" |
| Secondo
programma: visualizzazione e salvataggio dei dati della
stazione meteo |
Il
secondo programma presentato, bme280_data.py, è simile al
precedente, però con una importante aggiunta: salva in un
file i risultati delle registraioni. Pertanto lo sketch può
essere lanciato e poi lasciato girare non presidiato; quando
si desidera vedere l'andamento dei dati, è sufficiente
fermare il programma e leggere il file di testo generato.
Quando si riattiverà il programma, continuerà a scrivere
sullo stesso file. Nel caso esso venga cancellato (o
rinominato), ne verrà generato uno nuovo. Naturalmente è
sempre possibile leggere i dati in tempo reale sul
terminale, come nel programma precedente.![]() I dati in tempo reale visualizzati sul terminale (ecco le prime tre righe visualizzate) Questo è il file di testo su cui sono stati salvati i dati ![]() ed ecco un estratto dei dati salvati nel file di testo "sensor_readings_bme280.txt". Molto utile, oltre ai dati stessi, la data e l'orario delle registrazioni. Nel programma di testo l'intervallo di registrazione è di 10 secondi. Naturalmente se si desidera effettuare indagini sul lungo periodo, è possibile facilmente variare l'intervallo delle rilevazioni. Aprendo il programma con Geany (o con Thonny) si può facilmente cambiare il nome del file su cui verranno salvate le registrazioni: ![]() Il nome del file è evidenziato nei riquadri verdi. E' necessario cambiarlo in entrambi. E' possibile variare facilmente il periodo di rilevazione dei dati. In Python il tempo è misurato in secondi (mentre in C - programmazione della IDE di Arduino era calcolato in millisecondi). ![]() Come si vede dai dati presenti nel riquadro blu, l'intervallo di registrazione è di 10 secondi. Se si volesse rilevarli ogni 30 minuti, dovremmo scrivere: "time.sleep(1800)"; per un ora "time.sleep(3600)", ecc. Clicca qui per scaricare il file in formato ".zip". Clicca qui per visualizzare il programma in formato testo. Per le modalità di caricamento del programma nella memoria del Raspberry, vedi il programma precedente. Per informazioni sul programma, puoi visualizzare tutte le istruzioni sempre su "Randomnerdstutorial", al seguente indirizzo: https://randomnerdtutorials.com/raspberry-pi-bme280-data-logger/ |
| Terzo programma: visualizzazione dei dati
sul proprio browser. |
| Con
questo terzo programma si fa un piccolo salto di livello: si
passa dalla visualizzazione (o dal salvataggio di dati)
all'interno della memoria delm Raspberry, alla
visualizzazione sul proprio browser, sempre che sia
sulla stessa rete WiFi. Affinchè questo programma funzioni, sarà necessario installare le seguenti librerie aggiuntive: - Flask, Board, Adafruit_blinka Vedi il paragrafo dedicato all'ambiente virtuale. Per lanciare il programma, "bme280_webs.py": ![]() Quando sarà stato caricato in memoria, appariranno una serie di dati: ![]() Nel riquadro rosso è inserito l'indirizzo el Raspberry, da inserire nel proprio browser (http://192.168.1.169), seguito dalla porta (:5000). Naturalmente l'indirizzo tcp/ip che vedrai dipende da quello che il tuo router ha attribuito al Raspberry. Ed ecco il risultato: ![]() Direi interessante! Piccola nota: ho evidenziato in alto l'icona del cerchio, che serve per aggiornare i dati visualizzati, perchè non avviene automaticamente. Clicca qui per scaricare il file in formato ".zip". Clicca qui per visualizzare il programma in formato testo. Per le modalità di caricamento del programma nella memoria del Raspberry, vedi il programmale informazioni relative al primo programma. Nota: il programma originale da cui ho tratto informazione era per BME680. Ecco il link: https://cdn-learn.adafruit.com/downloads/pdf/adafruit-bme680-humidity-temperature-barometic-pressure-voc-gas.pdf?timestamp=1576067576 Le uniche variazioni sono quelle relative al sensore e al colore dei dati visualizzati sul browser. |
| Il
quarto programma: la gestione di un
condizionatore/pompa di calore |
|
Clicca qui per scaricare il file in formato ".zip" Clicca qui per visualizzare il file. Dopo aver scaricato il programma nella cartella selezionata (nel nostro caso, /Desktop/Projects/dht11), scompattare il programma dht_temp.py e lanciarlo con il seguente comando: "python dht_temp.py". Controllare di aver attivato l'ambiente virtuale e scaricato le librerie necessarie. |