5.6 KiB
Mål temperatur - Raspberry Pi
I denne delen av leksjonen skal du legge til en temperatursensor på din Raspberry Pi.
Maskinvare
Sensoren du skal bruke er en DHT11 fuktighets- og temperatursensor, som kombinerer to sensorer i én pakke. Denne sensoren er ganske populær, og det finnes flere kommersielt tilgjengelige sensorer som kombinerer temperatur, fuktighet og noen ganger atmosfærisk trykk. Temperaturkomponenten er en negativ temperaturkoeffisient (NTC) termistor, en type termistor der motstanden reduseres når temperaturen øker.
Dette er en digital sensor, så den har en innebygd ADC som lager et digitalt signal med temperatur- og fuktighetsdata som mikrokontrolleren kan lese.
Koble til temperatursensoren
Grove-temperatursensoren kan kobles til Raspberry Pi.
Oppgave
Koble til temperatursensoren
-
Sett den ene enden av en Grove-kabel inn i kontakten på fuktighets- og temperatursensoren. Den vil kun passe én vei.
-
Med Raspberry Pi slått av, koble den andre enden av Grove-kabelen til den digitale kontakten merket D5 på Grove Base-hatten som er festet til Pi. Denne kontakten er den andre fra venstre, på raden med kontakter ved siden av GPIO-pinnene.
Programmer temperatursensoren
Enheten kan nå programmeres for å bruke den tilkoblede temperatursensoren.
Oppgave
Programmer enheten.
-
Slå på Pi og vent til den starter opp.
-
Start VS Code, enten direkte på Pi eller ved å koble til via Remote SSH-utvidelsen.
⚠️ Du kan referere til instruksjonene for oppsett og oppstart av VS Code i leksjon 1 hvis nødvendig.
-
Fra terminalen, opprett en ny mappe i hjemmekatalogen til brukeren
pi
kalttemperature-sensor
. Opprett en fil i denne mappen kaltapp.py
:mkdir temperature-sensor cd temperature-sensor touch app.py
-
Åpne denne mappen i VS Code.
-
For å bruke fuktighets- og temperatursensoren må en ekstra Pip-pakke installeres. Fra terminalen i VS Code, kjør følgende kommando for å installere denne Pip-pakken på Pi:
pip3 install seeed-python-dht
-
Legg til følgende kode i
app.py
-filen for å importere de nødvendige bibliotekene:import time from seeed_dht import DHT
from seeed_dht import DHT
-setningen importererDHT
-sensor-klassen for å interagere med en Grove-temperatursensor fraseeed_dht
-modulen. -
Legg til følgende kode etter koden ovenfor for å opprette en instans av klassen som håndterer temperatursensoren:
sensor = DHT("11", 5)
Dette erklærer en instans av
DHT
-klassen som håndterer den Digitale Humidity og Temperature-sensoren. Den første parameteren forteller koden at sensoren som brukes er DHT11-sensoren - biblioteket du bruker støtter andre varianter av denne sensoren. Den andre parameteren forteller koden at sensoren er koblet til den digitale portenD5
på Grove Base-hatten.✅ Husk, alle kontaktene har unike pin-nummer. Pins 0, 2, 4 og 6 er analoge pins, pins 5, 16, 18, 22, 24 og 26 er digitale pins.
-
Legg til en uendelig løkke etter koden ovenfor for å hente verdien fra temperatursensoren og skrive den ut til konsollen:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
Kallet til
sensor.read()
returnerer en tuple med fuktighet og temperatur. Du trenger kun temperaturverdien, så fuktigheten ignoreres. Temperaturverdien skrives deretter ut til konsollen. -
Legg til en liten pause på ti sekunder på slutten av
loop
, siden temperaturverdiene ikke trenger å sjekkes kontinuerlig. En pause reduserer strømforbruket til enheten.time.sleep(10)
-
Fra terminalen i VS Code, kjør følgende kommando for å kjøre Python-appen din:
python3 app.py
Du bør se temperaturverdier som skrives ut til konsollen. Bruk noe for å varme opp sensoren, som å trykke tommelen på den eller bruke en vifte for å se verdiene endre seg:
pi@raspberrypi:~/temperature-sensor $ python3 app.py Temperature 26°C Temperature 26°C Temperature 28°C Temperature 30°C Temperature 32°C
💁 Du finner denne koden i code-temperature/pi-mappen.
😀 Programmet for temperatursensoren din var en suksess!
Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi tilstreber nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.