Capteur de pression, température et humidité BME280

Ce tutoriel explique comment mettre en oeuvre un module Grove BME280 sur bus I2C en MicroPython. Le capteur BME280 de Bosch mesure la pression atmosphérique, la température et l’humidité.

Matériel requis

  1. Une carte d’extension de base Grove
  2. La carte NUCLEO-WB55
  3. Un module Grove BME280

Le module BME280 :

Grove bme280

Crédit image : Seeed Studio

Branchez le module sur l’un des connecteurs I2C du Grove base shield.

Le code MicroPython

Ce code est adapté de l’exemple fourni ici.

Les scripts présentés ci-après sont disponibles dans la zone de téléchargement.

Il faut ajouter le fichier bme280.py dans le répertoire du périphérique PYBLASH. Editez maintenant le script main.py et copiez-y le code suivant :

# Exemple adapté de https://github.com/catdog2/mpy_bme280_esp8266
# Objet du script : Mise en oeuvre du module grove I2C capteur de pression,
# température et humidité basé sur le BME280

from time import sleep_ms
from machine import I2C
import bme280

# On utilise l'I2C n°1 de la carte NUCLEO-WB55 pour communiquer avec le capteur
i2c = I2C(1)

# Pause d'une seconde pour laisser à l'I2C le temps de s'initialiser
sleep_ms(1000)

# Liste des adresses I2C des périphériques présents
print("Adresses I2C utilisées : " + str(i2c.scan()))

# Instanciation du capteur
bme = bme280.BME280(i2c=i2c)

while True:

	# Temporisation d'une seconde
	sleep_ms(1000)
	
	# Lecture des valeurs mesurées
	bme280data = bme.values
	
	# Séparation et formattage (arrondis) des mesures
	temp = round(bme280data[0],1)
	press = int(bme280data[1])
	humi = int(bme280data[2])

	# Affichage des mesures
	print('=' * 40)  # Imprime une ligne de séparation
	print("Température : " + str(temp) + " °C")
	print("Pression : " + str(press) + " hPa")
	print("Humidité relative : " + str(humi) + " %")

Sortie sur le port série de l’USB USER

Appuyez sur CTRL+D dans le terminal PuTTY et observez les valeurs qui défilent :

Grove - BME280 sortie