BME280

Programmiamo il sensore BME280 per misurare temperatura, umidità e pressione in una sola volta

Nell’articolo di oggi spiegheremo come utilizzare il sensore digitale BME280, in grado di leggere umidità relativa, temperatura e pressione. Questo sensore è tra i più piccoli e completi in commercio ed il prezzo è davvero molto conveniente. Il sensore è molto preciso e in grado di fornire dati molto affidabili.

Specifiche

Il BME280, dotato dell’omonimo chip Bosch, misura circa 13 mm x 10 mm e pesa circa 1g, inoltre è dotato di solo 4 pin, 2 dei quali per sfruttare l’interfaccia I2C. Il sensore sfrutta una tensione di lavoro di 3,3V, ma possiamo alimentarlo senza problemi con i 5V, consumando fino a 3,6 μA. Come detto sopra, il sensore BME280 è molto affidabile e conta su un range invidiabile; abbiamo un’accuratezza dello 0,25% per la pressione con un range compreso tra i 300hPa e i 1100hPa, mentre la temperatura registrabile va da un minimo di -40°C a un massimo di 85°C. L’umidità relativa possiede invece una tolleranza del 3%.

Potete acquistare il sensore BME280 su Amazon: https://amzn.to/3kUlQ6o



Collegamenti

Il sensore BME280 è collegabile al nostro Arduino tramite interfaccia I2C, ma in alcune varianti è possibile collegarlo anche tramite SPI. Ad ogni modo, la versione in nostro possesso sfrutterà solo la prima interfaccia, adoperando solo 2 pin per la comunicazione e altri 2 per l’alimentazione. Il pin VIN va collegato ai 5V o ai 3,3V, il pin GND al GROUND, il pin SDA al pin SDA di Arduino, mentre il pin SCL al pin SCL di Arduino. Possiamo inoltre usare i pin A4 e A5 per collegare il sensore ai rispettivi pin SDA e SCL.

BME280

Codice

Il sensore BME280 necessita di una specifica libreria che possiamo scaricare QUI. All’interno troverete alcuni sketch di prova, tuttavia abbiamo deciso di scriverne uno noi, più semplice e scaricabile QUI, per iniziare ad approcciare questo sensore. Partiamo come sempre dalla libreria specifica per il BME280 che è la BME280I2C.h e poi aggiungiamo la libreria Wire.h per l’interfaccia I2C. Creiamo poi l’oggetto bme per configurare il sensore.


#include <BME280I2C.h>
#include <Wire.h>

BME280I2C bme;

Nel VOID SETUP avviamo il monitor seriale, l’interfaccia I2C e il sensore BME280.


Serial.begin(9600);
Wire.begin();
bme.begin();

Infine, nel VOID LOOP definiamo 3 variabili a virgola mobile temp, hum, pres per temperatura, umidità e pressione, poi comunichiamo al sensore che deve leggere per poi stamparle su monitor seriale.


float temp, hum, pres;

bme.read(pres, temp, hum);

Serial.print("Temperatura: ");
Serial.print(temp);
Serial.println ("°C");

Serial.print("Umidità: ");
Serial.print (hum);
Serial.println(" %");

Serial.print("Pressione: ");
Serial.print (pres);
Serial.println (" Pa");

Serial.println (" ");

delay (3000);

Se tutto è stato impostato correttamente e non abbiamo dimenticato nulla, caricato lo sketch apriamo il monitor seriale e vedremo scorrere ad intervalli di 3 secondi i rilevamenti di temperatura, umidità e pressione.

BME280