Slik bruker du en Raspberry Pi til å overvåke temperaturer med en Sense-HAT

Det er flere måter du kan overvåke omgivelsestemperaturen på ved hjelp av en Raspberry Pi enkeltbordsdatamaskin, kanskje som en del av et værstasjonsoppsett. Mens du kan bruke en ekstern sensor koblet til Raspberry Pis GPIO-pinner, vil vi her forklare hvordan du overvåker temperaturen med en Raspberry Pi utstyrt med en Sense HAT.

Hva er Sense HAT?

Bildekreditt: Raspberry Pi

Et offisielt Raspberry Pi HAT (Hardware Attached on Top) tilleggskort designet og produsert av Raspberry Pi-selskapet, Sense HAT ble opprinnelig laget for å brukes av astronauter ombord på den internasjonale romstasjonen. Siden 2015 har to Raspberry Pi-datamaskiner utstyrt med Sense-HAT blitt brukt i vitenskapelige eksperimenter designet av skolebarn som gikk inn i den pågående Astro Pi utfordring Disse to enhetene har siden blitt erstattet av oppgraderte versjoner basert på en Raspberry Pi 4 og utstyrt med et høykvalitetskamera.

Bildekreditt: Raspberry Pi

Selv om det mangler den spesielle sølvkassen designet for bruk i verdensrommet, har standard Sense HAT-brett nøyaktig samme funksjonalitet. Den er kompatibel med alle Raspberry Pi-modeller med en 40-pinners GPIO-header, og har en rekke innebygde sensorer som gjør den i stand til å overvåke omgivelsene og også oppdage sin egen orientering og bevegelse. I tillegg har den en 8×8 RGB LED-matrise for å vise tekst, data og bilder. Det er også en mini femveis joystick.

Hele utvalget av Sense HAT sensoriske funksjoner er som følger:

  • Fuktighet: En STMicro HTS221-sensor med 0 til 100 % relativ fuktighetsområde, pluss temperaturføling fra 32 °F til 149 °F (0 °C til 65 °C ± 2 °C).
  • Barometrisk trykk: En STMicro LPS25HB-sensor med et område på 260 til 1260 hPa, pluss temperaturføling fra 59 °F til 104 °F (15 °C til 40 °C ±0,5 °C).
  • Temperatur: Dette kan leses av fuktighets- eller trykksensoren, eller måles ved å ta et gjennomsnitt av begge målingene.
  • Gyroskop: STMicro LSM9DS1 IMU kan måle rotasjon av Sense HAT i forhold til jordens overflate (og hvor raskt den roterer).
  • Akselerometer: En annen funksjon av IMU, dette kan måle akselerasjonskraft i flere retninger.
  • Magnetometer: Ved å sanse jordas magnetfelt kan IMU bestemme retningen til magnetisk nord og dermed gi en kompassavlesning.
  Smishing vs. Phishing-angrep: Hva er forskjellene?

Nå som du har forstått hva denne flerbruks Raspberry Pi HAT kan gjøre, er det på tide å komme i gang med prosjektet.

Trinn 1: Monter Sense HAT

For å koble til Sense HAT, sørg først for at Raspberry Pi er slått av og koblet fra strømmen. Skyv deretter Sense HAT (med den medfølgende sorte header-forlengeren montert) forsiktig inn på Raspberry Pis 40-pinners GPIO-header slik at Sense HAT-kortet er plassert over Raspberry Pi-kortet. Pass på at alle pinnene er riktig på linje og at begge radene er koblet sammen. Du kan også bruke innskruningsstøtter for å sikre den.

Du kan bruke hvilken som helst standard Raspberry Pi-modell som har en 40-pinners GPIO-header. En av hovedbegrensningene til en Raspberry Pi 400 er imidlertid at GPIO-headeren er plassert på baksiden av det integrerte tastaturet. Dette betyr at Sense HAT vender bakover, så det kan være lurt å bruke en GPIO-forlengelseskabel for å koble den til.

Trinn 2: Sett opp Raspberry Pi

