5.5 KiB
Merjenje temperature - Raspberry Pi
V tem delu lekcije boste dodali temperaturni senzor na vaš Raspberry Pi.
Strojna oprema
Senzor, ki ga boste uporabili, je DHT11 senzor za vlago in temperaturo, ki združuje dva senzorja v enem paketu. Ta senzor je precej priljubljen, saj je na voljo veliko komercialnih senzorjev, ki združujejo temperaturo, vlago in včasih tudi atmosferski tlak. Komponenta za merjenje temperature je termistor z negativnim temperaturnim koeficientom (NTC), pri katerem se upornost zmanjša, ko se temperatura poveča.
Gre za digitalni senzor, ki ima vgrajen ADC za ustvarjanje digitalnega signala, ki vsebuje podatke o temperaturi in vlagi, ki jih lahko mikrokrmilnik prebere.
Povežite temperaturni senzor
Grove temperaturni senzor lahko povežete z Raspberry Pi.
Naloga
Povežite temperaturni senzor.
-
Vstavite en konec Grove kabla v vtičnico na senzorju za vlago in temperaturo. Kabel bo šel noter samo v eni smeri.
-
Ko je Raspberry Pi izklopljen, povežite drugi konec Grove kabla z digitalno vtičnico, označeno D5, na Grove Base hat, ki je priključen na Pi. Ta vtičnica je druga z leve strani v vrsti vtičnic poleg GPIO pinov.
Programirajte temperaturni senzor
Napravo lahko zdaj programirate za uporabo priključenega temperaturnega senzorja.
Naloga
Programirajte napravo.
-
Vklopite Pi in počakajte, da se zažene.
-
Zaženite VS Code, bodisi neposredno na Pi, bodisi se povežite prek razširitve Remote SSH.
⚠️ Če potrebujete, si lahko ogledate navodila za nastavitev in zagon VS Code v lekciji 1.
-
V terminalu ustvarite novo mapo v domačem imeniku uporabnika
pi
, imenovanotemperature-sensor
. V tej mapi ustvarite datoteko z imenomapp.py
:mkdir temperature-sensor cd temperature-sensor touch app.py
-
Odprite to mapo v VS Code.
-
Za uporabo senzorja za temperaturo in vlago je treba namestiti dodatni Pip paket. V terminalu v VS Code zaženite naslednji ukaz za namestitev tega Pip paketa na Pi:
pip3 install seeed-python-dht
-
Dodajte naslednjo kodo v datoteko
app.py
za uvoz potrebnih knjižnic:import time from seeed_dht import DHT
Izjava
from seeed_dht import DHT
uvozi razredDHT
za interakcijo z Grove temperaturnim senzorjem iz modulaseeed_dht
. -
Dodajte naslednjo kodo za zgornjo kodo, da ustvarite instanco razreda, ki upravlja temperaturni senzor:
sensor = DHT("11", 5)
To deklarira instanco razreda
DHT
, ki upravlja Digitalni senzor za Vlago in Temperaturo. Prvi parameter pove kodi, da se uporablja senzor DHT11 - knjižnica, ki jo uporabljate, podpira tudi druge različice tega senzorja. Drugi parameter pove kodi, da je senzor povezan z digitalnim priključkomD5
na Grove Base hat.✅ Ne pozabite, vse vtičnice imajo edinstvene številke pinov. Pini 0, 2, 4 in 6 so analogni pini, pini 5, 16, 18, 22, 24 in 26 pa so digitalni pini.
-
Dodajte neskončno zanko za zgornjo kodo, da pridobite vrednost temperaturnega senzorja in jo natisnete na konzolo:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
Klic
sensor.read()
vrne nabor vrednosti za vlago in temperaturo. Potrebujete samo vrednost temperature, zato vlago ignorirate. Vrednost temperature se nato natisne na konzolo. -
Na koncu zanke dodajte kratko pavzo desetih sekund, saj ni potrebno neprekinjeno preverjati ravni temperature. Pavza zmanjša porabo energije naprave.
time.sleep(10)
-
V terminalu VS Code zaženite naslednji ukaz za zagon vaše Python aplikacije:
python3 app.py
Na konzoli bi morali videti vrednosti temperature. Uporabite nekaj za segrevanje senzorja, na primer pritisnite nanj s palcem ali uporabite ventilator, da vidite, kako se vrednosti spreminjajo:
pi@raspberrypi:~/temperature-sensor $ python3 app.py Temperature 26°C Temperature 26°C Temperature 28°C Temperature 30°C Temperature 32°C
💁 To kodo lahko najdete v mapi code-temperature/pi.
😀 Vaš program za temperaturni senzor je bil uspešen!
Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za strojno prevajanje Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.