Sådan bruger du en Raspberry Pi til at overvåge temperaturer med en Sense HAT

Der er flere måder, hvorpå du kan overvåge den omgivende temperatur ved hjælp af en Raspberry Pi-enkeltbordscomputer, måske som en del af en vejrstationsopsætning. Mens du kunne bruge en ekstern sensor forbundet til Raspberry Pi’s GPIO-ben, vil vi her forklare, hvordan du overvåger temperaturen med en Raspberry Pi udstyret med en Sense HAT.

Hvad er Sense HAT?

Billedkredit: Raspberry Pi

En officiel Raspberry Pi HAT (Hardware Attached on Top) tilføjelsestavle designet og produceret af Raspberry Pi-firmaet, Sense HAT blev oprindeligt skabt til at blive brugt af astronauter ombord på den internationale rumstation. Siden 2015 er to Raspberry Pi-computere udstyret med en Sense HAT blevet brugt i videnskabelige eksperimenter designet af skolebørn, der gik ind i den igangværende Astro Pi udfordring Disse to enheder er siden blevet erstattet af opgraderede versioner baseret på en Raspberry Pi 4 og udstyret med et højkvalitetskamera.

Billedkredit: Raspberry Pi

Selvom det mangler den specielle sølvkasse designet til brug i rummet, har standard Sense HAT-brættet nøjagtig den samme funktionalitet. Den er kompatibel med enhver Raspberry Pi-model med en 40-bens GPIO-header og har en række indbyggede sensorer, der gør den i stand til at overvåge det omgivende miljø og også registrere sin egen orientering og bevægelse. Derudover har den en 8×8 RGB LED-matrix til at vise tekst, data og billeder. Der er også et mini fem-vejs joystick.

Det fulde udvalg af Sense HAT sensoriske funktioner er som følger:

  • Fugtighed: En STMicro HTS221-sensor med 0 til 100 % relativ luftfugtighed, plus temperaturføling fra 32°F til 149°F (0°C til 65°C ± 2°C).
  • Barometrisk tryk: En STMicro LPS25HB-sensor med et område på 260 til 1260 hPa plus temperaturføling fra 59°F til 104°F (15°C til 40°C ±0,5°C).
  • Temperatur: Dette kan aflæses fra fugt- eller tryksensoren eller måles ved at tage et gennemsnit af begge aflæsninger.
  • Gyroskop: STMicro LSM9DS1 IMU kan måle rotationen af ​​Sense HAT i forhold til jordens overflade (og hvor hurtigt den roterer).
  • Accelerometer: En anden funktion af IMU, dette kan måle accelerationskraft i flere retninger.
  • Magnetometer: Ved at fornemme Jordens magnetfelt kan IMU bestemme retningen af ​​magnetisk nord og dermed give en kompasaflæsning.
  Sådan husker du, hvor du parkerede ved hjælp af Google Assistant

Nu hvor du har fået et lille overblik over, hvad denne multifunktionelle Raspberry Pi HAT kan, er det tid til at komme i gang med projektet.

Trin 1: Monter Sense HAT

For at tilslutte Sense HAT skal du først sørge for, at din Raspberry Pi er lukket ned og afbrudt fra strømmen. Skub derefter forsigtigt Sense HAT (med den medfølgende sorte header-forlænger monteret) på Raspberry Pi’s 40-benede GPIO-header, så Sense HAT-kortet er placeret over Raspberry Pi-kortet. Sørg for, at alle stifter er på linje korrekt, og at begge rækker er forbundet. Du kan også bruge fastskruede stand-offs til at hjælpe med at sikre den.

Du kan bruge enhver standard Raspberry Pi-model, der har en 40-bens GPIO-header. En af de vigtigste begrænsninger ved en Raspberry Pi 400 er imidlertid, at dens GPIO-header er placeret på bagsiden af ​​det integrerede tastatur. Det betyder, at Sense HAT vender bagud, så du vil måske bruge et GPIO forlængerkabel til at tilslutte den.

Trin 2: Konfigurer Raspberry Pi

