Opret en Raspberry Pi temperaturmonitor ved hjælp af en Sense HAT og vis regelmæssige aflæsninger på dens LED-matrix.
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 man overvåger temperaturen med en Raspberry Pi udstyret med en Sense HAT.
Hvad er Sense HAT?
En embedsmand 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.
Selvom det mangler den specielle sølvkasse designet til brug i rummet, har standard Sense HAT-brættet nøjagtig den samme funktionalitet. Kompatibel med enhver Raspberry Pi model med en 40-bens GPIO header har den 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 8x8 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).
- Barometertryk: 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 rotation af Sense HAT i forhold til jordens overflade (og hvor hurtigt den roterer).
- Accelerometer: En anden funktion af IMU, denne 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.
Nu hvor du har fået et lille overblik over, hvad denne multifunktionelle Raspberry Pi HAT kan gøre, 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 for en Raspberry Pi 400GPIO header er dog 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 tilslut 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å det - hvis du ikke allerede har gjort dette, så tjek ud hvordan man installerer et operativsystem på en Raspberry Pi. Så er du klar til at tænde for strømmen.
Alternativt kan du bruge din Raspberry Pi med Sense HAT i hovedløs tilstand, uden en skærm tilsluttet og opret forbindelse 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ær ikon) > Programmering > Thonny IDE at starte den.
Trin 4: Tag en temperaturaflæsning
Indtast følgende kodelinjer i hovedvinduet i Thonny IDE:
from sense_hat import SenseHatsense = SenseHat()
sense.clear()
temp = sense.get_temperature()
print(temp)
Den første linje importerer SenseHat klasse fra sans_hat Python-bibliotek (som er forudinstalleret i Raspberry Pi OS). Dette tildeles derefter følelse variabel. 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 rund funktion til at afrunde det til en enkelt decimal:
temp = round(temp, 1)
Det sense.get_temperature() funktion aflæser temperatursensoren indbygget i fugtsensoren. 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).
Trin 5: Vis temperaturen på Sense HAT
At udskrive 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 show_message fungere. Vi bruger også en mens: Sandt sløjfe for at blive ved med at tage en ny læsning hvert 10. sekund - som vi bruger søvn funktion fra tid bibliotek.
Her er det komplette program:
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)
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
Selvom du kunne bruge en selvstændig temperatursensor i stedet for 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.