Contents

Hur man använder en Raspberry Pi för att övervaka temperaturer med en Sense HAT

Det finns flera sätt att övervaka omgivningstemperaturen med en Raspberry Pi enkortsdator, kanske som en del av en väderstation. Du kan använda en extern sensor som är ansluten till Raspberry Pi:s GPIO-stift, men här förklarar vi hur du övervakar temperaturen med en Raspberry Pi utrustad med en Sense HAT.

Vad är Sense HAT?

/sv/images/sense-hat-angle.jpg Bildkredit: Raspberry Pi

Sense HAT är ett officiellt Raspberry Pi HAT-tilläggskort (Hardware Attached on Top) som har utformats och tillverkats av Raspberry Pi-företaget och ursprungligen var avsett att användas av astronauter ombord på den internationella rymdstationen. Sedan 2015 har två Raspberry Pi-datorer utrustade med en Sense HAT använts i vetenskapliga experiment som utformats av skolbarn som deltog i den pågående Astro Pi utmaningen Dessa två enheter har sedan dess ersatts av uppgraderade versioner baserade på en Raspberry Pi 4 och utrustade med en högkvalitativ kamera.

/sv/images/astro-pi.jpg Image Credit: Raspberry Pi

Även om Sense HAT-kortet saknar det unika silverhöljet avsett för utomjordisk användning, har det identiska funktionella egenskaper när det paras ihop med alla Raspberry Pi-modeller med ett 40-pinnars GPIO-gränssnitt. Denna mångsidiga enhet har en rad integrerade sensorer som möjliggör omfattande övervakning av den omedelbara omgivningen, samt detektering av dess egen orientering och rörelse. Dessutom är den utrustad med en 8x8 RGB LED-matris som underlättar visuell presentation av information som text, figurer och bilder. Dessutom ingår en kompakt joystick med fem lägen i konstruktionen.

Det kompletta utbudet av funktioner för Sense HAT, som är relaterade till avkänning och perception, kan sammanfattas enligt följande:

Enheten använder en STMicro HTS221-sensor som kan mäta både relativ fuktighet och temperatur inom ett intervall på 0-100 % relativ fuktighet och 32°F till 149°F (0°C till 65°C ± 2°C) för temperatur.

Barometern LPS25HB från STMicro har ett mätområde på 260 till 1260 hPa och kan känna av temperaturen inom ett område på 59°F till 104°F (15°C till 40°C med en noggrannhet på \+/-0,5°C).

Temperaturen kan antingen erhållas genom avläsning av en fukt- eller trycksensor, eller alternativt beräknas genom att ta medelvärdet av båda avläsningarna.

STMicro LSM9DS1 IMU, integrerad i Raspberry Pi:s Sense HAT, har kapacitet att mäta enhetens orientering och vinkelhastighet i förhållande till markplanet, samt dess rotationshastighet.

Accelerometern är en komponent i tröghetsmätningsenheten (IMU) som kan mäta accelerationskrafter i olika riktningar.

Magnetometern i tröghetsmätningsenheten (IMU) kan detektera jordens magnetfält, vilket gör att den kan fastställa riktningen för magnetisk norr och ge en kompassavläsning som resultat.

Med en omfattande förståelse för den mångsidiga Raspberry Pi HAT:s kapacitet och potentiella tillämpningar är det nu lämpligt att påbörja implementeringsprocessen för era respektive projekt.

Steg 1: Montera Sense HAT

För att korrekt fästa Sense HAT på en Raspberry Pi, se till att den senare är avstängd och bortkopplad från alla strömkällor. För sedan försiktigt in Sense HAT, komplett med den medföljande svarta headerförlängaren, på den 40-poliga GPIO-headern på Raspberry Pi. Se till att Sense HAT är korrekt inriktad ovanpå Raspberry Pi och att alla anslutningar mellan de två korten är gjorda. För ökad säkerhet kan du använda skruvbara stand-offs.

/sv/images/raspberry-pi-sense-hat-mount.jpg

Man kan använda alla vanliga Raspberry Pi-modeller med en 40-polig GPIO-huvudkontakt (General Purpose Input/Output) för projektet. En viktig begränsning med Raspberry Pi 400-modellen är dock att GPIO-anslutningen sitter på baksidan intill det integrerade tangentbordet. Följaktligen kommer Sense HAT att vara placerad i omvänd riktning under drift. För att lösa detta problem rekommenderas att man använder en förlängningskabel för att upprätta anslutningen mellan GPIO-headern och Sense HAT.

Steg 2: Installera Raspberry Pi

Följ dessa steg för att börja använda din Raspberry Pi:1. Anslut ett USB-tangentbord och en USB-mus till enheten.2. Anslut Raspberry Pi till en display eller TV-skärm.3. Sätt i ett microSD-kort med Raspberry Pi:s standardoperativsystem i enhetens kortplats. Om detta inte har gjorts ännu, se anvisningarna för installation av ett operativsystem på en Raspberry Pi.4. Starta Raspberry Pi genom att ansluta ström till dess strömkälla.

