CONTENUTO ►
Il sensore di pressione BMP180 / GY-68 consente di realizzare un semplice barometro con la scheda Arduino Nano o Uno. Con questo sensore è possibile creare una stazione meteo per la casa, aggiungendo al circuito un sensore di temperatura e un display 1602 I2C. Vediamo come collegare correttamente il sensore di pressione ad Arduino bmp180 (bmp080) e come inviare i dati della pressione atmosferica alla porta seriale di Arduino IDE e display LCD 1602.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Mega
- sensore di pressione BMP180 / GY-68
- display LCD 1602 i2c
- cavi di collegamento
- libreria SFE_BMP180.h e LiquidCrystal_I2C.h
Sensore di pressione BMP180 / GY-68 datasheet, pinout
Il barometro su microcontrollore Arduino Uno è un dispositivo che misura la pressione atmosferica. I moderni barometri elettronici GY-68 e BMP180 si basano sul metodo piezoresistivo o estensimetrico, vale a dire che nei sensori si verifica una variazione della resistenza del materiale sotto l’azione di forze deformanti. Si noti che il sensore di pressione atmosferica GY-68 è collegato all’alimentazione di scheda Arduino a 3,3 Volt.
Caratteristiche del sensore di pressione BMP180 Arduino:
- Tensione di alimentazione: 3 – 5 V
- Corrente di funzionamento: 0,5 mAmp
- Campo di misura: 300 hPa a 1100 hPa
- Interfaccia di connessione: I2C
- Tempo di risposta: 4,5 ms
- Precisione di misura della pressione: 0,1 hPa
- Campo di misura della temperatura: 0 – 65°
Come collegare sensore di pressione barometrica Arduino
BMP180 (GY-68) | Arduino Uno | Arduino Nano | Arduino Mega |
GND | GND | GND | GND |
VIN | 5V | 5V | 5V |
SDA | A4 | A4 | 20 |
SCL | A5 | A5 | 21 |
Il modulo di misurazione della pressione è collegato al microcontrollore Arduino tramite l’interfaccia I2C. I contatti SCL / SDA e l’alimentazione del modulo sono riportati sul gruppo di contatti. Inoltre, per lavorare con il sensore è necessario installare la libreria SFE_BMP180.h Arduino, che consente di semplificare il lavoro con il modulo. I comandi per bmp180 (bmp080) e gy-68 sono gli stessi, quindi la libreria sarà adatta a tutti i barometri elencati.
Programma Arduino per sensore di pressione barometrica
#include "Wire.h" #include "SFE_BMP180.h" SFE_BMP180 pressure; #define ALTITUDE 1655.0 void setup(){ Serial.begin(9600); pressure.begin(); } void loop(){ char status; double T,P,p0,a; Serial.println(); Serial.print("provided altitude: "); Serial.print(ALTITUDE,0); Serial.println(" meters"); status = pressure.startTemperature(); if (status != 0){ delay(status); status = pressure.getTemperature(T); if (status != 0){ Serial.print("temperature: "); Serial.print(T,2); Serial.println(" deg C"); status = pressure.startPressure(3); if (status != 0){ delay(status); status = pressure.getPressure(P,T); if (status != 0){ Serial.print("absolute pressure: "); Serial.print(P,2); Serial.print(" mb, "); Serial.print(P*0.0295333727,2); Serial.println(" inHg"); p0 = pressure.sealevel(P,ALTITUDE); Serial.print("relative (sea-level) pressure: "); Serial.print(p0,2); Serial.print(" mb, "); Serial.print(p0*0.0295333727,2); Serial.println(" inHg"); } else Serial.println("error retrieving pressure measurement\n"); } else Serial.println("error starting pressure measurement\n"); } else Serial.println("error retrieving temperature measurement\n"); } else Serial.println("error starting temperature measurement\n"); delay(5000); }
Spiegazione del codice per sensore di sensore di pressione barometrica Arduino:
- per eliminare l’effetto dell’altitudine quando si misura la pressione atmosferica, utilizzare la funzione livello del mare e l’altitudine corrente;
- se la temperatura dell’aria cambia, la pressione viene corretta.
Come collegare barometro BMP180 e LCD 1602 ad Arduino
LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
GND | GND | GND | GND |
VCC | 5V | 5V | 5V |
SDA | A4 | A4 | 20 |
SCL | A5 | A5 | 21 |
Nell’esempio seguente, i dati di temperatura e pressione sono visualizzati sullo display LCD 1602 (la visualizzazione non include tutte le informazioni), con due dispositivi collegati contemporaneamente al bus i2c. Al bus i2c possono essere collegati fino a 127 dispositivi. Collegare lo schermo di testo al microcontrollore (secondo lo schema precedente) e caricare il seguente programma di esempio per il sensore di pressione GY-68 Arduino Uno.
Programma Arduino per barometro BMP180 e LCD 1602 i2c
#include "Wire.h" #include "SFE_BMP180.h" SFE_BMP180 pressure; #define ALTITUDE 1655.0 #include "LiquidCrystal_I2C.h" LiquidCrystal_I2C LCD(0x27,16,2); void setup(){ pressure.begin(); LCD.init(); LCD.backlight(); } void loop(){ char status; double T,P,p0,a; status = pressure.startTemperature(); if (status != 0){ delay(status); status = pressure.getTemperature(T); if (status != 0){ LCD.setCursor(0, 0); LCD.print("Temp: "); LCD.print(T,2); LCD.print(" *C"); status = pressure.startPressure(3); if (status != 0){ delay(status); status = pressure.getPressure(P,T); if (status != 0){ p0 = pressure.sealevel(P,ALTITUDE); LCD.setCursor(0, 1); LCD.print("Pres: "); LCD.print(p0,2); LCD.print(" mb, "); } else Serial.println("error retrieving pressure measurement\n"); } else Serial.println("error starting pressure measurement\n"); } else Serial.println("error retrieving temperature measurement\n"); } else Serial.println("error starting temperature measurement\n"); delay(5000); }
Spiegazione del codice per sensore di sensore di pressione barometrica Arduino:
- modificando il programma, è possibile visualizzare la pressione atmosferica assoluta e relativa invece della temperatura.
Conclusioni. Il sensore di pressione dell’aria bmp180 è molto facile da collegare alla scheda Arduino e la libreria SFE_BMP180 consente di utilizzare facilmente questo modulo in molti progetti fai-da-te per principianti. Speriamo che questa recensione vi sia stata utile e se avete ancora domande sul funzionamento del modulo bmp180 (gy-68) lasciatele nei commenti a questo post. Cerchiamo di rispondere a tutte le domande degli utenti.
Lascia un commento