Hoe een Raspberry Pi gebruiken om temperaturen te meten met een Sense HAT
Er zijn verschillende manieren waarop je de omgevingstemperatuur kunt controleren met een Raspberry Pi single-board computer, bijvoorbeeld als onderdeel van een weerstation. Hoewel je een externe sensor kunt gebruiken die op de GPIO-pinnen van de Raspberry Pi is aangesloten, 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 HAT?
Afbeelding Credit: Raspberry Pi
De Sense HAT is een officieel Raspberry Pi HAT (Hardware Attached on Top) add-on board, ontworpen en geproduceerd door het bedrijf Raspberry Pi. Het is oorspronkelijk gemaakt voor gebruik door astronauten aan boord van het International Space Station. Sinds 2015 zijn twee Raspberry Pi-computers uitgerust met een Sense HAT gebruikt in wetenschappelijke experimenten ontworpen door schoolkinderen die meededen aan de Astro Pi uitdaging Deze twee eenheden zijn sindsdien vervangen door verbeterde versies op basis van een Raspberry Pi 4 en uitgerust met een High Quality Camera.
Afbeelding Credit: Raspberry Pi
Het Sense HAT-bord mist weliswaar de unieke zilveren behuizing die bedoeld is voor buitenaards gebruik, maar behoudt identieke functionele mogelijkheden wanneer het wordt gekoppeld aan elk Raspberry Pi-model met een 40-pins GPIO-interface. Dit veelzijdige apparaat beschikt over een assortiment geïntegreerde sensoren die uitgebreide monitoring van de directe omgeving mogelijk maken, evenals detectie van de eigen oriëntatie en beweging. Verder is het uitgerust met een 8x8 RGB LED matrix voor visuele presentatie van informatie zoals tekst, cijfers en afbeeldingen. Daarnaast bevat het ontwerp een compacte joystick met vijf standen.
De volledige reeks functies voor de Sense HAT, die betrekking hebben op detectie en perceptie, kan als volgt worden samengevat:
Het apparaat maakt gebruik van een STMicro HTS221 sensor die zowel relatieve vochtigheid als temperatuur kan meten binnen een bereik van 0-100% relatieve vochtigheid en 32°F tot 149°F (0°C tot 65°C ± 2°C) voor temperatuur.
De LPS25HB barometer van STMicro is uitgerust met een meetbereik van 260 tot 1260 hPa en kan temperatuur meten binnen een bereik van 59 tot 104°F (15 tot 40°C met een nauwkeurigheid van ± 0,5°C).
De temperatuur kan worden verkregen door de uitlezing van een vochtigheids- of druksensor, of kan worden berekend door de gemiddelde waarde van beide uitlezingen te nemen.
De STMicro LSM9DS1 IMU, geïntegreerd in de Sense HAT van de Raspberry Pi, is in staat om de oriëntatie en hoeksnelheid van het apparaat ten opzichte van het aardoppervlak te meten, evenals de rotatiesnelheid.
De versnellingsmeter is een onderdeel van de traagheidsmetingseenheid (IMU) die versnellingskrachten in verschillende richtingen kan meten.
De magnetometer in de traagheidsmetingseenheid (IMU) kan het magnetische veld van de aarde detecteren, waardoor de oriëntatie van het magnetische noorden kan worden vastgesteld en het kompas kan worden afgelezen.
Met een goed begrip van de mogelijkheden en potentiële toepassingen van de veelzijdige Raspberry Pi HAT, is het nu tijd om te beginnen met het implementatieproces voor uw respectieve projecten.
Stap 1: Monteer de Sense HAT
Om de Sense HAT op de juiste manier op een Raspberry Pi te bevestigen, moet je ervoor zorgen dat deze is uitgeschakeld en losgekoppeld van elke elektriciteitsbron. Plaats vervolgens de Sense HAT, compleet met de meegeleverde zwarte headerverlenger, voorzichtig op de 40-pins GPIO-header van de Raspberry Pi. Zorg ervoor dat de Sense HAT correct is uitgelijnd bovenop de Raspberry Pi, waarbij alle verbindingen tussen de twee borden zijn gemaakt. Voor extra veiligheid kun je indraaisteunen gebruiken.
Je kunt elk conventioneel Raspberry Pi-model met een 40-pins GPIO-header (General Purpose Input/Output) gebruiken voor dit project. Een belangrijke beperking van het Raspberry Pi 400-model is echter dat de GPIO-header aan de achterkant naast het geïntegreerde toetsenbord zit. Daardoor zal de Sense HAT tijdens gebruik in omgekeerde richting worden geplaatst. Om dit probleem op te lossen, is het aan te raden een verlengkabel te gebruiken om de verbinding tussen de GPIO-header en de Sense HAT tot stand te brengen.
Stap 2: De Raspberry Pi instellen
Volg deze stappen om de Raspberry Pi te gebruiken:1. Sluit een USB-toetsenbord en muis aan op het apparaat.2. Sluit de Raspberry Pi aan op een beeldscherm of televisie.3. Plaats een microSD-kaart met het standaard Raspberry Pi besturingssysteem in de sleuf van het apparaat. Als dit nog niet gebeurd is, raadpleeg dan de instructies voor het installeren van een besturingssysteem op een Raspberry Pi.4. Zet de Raspberry Pi aan door elektriciteit te leveren aan de voedingsbron.
Als alternatief kan iemand zijn Raspberry Pi geïntegreerd met Sense HAT gebruiken in een omgeving zonder monitor door op afstand toegang te krijgen via Secure Shell (SSH) vanaf een extra computer of apparaat.In een dergelijk scenario heeft de gebruiker niet de mogelijkheid om de Thonny Python Integrated Development Environment (IDE) te gebruiken, maar is hij in staat om bestanden te bewerken met de nano teksteditor en programma’s uit te voeren via de terminalopdrachten.
Om te controleren of de Sense HAT-firmware vooraf is geïnstalleerd op uw Raspberry Pi, kunt u een terminalemulatortoepassing openen zoals “Terminal” of “xterm” uit het menu Toepassingen in Lubuntu en vervolgens het commando “sudo dmesg | grep sensehat” typen. Als er geen uitvoer verschijnt, betekent dit dat de firmware met succes is geïnstalleerd. Als er echter foutmeldingen verschijnen, moet u de firmware mogelijk handmatig installeren met behulp van de instructies eerder in dit gedeelte.
sudo apt install sense-hat
Als het pakket onlangs op je Raspberry Pi is geïnstalleerd, is het aan te raden om het systeem opnieuw op te starten om ervoor te zorgen dat alle noodzakelijke wijzigingen correct zijn geïmplementeerd en geconfigureerd.
sudo reboot
Stap 3: Begin met programmeren in Python
De Raspberry Pi Sense HAT gebruiken in combinatie met Scratch voor blok-gebaseerd programmeren is mogelijk; we zullen echter Python gebruiken als onze voorkeursmethode voor het interpreteren en weergeven van de gegevens die door de sensoren worden verzameld.
Het gebruik van de Thonny Integrated Development Environment (IDE) is een efficiënte methode voor het uitvoeren van Python-gebaseerde programmeertaken op een Raspberry Pi, gezien de uitgebreide functionaliteit en handige debugging tools. Om toegang te krijgen tot de Thonny IDE binnen de grafische gebruikersinterface (GUI) van het bureaublad van Raspberry Pi OS, navigeer je naar de linkerbovenhoek van het scherm en selecteer je ‘Menu’, gevolgd door ‘Programmeren’ en tot slot ‘Thonny IDE’.
Stap 4: Neem een temperatuurmeting
Voeg in het primaire venster van de Thonny Integrated Development Environment (IDE) de volgende code in de programma-editor in:
from sense_hat import SenseHat
sense = SenseHat()
sense.clear()
temp = sense.get_temperature()
print(temp)
In de eerste regels van de code wordt de SenseHat klasse geïmporteerd en toegewezen uit de sense_hat Python bibliotheek, die vooraf is geïnstalleerd op Raspberry Pi OS. Vervolgens wordt de LED-matrix van de SenseHat leeggemaakt met behulp van de meegeleverde instructies.
Vervolgens verkrijgen we de temperatuurmeting en geven deze weer in de Shell-interface van de Thonny Integrated Development Environment. Deze waarde wordt uitgedrukt in graden Celsius; daarom kan het handig zijn om de waarde eerst om te rekenen naar Fahrenheit voor een betere interpretatie:
temp = (sense.get_temperature() * 1.8 \\+ 32)
Om ervoor te zorgen dat de uitlezing van de temperatuursensor een nauwkeurige weergave heeft met één decimaal, zullen we de round() functie gebruiken om overtollige decimalen in de waarde af te ronden.Deze aanpak zorgt voor een nauwkeurige meting van de temperatuur en elimineert onnodige precisie.
temp = round(temp, 1)
De functie sense.get_temperature()
haalt de temperatuurgegevens op van de geïntegreerde temperatuursensor in de vochtigheidssensor. Als alternatieve optie kan gebruik worden gemaakt van de sense.get_temperature_from_pressure()
methode om temperatuurgegevens te verkrijgen op basis van metingen van de druksensor. Daarnaast is het mogelijk om gelijktijdig temperatuurmetingen van beide sensoren te verkrijgen en hun gemiddelde waarde te berekenen door het gemiddelde van de respectieve waarden te nemen en vervolgens door twee te delen.
Stap 5: De temperatuur weergeven op de Sense HAT
Het weergeven van een continue stroom gegevens in real-time kan inderdaad heel boeiend zijn. In dit geval presenteren we een dynamische visualisatie door periodiek de huidige temperatuurwaarde op de RGB LED-matrix van de Sense HAT bij te werken met behulp van de functie show\_message(). Verder zullen we een while-lus gebruiken met het statement “while True” om herhaaldelijk een nieuwe temperatuurmeting te verkrijgen met regelmatige tussenpozen van tien seconden door gebruik te maken van de sleep() functie uit de tijdbibliotheek.
Hier is het volledige programma:
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)
Door deze code uit te voeren wordt een continue stroom temperatuurmetingen in real-time weergegeven op de LED-matrix. Om te experimenteren met de reactiesnelheid kun je zachtjes uitademen op de Sense HAT om temperatuurschommelingen te observeren.
Het kan nodig zijn om aanpassingen te maken in de temperatuurmetingen die via de Sense HAT worden verkregen, omdat ze kunnen worden beïnvloed door warmteoverdracht van de centrale verwerkingseenheid van de Raspberry Pi die zich er direct onder bevindt. Om een grotere nauwkeurigheid in deze metingen te bereiken, is het mogelijk om een stapelheader te gebruiken om de Sense HAT verder van de Raspberry Pi af te plaatsen.
Een Raspberry Pi gebruiken om de temperatuur te meten
Het gebruik van een onafhankelijke thermometer is haalbaar voor deze onderneming, maar de Sense HAT vereenvoudigt het monitoren van de temperatuur door integratie met de Raspberry Pi. Bovendien kunnen hiermee gegevens worden verzameld over verschillende omgevingsfactoren, zoals luchtdruk en relatieve vochtigheid, terwijl deze metingen worden weergegeven op de reeks individueel adresseerbare LED’s.