Alternativt kan man använda sin Raspberry Pi integrerad med Sense HAT i en miljö utan bildskärm genom att upprätta fjärråtkomst via Secure Shell (SSH)-anslutning från en ytterligare datorenhet eller gadget.I ett sådant scenario har användaren inte möjlighet att använda Thonny Python Integrated Development Environment (IDE), men kan redigera filer med textredigeraren nano och köra program via terminalkommandona.

För att kontrollera om Sense HAT-firmware är förinstallerad på din Raspberry Pi kan du öppna ett terminalemulatorprogram som “Terminal” eller “xterm” från menyn Program i Lubuntu, och sedan skriva kommandot “sudo dmesg | grep sensehat”. Om inga utdata visas betyder det att den fasta programvaran har installerats. Om några felmeddelanden visas kan du dock behöva installera den fasta programvaran manuellt med hjälp av instruktionerna tidigare i detta avsnitt.

 sudo apt install sense-hat

Om paketet nyligen installerades på din Raspberry Pi rekommenderas att du utför en systemomstart för att säkerställa att alla nödvändiga ändringar är korrekt implementerade och konfigurerade.

 sudo reboot

Steg 3: Börja programmera i Python

Det är möjligt att använda Raspberry Pi Sense HAT tillsammans med Scratch för blockbaserad programmering, men vi kommer att använda Python som vår föredragna metod för att tolka och visa de data som samlas in av dess sensorer.

Att använda Thonnys integrerade utvecklingsmiljö (IDE) är en effektiv metod för att utföra Python-baserade programmeringsuppgifter på en Raspberry Pi, med tanke på dess omfattande utbud av funktioner och fördelaktiga felsökningsverktyg. För att komma åt Thonny IDE i det grafiska användargränssnittet (GUI) på Raspberry Pi OS:s skrivbord, navigera till det övre vänstra hörnet av skärmen och välj “Meny”, följt av “Programmering” och slutligen “Thonny IDE”.

/sv/images/thonny-ide-hello-world.jpg

Steg 4: Gör en temperaturmätning

I det primära fönstret i Thonny Integrated Development Environment (IDE) infogar du följande kod i programredigeraren:

from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp) 

De inledande raderna i koden importerar och tilldelar SenseHat-klassen från Python-biblioteket sense\_hat, som är förinstallerat på Raspberry Pi OS. Därefter rensas SenseHats LED-matris med hjälp av de medföljande instruktionerna.

Vi erhåller därefter temperaturmätningen och visar den i Shell-gränssnittet i Thonnys integrerade utvecklingsmiljö. Detta värde uttrycks i grader Celsius; därför kan det vara fördelaktigt att först konvertera det till Fahrenheit för att underlätta tolkningen:

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

För att säkerställa att temperaturgivarens avläsning har en korrekt representation med en enda decimal, ska vi använda funktionen round() för att avkorta eventuella överflödiga decimaler som finns i värdet.Detta tillvägagångssätt möjliggör en exakt mätning av temperaturen och eliminerar onödig precision.

 temp = round(temp, 1) 

Funktionen sense.get_temperature() hämtar temperaturdata från den integrerade temperatursensorn i fuktsensorn. Som ett alternativ kan man använda metoden sense.get_temperature_from_pressure() för att få temperaturavläsningar baserade på mätningar från trycksensorn. Dessutom är det möjligt att samtidigt ta emot temperaturavläsningar från båda sensorerna och beräkna deras medelvärde genom att beräkna medelvärdet av respektive värden och sedan dividera med två.

Steg 5: Visa temperaturen på Sense HAT

Att visa en kontinuerlig ström av data i realtid kan faktiskt vara ganska fängslande. I det här fallet kommer vi att presentera en dynamisk visualisering genom att regelbundet uppdatera det aktuella temperaturvärdet på Sense HAT:s RGB LED-matris med hjälp av funktionen show\_message(). Dessutom ska vi använda en while loop med uttalandet “while True” för att upprepade gånger få en ny temperaturmätning med regelbundna intervall på tio sekunder genom att använda sleep()-funktionen från time library.

Här är det fullständiga programmet:

 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) 

Genom att exekvera denna kod kommer en kontinuerlig ström av temperaturavläsningar att visas på LED-matrisen i realtid. För att experimentera med dess respons kan du helt enkelt andas ut försiktigt på Sense HAT och observera eventuella temperaturfluktuationer som kan uppstå till följd av detta.

/sv/images/raspberry-pi-sense-hat-temperature.jpg

Justeringar kan behöva göras av temperaturavläsningar som erhålls via Sense HAT, eftersom de kan påverkas av värmeöverföring från Raspberry Pis centrala processorenhet som är placerad direkt under den. För att uppnå större noggrannhet i dessa mätningar skulle en möjlig metod kunna vara att använda ett staplingshuvud för att höja Sense HAT längre bort från Raspberry Pi.

Använd en Raspberry Pi för att övervaka temperaturen

Det är möjligt att använda en oberoende termometer för detta ändamål, men Sense HAT förenklar temperaturövervakningen genom integration med Raspberry Pi. Dessutom möjliggör den insamling av data som rör olika miljöfaktorer, inklusive atmosfäriskt tryck och relativ luftfuktighet, samtidigt som dessa mätningar visas på dess uppsättning av individuellt adresserbara lysdioder.