2023-10-25 02:50 Temps de lecture : 10 min

Comment utiliser un Raspberry Pi pour surveiller les températures avec un Sense HAT

Surveillance de la température avec un Raspberry Pi et son Sense HAT

Il existe diverses méthodes pour observer la température ambiante en utilisant un ordinateur monocarte Raspberry Pi, ce qui pourrait s'avérer utile, par exemple, pour la mise en place d'une station météorologique personnelle. Bien qu'il soit possible d'utiliser un capteur externe relié aux broches GPIO du Raspberry Pi, nous allons nous concentrer ici sur l'utilisation du Sense HAT pour cette tâche.

Qu'est-ce que le Sense HAT?

Crédit d'image: Raspberry Pi

Le Sense HAT, une carte d'extension officielle (Hardware Attached on Top) conçue et fabriquée par Raspberry Pi, a été initialement conçue pour les astronautes à bord de la Station spatiale internationale. Depuis 2015, deux Raspberry Pi équipés de Sense HAT ont servi dans des expériences scientifiques initiées par des écoliers participant au défi Astro Pi. Ces unités ont été remplacées depuis par des versions améliorées basées sur le Raspberry Pi 4 et dotées d'une caméra haute qualité.

Crédit d'image: Raspberry Pi

Bien qu'il n'ait pas le boîtier argenté spécial conçu pour l'espace, le Sense HAT standard possède les mêmes fonctionnalités. Compatible avec tout modèle Raspberry Pi muni d'un connecteur GPIO à 40 broches, il intègre divers capteurs pour la surveillance de l'environnement, ainsi que la détection de son orientation et de ses mouvements. De plus, il dispose d'une matrice LED RVB 8x8 pour l'affichage de texte, de données et d'images, ainsi que d'un mini joystick à cinq directions.

Voici la liste complète des fonctions du Sense HAT :

  • Humidité : Capteur STMicro HTS221, plage d'humidité relative de 0 à 100%, avec détection de température de 0°C à 65°C (± 2°C).
  • Pression barométrique : Capteur STMicro LPS25HB, plage de 260 à 1 260 hPa, avec détection de température de 15°C à 40°C (± 0,5°C).
  • Température : Mesurée via les capteurs d'humidité ou de pression, ou en faisant la moyenne des deux.
  • Gyroscope : L'IMU STMicro LSM9DS1 mesure la rotation du Sense HAT par rapport à la surface terrestre.
  • Accéléromètre : Mesure la force d'accélération dans plusieurs directions, fonction de l'IMU.
  • Magnétomètre : Détermine la direction du nord magnétique grâce au champ magnétique terrestre.

Maintenant que vous avez une idée de ce que ce HAT polyvalent peut faire, passons à la pratique.

Étape 1 : Installation du Sense HAT

Avant toute chose, assurez-vous que votre Raspberry Pi est éteint et déconnecté de l'alimentation. Ensuite, fixez délicatement le Sense HAT sur le connecteur GPIO 40 broches du Raspberry Pi, de manière à ce que la carte soit bien positionnée au-dessus. Assurez-vous que toutes les broches sont correctement alignées et connectées. Vous pouvez aussi utiliser des entretoises pour le fixer.

Le Sense HAT est compatible avec tous les modèles de Raspberry Pi disposant d'un connecteur GPIO à 40 broches. Cependant, sur un Raspberry Pi 400, le connecteur GPIO se trouve à l'arrière du clavier intégré, ce qui oriente le Sense HAT vers l'arrière. Dans ce cas, vous pourriez envisager d'utiliser un câble d'extension GPIO.

Étape 2 : Configuration du Raspberry Pi

Comme pour tout nouveau projet, connectez un clavier et une souris USB, puis reliez votre Raspberry Pi à un écran ou une télévision. Assurez-vous également qu'une carte microSD contenant le système d'exploitation Raspberry Pi OS soit insérée. Si ce n'est pas encore fait, consultez le guide pour l'installation de ce système sur votre Raspberry Pi. Une fois ces étapes complétées, vous pouvez mettre l'appareil sous tension.

