Creëer een Raspberry Pi-temperatuurmonitor met behulp van een Sense HAT en toon regelmatige metingen op de LED-matrix.
Er zijn verschillende manieren waarop u de omgevingstemperatuur kunt controleren met behulp van een Raspberry Pi-singleboardcomputer, misschien als onderdeel van de opstelling van een weerstation. Hoewel je een externe sensor kunt gebruiken die is aangesloten op de GPIO-pinnen van de Raspberry Pi, leggen we hier uit hoe je de temperatuur kunt controleren met een Raspberry Pi die is uitgerust met een Sense HAT.
Wat is de Sense-hoed?
Een officiële Raspberry Pi-HOED (Hardware Attached on Top) add-on board, ontworpen en geproduceerd door het bedrijf Raspberry Pi, de Sense HAT werd oorspronkelijk gemaakt voor gebruik door astronauten aan boord van het internationale ruimtestation. Sinds 2015 worden twee Raspberry Pi-computers uitgerust met een Sense HAT gebruikt in wetenschappelijke experimenten, ontworpen door schoolkinderen die deelnamen aan de lopende
Astro Pi uitdaging Deze twee units zijn inmiddels vervangen door verbeterde versies gebaseerd op een Raspberry Pi 4 en uitgerust met een High Quality Camera.Hoewel het de speciale zilveren behuizing mist die is ontworpen voor gebruik in de ruimte, heeft het standaard Sense HAT-bord precies dezelfde functionaliteit. Compatibel met elk Raspberry Pi-model Met een 40-pins GPIO-header beschikt hij over een reeks ingebouwde sensoren waarmee hij de omgeving kan monitoren en ook zijn eigen oriëntatie en beweging kan detecteren. Bovendien heeft het een 8x8 RGB LED-matrix om tekst, gegevens en afbeeldingen weer te geven. Er is ook een mini-vijfweg-joystick.
Het volledige scala aan Sense HAT-sensorische functies is als volgt:
- Vochtigheid: Een STMicro HTS221-sensor met een bereik van 0 tot 100% relatieve vochtigheid, plus temperatuurdetectie van 32 °F tot 149 °F (0 °C tot 65 °C ± 2 °C).
- Barometrische druk: Een STMicro LPS25HB-sensor met een bereik van 260 tot 1260 hPa, plus temperatuurdetectie van 59 °F tot 104 °F (15 °C tot 40 °C ±0,5 °C).
- Temperatuur: Dit kan worden afgelezen van de vochtigheids- of druksensor, of worden gemeten door een gemiddelde van beide metingen te nemen.
- Gyroscoop: De STMicro LSM9DS1 IMU kan de rotatie van de Sense HAT ten opzichte van het aardoppervlak meten (en hoe snel deze draait).
- Versnellingsmeter: Een andere functie van de IMU, deze kan de versnellingskracht in meerdere richtingen meten.
- Magnetometer: Door het magnetische veld van de aarde te meten, kan de IMU de richting van het magnetische noorden bepalen en zo een kompasmeting geven.
Nu je weet wat deze multifunctionele Raspberry Pi HAT kan doen, is het tijd om met het project aan de slag te gaan.
Stap 1: Monteer de Sense HAT
Om de Sense HAT aan te sluiten, zorg er eerst voor dat uw Raspberry Pi is uitgeschakeld en losgekoppeld van de stroom. Duw vervolgens voorzichtig de Sense HAT (met de meegeleverde zwarte header-extender gemonteerd) op de 40-pins GPIO-header van de Raspberry Pi, zodat het Sense HAT-bord over het Raspberry Pi-bord wordt geplaatst. Zorg ervoor dat alle pinnen correct zijn uitgelijnd en dat beide rijen zijn verbonden. U kunt ook inschroefbare afstandhouders gebruiken om het vast te zetten.
U kunt elk standaard Raspberry Pi-model gebruiken dat een 40-pins GPIO-header heeft. Een van de belangrijkste beperkingen van een Raspberry Pi 400Het is echter zo dat de GPIO-header zich aan de achterkant van het geïntegreerde toetsenbord bevindt. Dit betekent dat de Sense HAT naar achteren is gericht, dus misschien wilt u een GPIO-verlengkabel gebruiken om deze aan te sluiten.
Stap 2: Stel de Raspberry Pi in
Zoals bij elk ander project moet u eerst een USB-toetsenbord en -muis aansluiten sluit uw Raspberry Pi aan op een monitor of tv. Je zou ook een microSD-kaart moeten plaatsen met het standaard Raspberry Pi-besturingssysteem erop. Als je dit nog niet hebt gedaan, ga dan naar hoe je een besturingssysteem op een Raspberry Pi installeert. U bent dan klaar om de stroom in te schakelen.
Als alternatief kunt u uw Raspberry Pi met Sense HAT in de headless-modus gebruiken, zonder dat er een monitor is aangesloten maak op afstand verbinding met de Raspberry Pi via SSH vanaf een andere computer of apparaat. Als je dit doet, kun je de Thonny Python IDE niet gebruiken. Buy kan nog steeds programma's bewerken met de nano-teksteditor en ze uitvoeren vanaf de opdrachtregel.
De Sense HAT-firmware moet standaard worden geïnstalleerd. Om dit nogmaals te controleren, opent u een Terminal-venster en voert u het volgende in:
sudo apt install sense-hat
Als het pakket zojuist opnieuw is geïnstalleerd, start u de Raspberry Pi opnieuw op:
sudo reboot
Stap 3: Begin met programmeren in Python
Hoewel je de Raspberry Pi Sense HAT kunt gebruiken met de op Scratch-blokken gebaseerde programmeertaal, gebruiken we Python om de sensormetingen te lezen en weer te geven.
De Thonny IDE (geïntegreerde ontwikkelomgeving) is een goede manier om Python-programmering op een Raspberry Pi uit te voeren, omdat deze veel functionaliteit heeft, waaronder handige foutopsporingsfuncties. Ga in de desktop-GUI van Raspberry Pi OS naar Menu (frambozenicoon linksboven) > Programmeren > Thonny IDE om het te lanceren.
Stap 4: Voer een temperatuurmeting uit
Voer in het hoofdvenster van de Thonny IDE de volgende coderegels in:
from sense_hat import SenseHatsense = SenseHat()
sense.clear()
temp = sense.get_temperature()
print(temp)
De eerste regel importeert het SenseHat klasse uit de sense_hoed Python-bibliotheek (die vooraf is geïnstalleerd in Raspberry Pi OS). Dit wordt vervolgens toegewezen aan de gevoel variabel. De derde regel maakt de LED-matrix van de Sense HAT leeg.
Vervolgens nemen we de temperatuurmeting en printen deze naar het Shell-gebied van de Thonny IDE. Dit is in graden Celsius, dus misschien wil je het eerst omrekenen naar Fahrenheit:
temp = (sense.get_temperature() * 1.8 + 32)
De uitlezing van de temperatuursensor bevat meerdere cijfers achter de komma. Dus we zullen de gebruiken ronde functie om het af te ronden op één decimaal:
temp = round(temp, 1)
De sense.get_temperature() functie leest de temperatuursensor die in de vochtigheidssensor is ingebouwd. Als alternatief kunt u de temperatuur van de druksensor meten sense.get_temperature_from_druk() of neem zelfs beide metingen en bereken een gemiddeld gemiddelde (door ze op te tellen en te delen door twee).
Stap 5: Toon de temperatuur op de Sense HAT
Het afdrukken van een enkele temperatuurmeting naar de Python Shell is een beetje saai, dus laten we in plaats daarvan regelmatig een nieuwe meting doen en deze weergeven op de RGB LED-matrix van de Sense HAT. Om een scrollend tekstbericht weer te geven, gebruiken we de toon bericht functie. We gebruiken ook een terwijl: waar lus om elke 10 seconden een nieuwe meting te doen, waarvoor we de slaap functie uit de tijd bibliotheek.
Hier is het volledige programma:
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)
Voer deze code uit en je ziet elke nieuwe temperatuurmeting door de LED-matrix scrollen. Probeer op de Sense HAT te blazen om te zien of de temperatuur verandert.
Temperatuurmetingen kunnen worden beïnvloed door warmte die wordt overgedragen door de CPU van de Raspberry Pi er net onder, dus een aanpassing kan nodig zijn om een nauwkeuriger cijfer te verkrijgen. Een andere oplossing is om een stapelkop te gebruiken om de Sense HAT hoger boven de Raspberry Pi te plaatsen.
Gebruik een Raspberry Pi om de temperatuur te controleren
Hoewel u voor dit project ook een stand-alone temperatuursensor zou kunnen gebruiken, maakt de Sense HAT het gemakkelijk om de temperatuur te controleren met uw Framboos Pi. U kunt het ook gebruiken om tal van andere sensormetingen uit te voeren, zoals barometrische druk en relatieve vochtigheid, en deze op de LED weergeven Matrix.