Raspberry Pi – Bus I2C y Sensor BME 680

En este caso usaremos el sensor ambiental de Bosch BME680

Para ello usaremos la placa que montamos hace unos días que al final poco a poco será una estación meteorológica con conexión a nuestra domótica vía MQTT

El esquema es el siguiente ( de momento no usaremos la pantalla OLED )

En esta ocasión empezaremos a trabajar con el bus I2C , para ello colocaremos dos resistencias de 33K de pull-up en la líneas de SDA y SCL

Lo primero es activar el bus I2C con raspi-config

learn_raspberry_pi_advancedopt.png

learn_raspberry_pi_i2c.png

learn_raspberry_pi_wouldyoukindly.png

learn_raspberry_pi_i2ckernel.png

Instalaremos i2cdetect que esta en el paquete i2c-tools

Comprobaremos que nos detecta el dispositivo en el bus I2C

En este caso ha detectado un dispositivo en la dirección 0x77 , que si miramos aqui el manual veremos que es la dirección por defecto.

By default, the i2c address is 0x77. If you add a jumper from SDO to GND, the address will change to 0x76

Para probar la respuesta podemos usar

Nos devolverá el valor de esa posición

En la raiz del proyecto ejecutar

Y para configurar seguir los pasos que nos va preguntando

El contenido del fichero Program.cs seria el siguiente

Lo compilaremos y subiremos a nuestra Raspberry Pi

Y lo ejecutaremos con

Veremos como empieza a mostrarnos las lecturas cada 30 segundos.

Problemas surgidos durante la programación del dispositivo , perdí un par de horas bien buenas debido a que al ejecutar el código daba un error genérico 121 , al final después de buscar y probar era una supina tonteria , por lo visto los señores de Microsoft y a los señores de Bosch no tienen en mismo concepto de default address ,

Al final la solución esta en forzar la dirección del dispositivo

ya que la asignada por defecto en Microsoft apunta entre Cuenca y Badajoz , aunque en el código de GitHub es correcto , en las librerías no lo es.

Con esto y un bizcocho ………….

BONUS :

Con este comando veremos la configuración actual del GPIO

Si queremos cambiar la configuración del bus I2C lo haremos en el fichero config.txt

Habilitaremos estas estas líneas y añadiremos las que falten

Deja un comentario