Il est aussi possible d'utiliser le Raspberry Pi et le Sense HAT en mode "sans tête", sans écran connecté, et de vous connecter à distance via SSH depuis un autre ordinateur ou appareil. Dans ce cas, vous ne pourrez pas utiliser l'IDE Thonny, mais vous pourrez éditer des programmes avec l'éditeur de texte nano et les exécuter en ligne de commande.

Le logiciel du Sense HAT devrait être installé par défaut. Pour le vérifier, ouvrez un terminal et tapez :

 sudo apt install sense-hat

Si le paquet vient d'être installé, redémarrez votre Raspberry Pi :

 sudo reboot

Étape 3 : Démarrer la programmation en Python

Bien que le Sense HAT puisse être utilisé avec Scratch (programmation par blocs), nous allons utiliser Python pour lire et afficher les données des capteurs.

L'IDE Thonny est idéal pour programmer en Python sur un Raspberry Pi, grâce à ses fonctionnalités comme le débogage. Pour lancer Thonny depuis le bureau de Raspberry Pi OS, allez dans le menu (icône framboise en haut à gauche) > Programmation > Thonny IDE.

Étape 4 : Mesure de la température

Dans la fenêtre principale de Thonny, saisissez les lignes de code suivantes :

 from sense_hat import SenseHat
 sense = SenseHat()
 sense.clear()
 temp = sense.get_temperature()
 print(temp) 

La première ligne importe la classe SenseHat de la bibliothèque sense_hat. Cette classe est ensuite assignée à la variable "sense". La troisième ligne efface la matrice LED du Sense HAT.

La lecture de la température est ensuite réalisée et affichée dans la zone "Shell" de Thonny. La valeur est en degrés Celsius. Si vous souhaitez l'afficher en Fahrenheit, utilisez la conversion suivante :

 temp = (sense.get_temperature() * 1.8 + 32) 

La température mesurée comporte plusieurs décimales. Utilisons la fonction `round` pour arrondir à une décimale :

 temp = round(temp, 1) 

La fonction `sense.get_temperature()` lit la température depuis le capteur intégré au capteur d'humidité. Vous pouvez aussi lire la température depuis le capteur de pression avec `sense.get_temperature_from_pressure()`, ou même calculer la moyenne des deux.

Étape 5 : Affichage de la température sur le Sense HAT

Afficher une température dans le Shell de Python est peu pratique. Nous allons donc réaliser une nouvelle mesure régulièrement et l'afficher sur la matrice LED RVB du Sense HAT. Pour afficher du texte en défilement, nous utiliserons la fonction `show_message`. Une boucle `while True` sera utilisée pour une lecture toutes les 10 secondes, avec la fonction `sleep` de la bibliothèque `time`.

Voici le programme complet :

 from sense_hat import SenseHat
 from time import sleep
 sense = SenseHat()
 sense.clear()
 while True:
    temp = (sense.get_temperature() * 1.8 + 32)
    temp = round(temp, 1)
    message = "Temp: " + str(temp)
    sense.show_message(message)
    sleep (10) 

Exécutez le code, et vous verrez la température défiler sur la matrice LED. Testez en soufflant sur le Sense HAT pour voir la température varier.

Les mesures peuvent être affectées par la chaleur dégagée par le processeur du Raspberry Pi, juste en dessous. Un ajustement peut être nécessaire pour plus de précision. L'utilisation d'un connecteur d'empilage peut permettre de relever le Sense HAT au-dessus du Raspberry Pi.

Conclusion : Surveiller la température avec un Raspberry Pi

Bien qu'un capteur de température autonome puisse suffire, le Sense HAT facilite la surveillance de la température avec votre Raspberry Pi. Il vous permet aussi d'effectuer de nombreuses autres mesures, comme la pression barométrique et l'humidité, et de les afficher sur la matrice LED.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.