Sensore BMP180 Pressione/temperatura/altitudine

Il sensore BMP180, oppure GY-68 è prodotto dalla Bosch Sensortec permette di effettuare diverse misurazioni come: pressione barometrica, temperatura, altitudine.

sensore bmp180

Descrizione

Il sensore BMP180 permette di misurare pressioni da 300 a 1100hPa (.da -500m a +9000m relativi al livello del mare), la tensione di alimentazione è compresa tra 1.8-3,6 (VDD) e 1.62-3.6V (VDDIO), il consumo è di soli 5uA con una lettura al secondo. Il sensore è contenuto in un package tipo LGA con una dimensione di 3,6×3,8 mm.

sensore bmp180

Oltre al valore di pressione, il sensore fornisce anche la misurazione della temperatura; i dati sono trasmessi tramite un’interfaccia I2C, con un indirizzo fisso 0x77.
La calibrazione è fatta durante la produzione e i valori sono salvati nella memoria del sensore.
Per facilitare l’uso del sensore, questo si trova di solito già montato su una piccola basetta come per esempio la Breakout Board GY-68), dove oltre al sensore, trovano posto i pochi altri componenti necessari al suo funzionamento.

sensore bmp180

Tipi di sensore

Oltre al modulo a 5 pin, sono  disponibili dei moduli a 4 pin, in cui è stato eliminato il pin marcato 3.3V.  Le caratteristiche sono le stesse, le sue dimensioni sono più ridotte: 10×13 mm per un peso di 1,18 grammi.

Le due tipologie di modulo a confronto

Foto del modulo a 4 pin, è assente quello +3.3V

Schema elettrico del modulo

Il circuito è molto semplice in quanto formato principalmente dal sensore BMP180 con le resistenze R1 e R2 sulle linee SCL e SDA.
L’altro componente presente è un regolatore CMOS a basso dropout tipo 662K con relativi condensatori che fornisce l’alimentazione a 3.3V, quando il modulo viene alimentato dal pin VCC magari con la tensione 5V fornita da Arduino.
Il regolatore può fornire una corrente di uscita di 250 mA e consentire una tensione di ingresso fino a 6,5 V.

sensore bmp180

Caratteristiche

ALIMENTAZIONE3.3V - 5V
ASSORBIMENTO0,5uA
LOGICA3.3V
PRESSIONE RILEVATA300 ÷1100 hPa (-500 ÷ 9000mt)
RISOLUZIONE0,02 hPa (17cm)
INTERFACCIAI2C 7bit con indirizzo 0x77
DIMENSIONI21x18mm

Dove trovare il modulo BMB180

Il sensore  BMP180 potrà essere acquistato presso il sito Homotix, il suo costo, al momento dell’uscita dell’articolo è di 2,23€.
Ricordo che inserendo il codice di sconto dedicato agli utenti del sito adrirobot questi usufruiranno di uno sconto3%.

Il sensore BMP180 può essere acquistato anche presso il sito FUTURA ELETTRONICA, il codice prodotto è 2846-BMP180, il suo costo, al momento della pubblicazione di questo articolo di 4,50 €.

Libreria di gestione del sensore

Per facilitare l’uso del sensore è disponibile un’apposita libreria, questa funzione in unione alla libreria Wire.h è già presente come libreria standard dell’IDE di Arduino che permette l’utilizzo del protocollo I2C.

sensore bmp180

Foto del modello sensore con 5 pin

In rete ve ne sono molte versioni, quella utilizzata per questo test ha questi comandi:

  • Initialize() – Inizializza il sensore
  • GetUncompensatedTemperature();
  • GetUncompensatedPressure();
  • Compensate Temperature();
  • CompensatePressure();
  • SoftReset() – garantisce che quando si è collegato il sensore vi sia un avvio pulito.
  • GetTemperature() – acquisisce dal sensore il dato della temperatura.
  • GetPressure() – acquisisce dal sensore il dato della pressione in Pascal.
  • GetAltitude() – acquisisce dal sensore il dato dell’altitudine in metri, il risultato ottenuto deve essere corretto per la pressione relativa al punto in cui avviene la misurazione, nel programma deve essere inserito il valore locale nella variabile seaLevelPressure, che di default è pari alla pressione a livello del mare pari a 101325 Pa;
  • SetResolution();
  • IsConnected() – verifica che il sensore sia effettivamente connesso.
  • EnsureConnected() – verifica che sia possibile connettersi con il sensore.
  • GetErrorText().

Nota: il dato della pressione è fornito in Pascal (Pa) nel Sistema internazionale pari a 1 newton su metro quadrato (1 N/m²). In ambito meteorologico, la pressione atmosferica si misura in centinaia di Pascal (o etto pascal, abbreviato con hPa). Si ha: 1 013,25 millibar = 101 325 Pa = 1 013,25 hPa

Scarica libreria

Per utilizzare la libreria sarà sufficiente scaricarla e salvarla all’interno della cartella Library dell’IDE di Arduino. Per utilizzarla all’interno del programma si dovranno aggiungere le seguenti righe:

#include <Wire.h>
#include <BMP180.h>

Taratura del sensore

Per ottenere i valori corretti dell’altitudine occorre inserire il valore relativo alla propria posizione nella variabile seaLevelPressure, che di default contiene il valore 101325 (espresso i Pa), per determinare il valore si può utilizzare l’utility trovata in rete.

Se non sapete l’altitudine sul livello del mare del vostro comune potete trovarlo in questa pagina.

Il risultato del calcolo del valore di pressione, è solamente una stima in cui si assume un calo esponenziale della pressione considerando una pressione a livello del mare di 1 atm (101325 Pa).
Questo valore potrebbe non essere corretto in quanto la pressione dell’aria dipende non solo dell’altitudine, ma anche da altri fattori quali temperatura, umidità relativa, e le condizioni atmosferiche.
Tuttavia, questa stima può essere utile per applicazioni non critiche.
Nota: Per i calcoli impostare il dato in uscita in Pa

Test base del modulo sensore

Per testare il funzionamento del modulo sensore utilizzeremo lo sketch demo allegato alla libreria.
l materiale occorrente è:

  • La scheda Arduino UNO R3 smd:
  • Sensore di pressione BMP180;
  • Cavi di collegamento;
  • Breadboard.
sensore bmp180

I collegamenti sono mostrati nella figura sottostante.

Programma di test

Una volta caricato lo sketch si dovrà attivare i monitor seriale dell’IDE, a questo punti si dovrebbero leggere i valori letti dal sensore al ritmo di 1 secondo

Nel caso fosse riportato la scritta “No sensor found”, controllare che il modulo sia correttamente alimentato, e che non siano invertiti i cavi SDA e SCL.

Esempi di utilizzo

Nei prossimi articoli vedremo alcuni esempi di utilizzo tra cui come realizzare una piccola stazione metereologica.

sensore bmp180

sensore bmp180