Nota
¡Hola, bienvenido a la Comunidad de Entusiastas de Raspberry Pi, Arduino y ESP32 de SunFounder en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirte?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Preestrenos exclusivos: Accede anticipadamente a anuncios de nuevos productos y adelantos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy mismo!
Lección 20: Módulo Sensor de Temperatura, Humedad y Presión (BMP280)
En esta lección, aprenderás a conectar y leer datos de un sensor BMP280 que mide temperatura, humedad y presión utilizando un Raspberry Pi. Configurarás el sensor y escribirás un script en Python para medir datos ambientales, incluyendo temperatura, presión atmosférica y altitud.
Componentes Requeridos
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ARTÍCULOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Universal Maker Sensor |
94 |
También puedes comprarlos por separado desde los enlaces a continuación.
Introducción del Componente |
Enlace de compra |
|---|---|
Raspberry Pi 5 |
|
Cableado
Instalar la Biblioteca
Nota
La biblioteca adafruit-circuitpython-bmp280 depende de Blinka, por lo que asegúrate de que Blinka esté instalada. Para instalar bibliotecas, consulta: Instalar Adafruit_Blinka (CircuitPython) - Opcional.
Antes de instalar la biblioteca, asegúrate de que el entorno virtual de Python esté activado:
source ~/env/bin/activate
Instalar la biblioteca adafruit-circuitpython-bmp280:
pip install adafruit-circuitpython-bmp280
Ejecutar el Código
Nota
Asegúrate de haber instalado la biblioteca de Python requerida para ejecutar el código según los pasos de «Instalar la Biblioteca».
Antes de ejecutar el código, asegúrate de haber activado el entorno virtual de Python con Blinka instalado. Puedes activar el entorno virtual usando un comando como este:
source ~/env/bin/activate
Encuentra el código para esta lección en el directorio
universal-maker-sensor-kit-main/pi/, o copia y pega directamente el código abajo. Ejecuta el código ejecutando los siguientes comandos en el terminal:python 22_touch_sensor_module.py
import time
import board
import adafruit_bmp280
# Crea el objeto sensor, comunicándose a través del bus I2C del tablero
i2c = board.I2C() # usa board.SCL y board.SDA
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c,address=0x76)
# Cambia esto para que coincida con la presión a nivel del mar en tu ubicación (hPa)
bmp280.sea_level_pressure = 1013.25
try:
while True:
print("\nTemperature: %0.1f C" % bmp280.temperature)
print("Pressure: %0.1f hPa" % bmp280.pressure)
print("Altitude = %0.2f meters" % bmp280.altitude)
time.sleep(2)
except KeyboardInterrupt:
print("Salir") # Salir con CTRL+C
Análisis del Código
Configurando el sensor
Se importan las bibliotecas necesarias y se crea un objeto para interactuar con el sensor BMP280.
board.I2C()configura la comunicación I2C.adafruit_bmp280.Adafruit_BMP280_I2C(i2c, address=0x76)inicializa el sensor BMP280 con su dirección I2C.Para más detalles sobre la biblioteca
adafruit_bmp280, consulta adafruit/Adafruit_CircuitPython_BMP280.import time import board import adafruit_bmp280 i2c = board.I2C() bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c, address=0x76)
Configurando la presión a nivel del mar
Establece la propiedad
sea_level_pressuredel objeto BMP280. Este valor es necesario para calcular la altitud.bmp280.sea_level_pressure = 1013.25
Leyendo los datos en un bucle
Usa un bucle
while Truepara leer continuamente los datos del sensor.bmp280.temperature,bmp280.pressureybmp280.altitudeleen la temperatura, la presión y la altitud, respectivamente.time.sleep(2)pausa el bucle durante 2 segundos.try: while True: print("\nTemperature: %0.1f C" % bmp280.temperature) print("Pressure: %0.1f hPa" % bmp280.pressure) print("Altitude = %0.2f meters" % bmp280.altitude) time.sleep(2) except KeyboardInterrupt: print("Exit")
Manejo de interrupciones
El bloque
tryyexcept KeyboardInterrupt:permite que el programa salga de manera ordenada cuando se presiona CTRL+C.try: # código del bucle while aquí except KeyboardInterrupt: print("Exit")