Mise en oeuvre du capteur de température de précision STTS751

Cet exemple montre comment mesurer la température (en degrés celsius) toutes les secondes à l’aide du capteur MEMS STTS751 de STMicroelectronics.

Matériel requis

  1. La carte NUCLEO-WB55
  2. Une carte d’extension I2C équipée du capteur MEMS STTS751 (par exemple la X-NUCLEO-IKS01A3)

Le code MicroPython

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

Le fichier stts751.py est la bibliothèque contenant les classes pour gérer ce capteur. Il doit être copié dans le répertoire du disque USB virtuel associé à la NUCLEO-WB55 : PYBFLASH.

Éditez maintenant le script main.py et copiez-y le code qui suit :

# Objet du script :
# Mesure de température toutes les secondes.
# Allume ou éteint les LED de la carte selon les valeurs des températures, les affiche sur le port série

# Cet exemple nécessite un shield X-NUCLEO IKS01A3 pour le capteur MEMS de température STTS751.

from machine import I2C
import stts751
import pyb
import time

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

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

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

sensor = stts751.STTS751(i2c)

led_bleu = pyb.LED(1)
led_vert = pyb.LED(2)
led_rouge = pyb.LED(3)

while True:
	time.sleep_ms(1000)
	temp = round(sensor.temperature(),1)
 
	print("Température : " + str(temp) + "°C (", end='')

	if temp > 25 :
		led_rouge.on()
		print("chaud)")
	elif temp > 18 and temp <= 25 :
		led_vert.on()
		print("confortable)")
	else:
		led_bleu.on()
		print("froid)")

	led_rouge.off()
	led_vert.off()
	led_bleu.off()