Nota

Ciao, benvenuto nella comunità di appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Accedi in anteprima agli annunci di nuovi prodotti e agli sneak peek.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e omaggi: Partecipa a giveaway e promozioni festive.

👉 Pronto per esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!

BMP180

Panoramica

In questo tutorial, approfondiremo il modulo IMU GY-87, concentrandoci sul sensore BMP180 per la misurazione di temperatura, pressione e altitudine. Ideale per applicazioni come il monitoraggio del clima e il tracciamento dell’altitudine, questa lezione copre l’interfacciamento del GY-87 con un Arduino Uno e l’uso della libreria Adafruit BMP085. Imparerai come inizializzare il sensore BMP180 e leggere i suoi dati sul Monitor Seriale di Arduino, una competenza cruciale per progetti che richiedono dati ambientali.

Componenti necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Puoi anche acquistarli separatamente dai link qui sotto.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

Arduino Uno R4 WiFi

-

Cavi Jumper

ACQUISTA

Modulo IMU GY-87

-

Collegamenti

../_images/09-gy87_bb1.png

Schema Elettrico

../_images/09_basic_gy87_schematic.png

Codice

Nota

  • Puoi aprire il file 09-gy87_bmp180.ino dal percorso elite-explorer-kit-main\basic_project\09-gy87_bmp180 direttamente.

  • Oppure copia questo codice nell’IDE di Arduino.

Nota

Per installare la libreria, usa il Library Manager di Arduino e cerca «Adafruit BMP085 Library» e installala.

09-gy87_bmp180.ino
 1/*
 2  This Arduino code interfaces with the GY-87 IMU (Inertial Measurement Unit) module, 
 3  specifically using the BMP180 sensor for measuring temperature, pressure, and 
 4  calculating altitude. It initializes the BMP180 sensor and continuously outputs its 
 5  readings to the Serial Monitor.
 6  
 7  Board: Arduino Uno R4
 8  Component: GY-87 IMU Module
 9  Library: https://github.com/adafruit/Adafruit-BMP085-Library  (Adafruit BMP085 Library by Adafruit)
10*/
11
12// Include required libraries
13#include <Adafruit_BMP085.h>
14
15// Initialize sensor objects
16Adafruit_BMP085 bmp;
17
18void setup() {
19  // Initialize the serial communication with a baud rate of 9600
20  Serial.begin(9600);
21
22  // Initialize BMP180 barometric sensor
23  initializeBMP180();
24}
25
26void loop() {
27  // Print BMP180 data
28  printBMP180();
29
30  delay(500);
31}
32
33void initializeBMP180() {
34  // Start BMP180 initialization
35  if (!bmp.begin()) {
36    Serial.println("Could not find a valid BMP180 sensor, check wiring!");
37    while (1)
38      ;  // Halt if sensor not found
39  }
40  Serial.println("BMP180 Found!");
41}
42
43void printBMP180() {
44  Serial.println();
45  Serial.println("BMP180 ------------");
46  Serial.print("Temperature = ");
47  Serial.print(bmp.readTemperature());
48  Serial.println(" *C");
49
50  Serial.print("Pressure = ");
51  Serial.print(bmp.readPressure());
52  Serial.println(" Pa");
53
54  // Calculate altitude assuming 'standard' barometric
55  // pressure of 1013.25 millibar = 101325 Pascal
56  Serial.print("Altitude = ");
57  Serial.print(bmp.readAltitude());
58  Serial.println(" meters");
59
60  Serial.print("Pressure at sealevel (calculated) = ");
61  Serial.print(bmp.readSealevelPressure());
62  Serial.println(" Pa");
63  Serial.println("BMP180 ------------");
64  Serial.println();
65}

Analisi del Codice

  • initializeBMP180()

    Inizializza il sensore BMP180.

    void initializeBMP180() {
      // Start BMP180 initialization
      if (!bmp.begin()) {
        Serial.println("Could not find a valid BMP180 sensor, check wiring!");
        while (1)
          ;  // Halt if sensor not found
      }
      Serial.println("BMP180 Found!");
    }
    
  • printBMP180()

    Stampa i valori letti dal sensore BMP180.

    void printBMP180() {
      Serial.println();
      Serial.println("BMP180 ------------");
      Serial.print("Temperature = ");
      Serial.print(bmp.readTemperature());
      Serial.println(" *C");
    
      Serial.print("Pressure = ");
      Serial.print(bmp.readPressure());
      Serial.println(" Pa");
    
      // Calculate altitude assuming 'standard' barometric
      // pressure of 1013.25 millibar = 101325 Pascal
      Serial.print("Altitude = ");
      Serial.print(bmp.readAltitude());
      Serial.println(" meters");
    
      Serial.print("Pressure at sealevel (calculated) = ");
      Serial.print(bmp.readSealevelPressure());
      Serial.println(" Pa");
      Serial.println("BMP180 ------------");
      Serial.println();
    }