Collegamento del sensore di pressione Arduino

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.

Sensore di pressione BMP180 / GY-68 pinout, datasheet
Modulo di sensore di pressione BMP180 / GY-68 pinout, datasheet

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

Collegamento del sensore di pressione BMP180 / GY-68 Arduino Uno
Collegamento del sensore di pressione BMP180 / GY-68 Arduino Uno
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:



  1. per eliminare l’effetto dell’altitudine quando si misura la pressione atmosferica, utilizzare la funzione livello del mare e l’altitudine corrente;
  2. se la temperatura dell’aria cambia, la pressione viene corretta.

Come collegare barometro BMP180 e LCD 1602 ad Arduino

Come usare sensore di pressione BMP180 Arduino Uno
Come usare sensore di pressione BMP180 Arduino Uno
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:

  1. 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.

5/5 - (1 vote)


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.