Som med ethvert andet projekt skal du tilslutte et USB-tastatur og en mus og derefter tilslutte din Raspberry Pi til en skærm eller et tv. Du bør også have et microSD-kort indsat med standard Raspberry Pi OS på – hvis du ikke allerede har gjort dette, så tjek hvordan du installerer et operativsystem på en Raspberry Pi. Så er du klar til at tænde for strømmen.

  12 bedste dataekstraktionsværktøjer til at forenkle dine forretningsprocesser

Alternativt kan du bruge din Raspberry Pi med Sense HAT i hovedløs tilstand uden en skærm tilsluttet og tilslutte til Raspberry Pi eksternt ved hjælp af SSH fra en anden computer eller enhed. Hvis du gør dette, vil du ikke være i stand til at bruge Thonny Python IDE, buy kan stadig redigere programmer ved hjælp af nano-teksteditoren og køre dem fra kommandolinjen.

Sense HAT-firmwaren skal være installeret som standard. For at dobbelttjekke skal du åbne et terminalvindue og indtaste:

 sudo apt install sense-hat

Så, hvis pakken lige er blevet installeret for nylig, genstart Raspberry Pi:

 sudo reboot

Trin 3: Start programmering i Python

Mens du kan bruge Raspberry Pi Sense HAT med det Scratch blok-baserede programmeringssprog, bruger vi Python til at læse og vise dens sensoraflæsninger.

Thonny IDE (integreret udviklingsmiljø) er en god måde at lave Python-programmering på en Raspberry Pi, da den har en masse funktionalitet, herunder nyttige fejlfindingsfunktioner. I Raspberry Pi OS’s desktop GUI skal du gå til Menu (øverst venstre hindbærikon) > Programmering > Thonny IDE for at starte den.

Trin 4: Tag en temperaturaflæsning

Indtast følgende kodelinjer i hovedvinduet i Thonny IDE:

 
from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

Den første linje importerer SenseHat-klassen fra sense_hat Python-biblioteket (som er forudinstalleret i Raspberry Pi OS). Denne tildeles derefter sense-variablen. Den tredje linje rydder Sense HAT’s LED-matrix.

Vi tager derefter temperaturaflæsningen og udskriver den til Shell-området på Thonny IDE. Dette er i grader Celsius, så du kan godt først konvertere det til Fahrenheit:

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

Temperaturfølerens aflæsning vil have flere cifre efter decimaltegnet. Så vi bruger rundfunktionen til at afrunde den til en enkelt decimal:

 temp = round(temp, 1) 

sense.get_temperature()-funktionen læser temperatursensoren indbygget i fugtighedssensoren. Alternativt kan du tage en temperaturaflæsning fra tryksensoren med sense.get_temperature_from_pressure() eller endda tage begge aflæsninger og beregne et gennemsnitligt gennemsnit (ved at lægge dem sammen og dividere med to).

  Hvad er databasedeling?

Trin 5: Vis temperaturen på Sense HAT

At printe en enkelt temperaturaflæsning til Python Shell er lidt kedeligt, så lad os i stedet tage en ny aflæsning regelmæssigt og vise den på Sense HAT’s RGB LED-matrix. For at vise en rullende tekstbesked bruger vi funktionen show_message. Vi vil også bruge et stykke tid: True loop til at blive ved med at tage en ny læsning hvert 10. sekund – hvortil vi bruger dvalefunktionen fra tidsbiblioteket.

Her er det komplette program:

 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)

Kør denne kode, og du vil se hver ny temperaturaflæsning rulle hen over LED-matrixen. Prøv at puste Sense HAT på for at se, om temperaturen ændrer sig.

Temperaturaflæsninger kan blive påvirket af varme, der overføres fra Raspberry Pi’s CPU lige under, så en justering kan være nødvendig for at opnå et mere præcist tal. En anden løsning er at bruge en stable header til at hæve Sense HAT højere over Raspberry Pi.

Brug en Raspberry Pi til at overvåge temperaturen

Mens du i stedet kunne bruge en selvstændig temperatursensor til dette projekt, gør Sense HAT det nemt at overvåge temperaturen med din Raspberry Pi. Du kan også bruge den til at tage en lang række andre sensoraflæsninger, såsom barometertryk og relativ luftfugtighed, og vise dem på dens LED-matrix.