Som med alle andre prosjekter, bør du koble til et USB-tastatur og en mus og deretter koble Raspberry Pi til en skjerm eller TV. Du bør også ha et microSD-kort satt inn med standard Raspberry Pi OS på – hvis du ikke allerede har gjort dette, sjekk ut hvordan du installerer et operativsystem på en Raspberry Pi. Du er da klar til å slå på strømmen.

  Hvordan se amerikansk TV fra utenfor USA

Alternativt kan du bruke Raspberry Pi med Sense HAT i hodeløs modus, uten en skjerm tilkoblet og koble til Raspberry Pi eksternt ved hjelp av SSH fra en annen datamaskin eller enhet. Hvis du gjør dette, vil du ikke kunne bruke Thonny Python IDE, buy kan fortsatt redigere programmer ved å bruke nanotekstredigereren og kjøre dem fra kommandolinjen.

Sense HAT-fastvaren skal være installert som standard. For å dobbeltsjekke, åpne et terminalvindu og skriv inn:

 sudo apt install sense-hat

Deretter, hvis pakken nettopp har blitt installert, starter du Raspberry Pi på nytt:

 sudo reboot

Trinn 3: Start programmering i Python

Mens du kan bruke Raspberry Pi Sense HAT med det Scratch-blokkbaserte programmeringsspråket, bruker vi Python til å lese og vise sensoravlesningene.

Thonny IDE (integrert utviklingsmiljø) er en god måte å gjøre Python-programmering på en Raspberry Pi, siden den har mye funksjonalitet inkludert nyttige feilsøkingsfunksjoner. I Raspberry Pi OSs skrivebordsgrensesnitt, gå til Meny (øverst til venstre bringebærikon) > Programmering > Thonny IDE for å starte den.

Trinn 4: Ta en temperaturavlesning

I hovedvinduet til Thonny IDE skriver du inn følgende kodelinjer:

 
from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

Den første linjen importerer SenseHat-klassen fra sense_hat Python-biblioteket (som er forhåndsinstallert i Raspberry Pi OS). Denne tilordnes deretter sensevariabelen. Den tredje linjen sletter Sense HATs LED-matrise.

Vi tar deretter temperaturavlesningen og skriver den ut til Shell-området til Thonny IDE. Dette er i grader Celsius, så det kan være lurt å først konvertere det til Fahrenheit:

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

Temperatursensoravlesningen vil ha flere sifre etter desimaltegnet. Så vi bruker avrundingsfunksjonen til å avrunde den til en enkelt desimal:

 temp = round(temp, 1) 

Sense.get_temperature()-funksjonen leser temperatursensoren innebygd i fuktighetssensoren. Alternativt kan du ta en temperaturavlesning fra trykksensoren med sense.get_temperature_from_pressure() eller til og med ta begge målingene og beregne et gjennomsnittlig gjennomsnitt (ved å legge dem til og dele på to).

  Hvordan bli en OSCP [Full Guide]

Trinn 5: Vis temperaturen på Sense HAT

Å skrive ut en enkelt temperaturlesing til Python Shell er litt kjedelig, så la oss i stedet ta en ny avlesning regelmessig og vise den på Sense HATs RGB LED-matrise. For å vise en rullende tekstmelding bruker vi funksjonen show_message. Vi vil også bruke en stund: True loop for å fortsette å ta en ny lesing hvert 10. sekund – som vi bruker søvnfunksjonen fra tidsbiblioteket til.

Her er det komplette 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)

Kjør denne koden, og du vil se hver ny temperaturlesing rulle over LED-matrisen. Prøv å blåse på Sense HAT for å se om temperaturen endres.

Temperaturavlesninger kan bli påvirket av varme som overføres fra Raspberry Pis CPU like under, så en justering kan være nødvendig for å få et mer nøyaktig tall. En annen løsning er å bruke en stableheader for å heve Sense HAT høyere over Raspberry Pi.

Bruk en Raspberry Pi for å overvåke temperaturen

Mens du kan bruke en frittstående temperatursensor i stedet for dette prosjektet, gjør Sense HAT det enkelt å overvåke temperaturen med din Raspberry Pi. Du kan også bruke den til å ta en rekke andre sensoravlesninger, for eksempel barometertrykk og relativ fuktighet, og vise dem på LED-matrisen.