AcademiaTécnico

Sensores I2C: lee temperatura, humedad y presión

Activa I2C, detecta un sensor BME280 y lee datos en vivo con Python.

NivelTécnico
Tiempo30 min
Costo est.~$29
Pasos5

I2C permite que decenas de sensores compartan dos cables (SDA y SCL). Apréndelo una vez y podrás agregar pantallas, ADC, IMU y sensores ambientales a cualquier proyecto.

Video tutorial

Video de Sam, insertado desde YouTube. Los pasos escritos abajo son nuestros y coinciden con la lista de piezas.

Pasos de la misión

  1. Activa I2C

    Corre sudo raspi-config → Interface Options → I2C → Enable y reinicia.

  2. Conecta el sensor

    VIN a 3V3 (pin 1), GND al pin 6, SDA al pin 3 y SCL al pin 5.

  3. Detéctalo

    Instala i2c-tools y corre i2cdetect -y 1. Un BME280 aparece en la dirección 76 o 77.

  4. Instala la librería

    Dentro de tu entorno virtual instala la librería BME280 de Adafruit.

  5. Lee los datos

    Corre el script. Guarda los valores en un archivo, un panel o el proyecto de estación meteorológica.

Código

sudo apt install -y i2c-tools
i2cdetect -y 1
source ~/venv/bin/activate
pip install adafruit-circuitpython-bme280
import time, board
from adafruit_bme280 import basic as adafruit_bme280

i2c = board.I2C()
bme = adafruit_bme280.Adafruit_BME280_I2C(i2c, address=0x76)  # or 0x77

while True:
    print(f"{bme.temperature:.1f} C  {bme.humidity:.0f}%  {bme.pressure:.1f} hPa")
    time.sleep(2)

Code comments are in English, like most libraries and docs — a good habit for makers.

Preguntas

i2cdetect no muestra nada

Revisa que SDA/SCL no estén invertidos, que el sensor reciba 3V3 y que I2C esté activo. Algunas placas baratas son BMP280 (sin humedad).