Créez un moniteur de température Raspberry Pi à l'aide d'un Sense HAT et affichez des lectures régulières sur sa matrice LED.
Il existe plusieurs façons de surveiller la température ambiante à l'aide d'un ordinateur monocarte Raspberry Pi, peut-être dans le cadre de la configuration d'une station météo. Bien que vous puissiez utiliser un capteur externe connecté aux broches GPIO du Raspberry Pi, nous expliquerons ici comment surveiller la température avec un Raspberry Pi équipé d'un Sense HAT.
Qu’est-ce que le Sense HAT?
Un officiel CHAPEAU Raspberry Pi (Hardware Attached on Top) conçue et produite par la société Raspberry Pi, le Sense HAT a été créé à l'origine pour être utilisé par les astronautes à bord de la Station spatiale internationale. Depuis 2015, deux ordinateurs Raspberry Pi équipés d'un Sense HAT ont été utilisés dans des expériences scientifiques conçues par des écoliers entrés dans le cursus en cours. Astro Pi défi Ces deux unités ont depuis été remplacées par des versions améliorées basées sur un Raspberry Pi 4 et équipées d'une caméra de haute qualité.
Bien qu'il lui manque le boîtier argenté spécial conçu pour une utilisation dans l'espace, la carte Sense HAT standard a exactement les mêmes fonctionnalités. Compatible avec n'importe quel Modèle Raspberry Pi avec un connecteur GPIO à 40 broches, il dispose d'un ensemble de capteurs intégrés qui lui permettent de surveiller l'environnement et également de détecter sa propre orientation et ses mouvements. De plus, il dispose d'une matrice LED RVB 8x8 pour afficher du texte, des données et des images. Il existe également un mini joystick à cinq directions.
La gamme complète des fonctions sensorielles de Sense HAT est la suivante :
- Humidité: Un capteur STMicro HTS221 avec une plage d'humidité relative de 0 à 100 %, plus une détection de température de 32°F à 149°F (0°C à 65°C ± 2°C).
- Pression barométrique: Un capteur STMicro LPS25HB avec une plage de 260 à 1 260 hPa, plus une détection de température de 59°F à 104°F (15°C à 40°C ±0,5°C).
- Température: Cela peut être lu à partir du capteur d’humidité ou de pression, ou mesuré en faisant la moyenne des deux lectures.
- Gyroscope: L'IMU STMicro LSM9DS1 peut mesurer la rotation du Sense HAT par rapport à la surface de la Terre (et à quelle vitesse il tourne).
- Accéléromètre : Autre fonction de l'IMU, celle-ci peut mesurer la force d'accélération dans plusieurs directions.
- Magnétomètre : En détectant le champ magnétique terrestre, l’IMU peut déterminer la direction du nord magnétique et ainsi donner une lecture à la boussole.
Maintenant que vous savez ce que ce Raspberry Pi HAT polyvalent peut faire, il est temps de commencer le projet.
Étape 1: Montez le Sense HAT
Pour connecter le Sense HAT, assurez-vous d’abord que votre Raspberry Pi est éteint et déconnecté de l’alimentation. Ensuite, poussez soigneusement le Sense HAT (avec son rallonge d'en-tête noir fourni) sur l'en-tête GPIO à 40 broches du Raspberry Pi afin que la carte Sense HAT soit positionnée sur la carte Raspberry Pi. Assurez-vous que toutes les broches sont correctement alignées et que les deux rangées sont connectées. Vous pouvez également utiliser des entretoises à visser pour le sécuriser.
Vous pouvez utiliser n’importe quel modèle Raspberry Pi standard doté d’un en-tête GPIO à 40 broches. L'un des principales limitations d'un Raspberry Pi 400Cependant, son en-tête GPIO est situé à l'arrière du clavier intégré. Cela signifie que le Sense HAT sera orienté vers l'arrière, vous souhaiterez donc peut-être utiliser un câble d'extension GPIO pour le connecter.
Étape 2: configurer le Raspberry Pi
Comme pour tout autre projet, vous devez brancher un clavier et une souris USB, puis connectez votre Raspberry Pi à un moniteur ou un téléviseur. Vous devriez également avoir une carte microSD insérée avec le système d'exploitation Raspberry Pi standard. Si vous ne l'avez pas déjà fait, consultez comment installer un système d'exploitation sur un Raspberry Pi. Vous êtes alors prêt à mettre sous tension.
Alternativement, vous pouvez utiliser votre Raspberry Pi avec Sense HAT en mode sans tête, sans moniteur connecté et connectez-vous au Raspberry Pi à distance en utilisant SSH depuis un autre ordinateur ou appareil. Si vous faites cela, vous ne pourrez pas utiliser l'IDE Thonny Python, mais vous pourrez toujours éditer des programmes à l'aide de l'éditeur de texte nano et les exécuter à partir de la ligne de commande.
Le micrologiciel Sense HAT doit être installé par défaut. Pour vérifier, ouvrez une fenêtre de terminal et saisissez :
sudo apt install sense-hat
Ensuite, si le package vient d'être installé, redémarrez le Raspberry Pi :
sudo reboot
Étape 3: Démarrer la programmation en Python
Bien que vous puissiez utiliser le Raspberry Pi Sense HAT avec le langage de programmation basé sur des blocs Scratch, nous utiliserons Python pour lire et afficher les lectures de ses capteurs.
L'IDE Thonny (environnement de développement intégré) est un bon moyen de programmer Python sur un Raspberry Pi, car il possède de nombreuses fonctionnalités, notamment des fonctionnalités de débogage utiles. Dans l’interface graphique de bureau du système d’exploitation Raspberry Pi, accédez à Menu (icône framboise en haut à gauche) > Programmation > EDI Thonny pour le lancer.
Étape 4: Prenez une lecture de la température
Dans la fenêtre principale de l'IDE Thonny, saisissez les lignes de code suivantes :
from sense_hat import SenseHatsense = SenseHat()
sense.clear()
temp = sense.get_temperature()
print(temp)
La première ligne importe le Chapeau Sens classe de la sens_chapeau Bibliothèque Python (préinstallée dans Raspberry Pi OS). Celui-ci est ensuite attribué au sens variable. La troisième ligne efface la matrice LED du Sense HAT.
Nous prenons ensuite la lecture de la température et l'imprimons dans la zone Shell de l'IDE Thonny. C'est en degrés Celsius, vous voudrez peut-être d'abord le convertir en Fahrenheit :
temp = (sense.get_temperature() * 1.8 + 32)
La lecture du capteur de température comportera plusieurs chiffres après la virgule. Nous utiliserons donc le rond fonction pour l'arrondir à une seule décimale :
temp = round(temp, 1)
Le sens.get_temperature() La fonction lit le capteur de température intégré au capteur d'humidité. Alternativement, vous pouvez prendre une lecture de température à partir du capteur de pression avec sense.get_temperature_from_pression() ou même prendre les deux lectures et calculer une moyenne (en les additionnant et en divisant par deux).
Étape 5: Afficher la température sur le Sense HAT
Imprimer une seule lecture de température sur Python Shell est un peu ennuyeux, alors prenons régulièrement une nouvelle lecture et montrons-la sur la matrice LED RVB du Sense HAT. Pour afficher un message texte défilant, nous utilisons le voir le message fonction. Nous utiliserons également un tandis que: vrai boucle pour continuer à prendre une nouvelle lecture toutes les 10 secondes - pour laquelle nous utilisons le dormir fonction à partir du temps bibliothèque.
Voici le programme complet :
from sense_hat import SenseHat
from time import sleepsense = SenseHat()
sense.clear()
whileTrue:
temp = (sense.get_temperature() * 1.8 + 32)
temp = round(temp, 1)
message = "Temp: " + str(temp)
sense.show_message(message)
sleep (10)
Exécutez ce code et vous verrez chaque nouvelle lecture de température défiler sur la matrice LED. Essayez de souffler sur le Sense HAT pour voir si la température change.
Les lectures de température peuvent être affectées par la chaleur transférée depuis le processeur du Raspberry Pi juste en dessous, un ajustement peut donc être nécessaire pour obtenir un chiffre plus précis. Une autre solution consiste à utiliser un en-tête d'empilage pour élever le Sense HAT plus haut au-dessus du Raspberry Pi.
Utilisez un Raspberry Pi pour surveiller la température
Bien que vous puissiez utiliser un capteur de température autonome pour ce projet, le Sense HAT facilite la surveillance de la température avec votre Tarte aux framboises. Vous pouvez également l'utiliser pour prendre une multitude d'autres mesures de capteur, telles que la pression barométrique et l'humidité relative, et les afficher sur sa LED. matrice.