Si estás buscando incorporar un sensor barómetro BMP180 a tu proyecto con ESP32, has llegado al lugar indicado. En este artículo, te proporcionaremos instrucciones detalladas para que puedas integrar este sensor de manera efectiva en tu aplicación. Sigue leyendo para aprender todo lo que necesitas saber para sacar el máximo provecho de esta combinación de tecnologías.
Esta guía le mostrará cómo utilizar el sensor barométrico BMP180 con el ESP32 para leer presión, temperatura y altitud. Le mostraremos cómo conectar el sensor al ESP32, instalar la biblioteca requerida y cómo escribir el boceto en el IDE de Arduino.
Presentamos el sensor barométrico BMP180
El BMP180 es un sensor de presión digital y mide la presión absoluta del aire que lo rodea.
Tiene un rango de medición de 300 a 1100 hPa con una precisión de hasta 0,02 hPa.
Dado que la temperatura influye en la presión, el sensor está equipado con un sensor de temperatura que proporciona valores de presión compensados por la temperatura.
Además, debido a que la presión cambia con la altitud, puede estimar la altitud basándose en la medición de presión actual.
Cableado del sensor BMP180 al ESP32
El sensor barométrico BMP180 utiliza el protocolo de comunicación I2C. Entonces debes usar los pines SDA y SCL del ESP32.
La siguiente tabla muestra el cableado del sensor.
BMP180 | Cableado con ESP32 |
vino | 3,3 V |
Dimensiones | Dimensiones |
SCL | GPIO22 (SCL) |
ASD | GPIO21 (ASD) |
Lectura de temperatura, presión y altitud.
En esta sección le mostraremos cómo usar el ESP32 para leer la presión y la temperatura del sensor barométrico BMP180. También le mostraremos cómo estimar la altura.
Piezas requeridas
Para este ejemplo necesitarás las siguientes piezas:
- Módulo ESP32 (placa ESP32 DOIT DEVKIT V1) – leer Comparación de placas de desarrollo ESP32
- Sensor barométrico BMP180
- Cables de puente
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Esquema
Conecte el sensor barométrico BMP180 al ESP32 como se muestra en el siguiente diagrama de cableado.
Preparando la placa ESP32 en Arduino IDE
Para cargar código a su ESP32 usando Arduino IDE, debe instalar un complemento de Arduino IDE que le permita programar el ESP32 usando Arduino IDE y su lenguaje de programación. Sigue uno de los siguientes tutoriales para preparar tu IDE de Arduino:
- instrucciones de Windows – Instalación de la placa ESP32 en Arduino IDE
- Instrucciones para Mac y Linux – Instalación de la placa ESP32 en Arduino IDE
Instalación de la biblioteca BMP_085
Una de las formas más sencillas de leer la presión, la temperatura y la altitud con el sensor BMP180 es utilizar el Biblioteca BMP_085 de Adafruit. Esta biblioteca es compatible con los sensores BMP085 y BMP180. Siga los siguientes pasos para instalar la biblioteca en su IDE de Arduino:
Abra su IDE de Arduino y vaya a Bosquejo > incluir biblioteca > Administrar bibliotecas. El administrador de la biblioteca debería abrirse.
Buscar «BMP085”en el cuadro de búsqueda e instale la biblioteca BMP085 de Adafruit.
Reinicie su IDE de Arduino después de la instalación.
código
La biblioteca proporciona un ejemplo que muestra cómo determinar la temperatura, la presión y la altitud. Ir a archivo > Ejemplos > Biblioteca Adafruit BMP085 > prueba BMP085.
/*
* Rui Santos
* Complete Project Details https://randomnerdtutorials.com
*/
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085/BMP180 sensor, check wiring!");
while (1) {}
}
}
void loop() {
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");
// you can get a more precise measurement of altitude
// if you know the current sea level pressure which will
// vary with weather and such. If it is 1015 millibars
// that is equal to 101500 Pascals.
Serial.print("Real altitude = ");
Serial.print(bmp.readAltitude(102000));
Serial.println(" meters");
Serial.println();
delay(500);
}
El código comienza importando las bibliotecas requeridas:
#include <Wire.h>
#include <Adafruit_BMP085.h>
tu creas uno Adafruit_BMP085 Objeto nombrado bmp.
Adafruit_BMP085 bmp;
En el configuración() el sensor se inicializa:
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085/BMP180 sensor, check wiring!");
while (1) {}
}
}
leer la temperatura
Para leer la temperatura es suficiente leer temperatura() método en el bmp Objeto:
bmp.readTemperature()
Leer presión
Leer la presión también es fácil. ellos usan el leer imprimir() Método.
bmp.readPressure()
Los valores de presión se dan en la unidad Pascal.
Leer altura
Dado que la presión cambia con la altitud, puede estimar su altitud actual comparándola con la presión al nivel del mar.
El ejemplo le muestra dos opciones diferentes para estimar la altura.
1. El primero supone una presión de aire estándar de 10132 Pascales al nivel del mar. La altura se obtiene de la siguiente manera:
bmp.readAltitude()
2. El segundo método supone la presión actual al nivel del mar. Por ejemplo, si la presión al nivel del mar es actualmente 101500 Pa, sólo necesita pasar 101500 como argumento a la leer altura() Método de la siguiente manera:
bmp.readAltitude(101500)
demostración
Sube el código a tu ESP32. Asegúrese de haber seleccionado la placa y el puerto COM correctos.
Luego abra el monitor en serie con una velocidad de baudios de 9600. Debería obtener las lecturas del sensor como se muestra en la siguiente figura.
Envolver
En esta guía le mostramos cómo usar el sensor barométrico BMP180 con el ESP32 para leer la presión y la temperatura y estimar la altitud.
Ahora puede llevar este proyecto más allá y ver los últimos valores de los sensores en un servidor web. Tenemos varios ejemplos que puede modificar para mostrar los valores:
- Servidor web ESP32 con BME280 – mini estación meteorológica
- Servidor web ESP32 DHT11/DHT22 – Temperatura y humedad con Arduino IDE
Esperamos que esta guía te haya resultado útil. Si te gusta ESP32, asegúrate de consultar los siguientes recursos:
- Aprende ESP32 con Arduino IDE (Curso)
- Programación MicroPython con el ESP32 (libro electrónico)
- Comenzando con ESP32
- Referencia de distribución de pines de ESP32: ¿Qué pines GPIO debería utilizar?
- Servidor web ESP32 – IDE de Arduino
Gracias por leer.
Introducción al Sensor Barométrico BMP180
El sensor barométrico BMP180 es un sensor de presión digital que mide la presión absoluta del aire que lo rodea. Tiene un rango de medición de 300 a 1100 hPa con una precisión de 0.02 hPa. Además, cuenta con un sensor de temperatura para dar lecturas de presión compensadas por temperatura. Con estos datos, también es posible estimar la altitud basada en la medición actual de presión.
Cómo Conectar el Sensor BMP180 al ESP32
El sensor barométrico BMP180 utiliza el protocolo de comunicación I2C. Por lo tanto, es necesario utilizar los pines SDA y SCL del ESP32 para la conexión. A continuación, se muestra una tabla con la conexión:
- Vcc: 3.3V
- GND: GND
- SCL: GPIO 22
- SDA: GPIO 21
Lectura de Temperatura, Presión y Altitud
En esta sección te mostraremos cómo leer la presión y temperatura del sensor BMP180 barométrico utilizando el ESP32. También te enseñaremos cómo estimar la altitud.
Para este ejemplo, necesitarás un módulo ESP32, el sensor barométrico BMP180 y cables jumper.
Preparación de la Placa ESP32 en el IDE de Arduino
Para cargar el código en tu ESP32 utilizando el IDE de Arduino, debes instalar un complemento que te permita programar el ESP32 utilizando el IDE de Arduino y su lenguaje de programación. Sigue uno de los siguientes tutoriales para preparar tu IDE de Arduino:
- Instrucciones para Windows: Instalación de la Placa ESP32 en IDE de Arduino
- Instrucciones para Mac y Linux: Instalación de la Placa ESP32 en IDE de Arduino
Instalación de la Biblioteca BMP085
Una de las formas más sencillas de leer presión, temperatura y altitud con el sensor BMP180 es utilizando la biblioteca BMP085 de Adafruit. Sigue los siguientes pasos para instalar la biblioteca en tu IDE de Arduino:
- Abre tu IDE de Arduino y ve a Sketch > Include Library > Manage Libraries.
- Busca «BMP085» en el cuadro de búsqueda e instala la biblioteca BMP085 de Adafruit.
- Después de instalarla, reinicia tu IDE de Arduino.
Código de Ejemplo
El código proporciona un ejemplo que muestra cómo obtener la temperatura, presión y altitud. Encuentra el código completo aquí.
Demostración
Carga el código en tu ESP32 y abre el Monitor Serial a una velocidad de baudios de 9600. Deberías obtener las lecturas del sensor, como se muestra en la figura.
Conclusión
En esta guía te hemos mostrado cómo usar el sensor barométrico BMP180 con el ESP32 para leer presión, temperatura y estimar altitud. ¡Esperamos que esta información te sea útil para tus proyectos! Si te interesa seguir aprendiendo sobre ESP32, no te pierdas los siguientes recursos:
- Curso «Learn ESP32 with Arduino IDE»
- Libro «MicroPython Programming with the ESP32»
- Artículo «Getting Started with ESP32»
- Referencia de GPIO del ESP32
- Ejemplo «ESP32 Web Server con BME280» – Mini Estación Meteorológica
Me encanta cuando encuentro instrucciones detalladas como estas para probar nuevas funcionalidades en mi ESP32. ¡Gracias por compartir esta información tan útil!
Qué bueno saber sobre el uso del sensor barómetro BMP180 con el ESP32, definitivamente tengo que probarlo. ¡Gracias por las instrucciones detalladas!
Interesante artículo, me gusta aprender sobre nuevos sensores para el ESP32! ¡Gracias por compartir!