- DHT11 sensora pārskats:
- Iepriekšēji rekvizīti:
- Adafruit LCD bibliotēkas instalēšana Raspberry Pi:
- Adafruit DHT11 bibliotēkas instalēšana Raspberry Pi:
- Ķēdes shēma:
- DHT11 sensora Python programmēšana:
- Mitruma un temperatūras mērīšana, izmantojot Raspberry Pi:
Temperatūra un mitrums ir visizplatītākie parametri, kas tiek uzraudzīti jebkurā vidē. Temperatūras un mitruma mērīšanai var izvēlēties no daudziem sensoriem, taču vispiemērotākais ir DHT11 tā pienācīgā mērījumu diapazona un precizitātes dēļ. Tas darbojas arī ar viena kontakta sakariem, un tāpēc to ir ļoti viegli sasaistīt ar mikrokontrolleriem vai mikroprocesoriem. Šajā apmācībā mēs iemācīsimies saskarni ar populāro DHT11 sensoru saskarties ar Raspberry Pi un parādīt temperatūras un mitruma vērtību 16x2 LCD ekrānā. Mēs to jau izmantojām, lai izveidotu IoT Raspberry Pi meteostaciju.
DHT11 sensora pārskats:
DHT11 sensors var izmērīt relatīvo mitrumu un temperatūru ar šādām specifikācijām
Temperatūras diapazons: 0-50 ° C Temperatūras precizitāte: ± 2 ° C Mitruma diapazons: 20-90% RH Mitruma precizitāte: ± 5%
DHT11 sensors ir pieejams vai nu moduļa, vai sensora formā. Šajā apmācībā mēs izmantojam sensora moduļa formu, vienīgā atšķirība starp abām ir tā, ka moduļa formā sensoram ir filtrēšanas kondensators un pievilkšanas rezistors, kas piestiprināts sensora izejas tapai. Tāpēc, ja izmantojat tikai sensoru, noteikti pievienojiet šos divus komponentus. Uzziniet arī DHT11 saskarni ar Arduino.
Kā darbojas DHT11 sensors:
DHT11 sensoram ir zila vai balta krāsa. Šī apvalka iekšpusē mums ir divas svarīgas sastāvdaļas, kas palīdz mums nojaust relatīvo mitrumu un temperatūru. Pirmais komponents ir elektrodu pāris; elektrisko pretestību starp šiem diviem elektrodiem nosaka mitrumu noturošs pamatne. Tātad izmērītā pretestība ir apgriezti proporcionāla vides relatīvajam mitrumam. Augstāks relatīvais mitrums, zemāka būs pretestības vērtība un otrādi. Ņemiet vērā arī to, ka relatīvais mitrums atšķiras no faktiskā mitruma. Relatīvais mitrums mēra ūdens saturu gaisā attiecībā pret gaisa temperatūru.
Otra sastāvdaļa ir uz virsmas uzstādīts NTC termistors. Termins NTC nozīmē negatīvu temperatūras koeficientu, temperatūras paaugstināšanai pretestības vērtība samazināsies
Iepriekšēji rekvizīti:
Tiek pieņemts, ka jūsu Raspberry Pi jau ir zibatmiņā ar operētājsistēmu un spēj izveidot savienojumu ar internetu. Ja nē, pirms turpināt, izpildiet pamācību Darba sākšana ar Raspberry Pi.
Tiek pieņemts arī, ka jums ir piekļuve savam pi vai nu caur termināla logiem, vai caur citu lietojumprogrammu, caur kuru jūs varat rakstīt un izpildīt python programmas un izmantot termināla logu.
Adafruit LCD bibliotēkas instalēšana Raspberry Pi:
Temperatūras un mitruma vērtība tiks parādīta 16 * 2 LCD displejā. Adafruit nodrošina mums bibliotēku, lai ērti darbotos ar šo LCD 4 bitu režīmā, tāpēc ļaujiet mums to pievienot mūsu Raspberry Pi, atverot termināla logu Pi un veicot tālāk norādītās darbības.
1. solis: Instalējiet git savā Raspberry Pi, izmantojot zemāk esošo līniju. Git ļauj klonēt visus projekta failus vietnē Github un izmantot tos savā Raspberry pi. Mūsu bibliotēka atrodas Github, tāpēc mums ir jāinstalē git, lai lejupielādētu šo bibliotēku pi.
apt-get install git
2. solis: Šīs līnijas saites uz GitHub lapu, kurā atrodas bibliotēka, vienkārši izpildiet rindu, lai klonētu projekta failu Pi mājas direktorijā
git klons git: //github.com/adafruit/Adafruit_Python_CharLCD
3. solis: Izmantojiet zemāk esošo komandu, lai mainītu direktorijas līniju, lai iekļūtu tikko lejupielādētajā projekta failā. Komandrinda ir dota zemāk
cd Adafruit_Python_CharLCD
4. solis: direktorijā būs fails ar nosaukumu setup.py . Mums tas ir jāinstalē, lai instalētu bibliotēku. Lai instalētu bibliotēku, izmantojiet šo kodu
sudo python setup.py instalēt
Tas ir, bibliotēkai vajadzēja būt veiksmīgi instalētai. Tagad turpināsim instalēt DHT bibliotēku, kas ir arī no Adafruit.
Adafruit DHT11 bibliotēkas instalēšana Raspberry Pi:
DHT11 sensors darbojas pēc vienas vadu sistēmas principa. Temperatūras un mitruma vērtību sensors uztver un pēc tam caur izejas tapu pārraida kā sērijas datus. Pēc tam mēs varam nolasīt šos datus, izmantojot I / O tapu MCU / MPU. Lai saprastu, kā šīs vērtības tiek lasītas, jums vajadzētu izlasīt DHT11 sensora datu lapu, taču, lai viss būtu vienkārši, mēs izmantosim bibliotēku, lai sarunātos ar DHT11 sensoru.
DHT11 bibliotēku pēc Adafruit nosacījumu var izmantot DHT11, DHT22 un citu viens vads temperatūras sensoru, kā arī. Arī DHT11 bibliotēkas instalēšanas procedūra ir līdzīga tai, kāda tiek izmantota LCD bibliotēkas instalēšanai. Vienīgā rinda, kas mainītos, ir saite uz GitHub lapu, kurā tiek saglabāta DHT bibliotēka.
Ievadiet četras komandrindas pa vienai terminālā, lai instalētu DHT bibliotēku
git klons
cd Adafruit_Python_DHT sudo apt-get install build-essential python-dev sudo python setup.py instalēt
Kad tas būs izdarīts, abas bibliotēkas būs veiksmīgi instalētas mūsu Raspberry Pi. Tagad mēs varam turpināt aparatūras savienojumu.
Ķēdes shēma:
Pilna shēma Interfacing DH11 ar Raspberry pi ir dota zemāk, tā tika uzbūvēta, izmantojot Fritzing. Izpildiet savienojumus un izveidojiet ķēdi
Gan LCD, gan DHT11 sensors darbojas ar + 5 V barošanu, tāpēc mēs izmantojam Raspberry Pi 5 V tapas, lai darbinātu abus. DHT11 sensora izejas tapā tiek izmantots pievilkšanas rezistors 1k vērtībā. Ja izmantojat moduli, jūs varat izvairīties no šī rezistora.
Lai kontrolētu LCD kontrasta līmeni, LCD Vee tapai tiek pievienots trimmeris ar 10k. Izņemot to, ka visi savienojumi ir diezgan taisni uz priekšu. Bet atzīmējiet, kuras GPIO tapas jūs izmantojat, lai savienotu tapas, jo mums tas būs nepieciešams mūsu programmā. Zemāk redzamajā diagrammā jāļauj noskaidrot GPIO tapu numurus.
Izmantojiet diagrammu un izveidojiet savienojumus saskaņā ar shēmu. Lai izveidotu savienojumus, es izmantoju maizes dēli un džempera vadus. Tā kā es izmantoju DHT11 moduli, es to tieši savienoju ar Raspberry Pi. Mana aparatūra izskatījās šādi zemāk
DHT11 sensora Python programmēšana:
Mums ir jāraksta programma, lai nolasītu temperatūras un mitruma vērtību no DHT11 sensora un pēc tam to pašu parādītu LCD. Tā kā mēs esam lejupielādējuši bibliotēkas gan LCD, gan DHT11 sensoram, kodam vajadzētu būt diezgan tiešam. Python pilnu programmu var atrast beigās šīs lapas, bet jūs varat lasīt tālāk, lai saprastu, kā programma darbojas.
Mums ir jāimportē LCD bibliotēka un DHT11 bibliotēka mūsu programmā, lai izmantotu ar to saistītās funkcijas. Tā kā mēs tos jau esam lejupielādējuši un instalējuši savā Pi, mēs vienkārši varam izmantot šādas rindas, lai tos importētu. Mēs arī importējam laika bibliotēku, lai izmantotu aizkaves funkciju.
importa laiks # importa laiks, lai izveidotu aizkaves importēšanu Adafruit_CharLCD kā LCD # importēt LCD bibliotēkas importēšanu Adafruit_DHT # importēt sensora DHT bibliotēku
Tālāk mums jānorāda, pie kurām tapām sensors ir savienots un kāda veida temperatūras sensors tiek izmantots. Mainīgais sensora nosaukums tiek piešķirts vietnei Adafruit_DHT.DHT11, jo šeit mēs izmantojam sensoru DHT11. Sensora izejas tapa ir savienota ar Raspberry Pi GPIO 17, un tāpēc mēs piešķiram 17 sensor_pin mainīgajam, kā parādīts zemāk.
sensor_name = Adafruit_DHT.DHT11 # mēs izmantojam DHT11 sensoru sensor_pin = 17 # sensors ir savienots ar Pi GPIO17
Līdzīgi mums ir arī jādefinē, ar kuriem GPIO tapām LCD ir savienots. Šeit mēs izmantojam LCD 4 bitu režīmā, tāpēc mums būs četras datu tapas un divas vadības tapas, lai izveidotu savienojumu ar pi GPIO tapām. Ja mēs vēlamies kontrolēt arī apgaismojumu, jūs varat savienot apgaismojuma tapu ar GPIO tapu. Bet pagaidām es to neizmantoju, tāpēc tam esmu piešķīris 0.
lcd_rs = 7 # LCD LCD ir savienots ar PI GPIO 7 lcd_en = 8 # LCD LCD ir savienots ar PI GPIO 8 lcd_d4 = 25 # LCD D4 ir savienots ar PI GPIO 25 lcd_d5 = 24 # D5 LCD ir savienots ar GPIO 24 uz PI lcd_d6 = 23 # LCD D6 ir savienots ar GPIO 23 uz PI lcd_d7 = 18 # LCD D7 ir savienots ar GPIO 18 uz PI lcd_backlight = 0 # LED nav pievienots, tāpēc mēs piešķiram 0
Jūs varat arī pieslēgt LCD ekrānu 8 bitu režīmā ar Raspberry pi, bet pēc tam samazināsies brīvo tapu skaits.
Lejupielādēto Adafruit LCD bibliotēku var izmantot visu veidu raksturīgajiem LCD displejiem. Šeit mūsu projektā mēs izmantojam 16 * 2 LCD displeju, tāpēc mēs mainām rindu un kolonnu skaitu mainīgajam, kā parādīts zemāk.
lcd_columns = 16 # par 16 * 2 LCD lcd_rows = 2 # par 16 * 2 LCD
Tagad, kad esam paziņojuši par LCD tapām un LCD rindu un kolonnu skaitu, mēs varam inicializēt LCD displeju, izmantojot šādu rindu, kas visu nepieciešamo informāciju nosūta bibliotēkai.
lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) # Nosūtīt visu informāciju par tapu
Lai sāktu programmu, mēs parādām nelielu ievadziņu, izmantojot funkciju lcd.message (), un pēc tam dodam 2 sekunžu aizkavi, lai ziņa būtu lasāma. Drukāšanai uz 2 nd līniju komandu \ n var izmantot kā parādīts zemāk
LCD .message ("DHT11 ar Pi \ n -CircuitDigest ') #Give intro ziņojums time.sleep (2) #wait 2 sekundes
Visbeidzot, iekšpusē mūsu kamēr cilpas mums vajadzētu izlasīt vērtību temperatūras un mitruma no sensora un parādīt to uz LCD ekrāna ik pēc 2 sekundēm. Pilna programma while ciklā ir parādīta zemāk
kamēr 1: # Bezgalīgā cilpa
mitrums, temperatūra = Adafruit_DHT.read_retry (sensora_nosaukums, sensor_pin) # nolasīt no sensora un saglabāt attiecīgās temperatūras un mitruma varibale vērtības
lcd.clear () # Notīriet LCD ekrānu lcd.message ('Temp =%.1f C'% temperatūra) # Parādiet temperatūras vērtību lcd.message ('\ nHum =%.1f %%'% mitrums) # Displejs mitruma laika.sleep (2) vērtība # Pagaidiet 2 sekundes, pēc tam atjauniniet vērtības
Mēs varam viegli iegūt temperatūras un mitruma vērtību no sensora, izmantojot šo zemāk esošo līniju. Kā redzat, tiek atgrieztas divas vērtības, kas tiek saglabātas mainīgajā mitrumā un temperatūrā. Par sensor_name un sensor_pin informācija ir nodota kā parametri; šīs vērtības tika atjauninātas programmas sākumā
mitrums, temperatūra = Adafruit_DHT.read_retry (sensora_nosaukums, sensora tapa)
Lai LCD ekrānā parādītu mainīgā nosaukumu, mēs varam izmantot tādus identifikatorus kā & d,% c utt. Tā kā mēs parādām peldošā komata numuru, kurā aiz komata ir tikai viens cipars, vērtības rādīšanai % mainīgā temperatūra un mitrums
lcd .message ('Temp =%.1f C'% temperatūra) lcd .message ('\ nHum =%.1f %%'% mitruma)
Mitruma un temperatūras mērīšana, izmantojot Raspberry Pi:
Veiciet savienojumus atbilstoši shēmai un instalējiet nepieciešamās bibliotēkas. Pēc tam palaidiet šīs lapas beigās norādīto pitonu programmu. LCD displejā jāparāda ievadziņa un pēc tam jāparāda pašreizējā temperatūras un mitruma vērtība, kā parādīts zemāk esošajā attēlā.
Ja LCD ekrānā netiek parādīts nekas, pārbaudiet, vai pitona čaulas logā nav redzamas kļūdas, ja netiek parādīta kļūda, tad vēlreiz pārbaudiet savienojumus un pielāgojiet potenciometru, lai mainītu LCD kontrasta līmeni, un pārbaudiet, vai kaut kas ir ieslēgts ekrānā.
Ceru, ka sapratāt projektu un patika to veidot, ja esat saskāries ar jebkādām problēmām, kā to paveikt, ziņojiet par to komentāru sadaļā vai izmantojiet forumu tehniskai palīdzībai. Es centīšos maksimāli reaģēt uz visiem komentāriem.
Varat arī pārbaudīt citus mūsu projektus, izmantojot DHT11 ar citu mikrokontrolleru.