- Pregled senzora DHT11:
- Preduvjeti:
- Instaliranje Adafruit LCD biblioteke na Raspberry Pi:
- Instaliranje biblioteke Adafruit DHT11 na Raspberry Pi:
- Kružni dijagram:
- Python programiranje za DHT11 senzor:
- Mjerenje vlažnosti i temperature pomoću Raspberry Pi:
Temperatura i vlaga najčešći su parametri koji se prate u bilo kojem okruženju. Postoji mnoštvo senzora za odabir za mjerenje temperature i vlažnosti, ali najkorišteniji je DHT11 zbog svog pristojnog opsega mjerenja i točnosti. Također radi s jednom pinskom komunikacijom, pa je stoga vrlo jednostavno povezati se s mikrokontrolerima ili mikroprocesorima. U ovom uputstvu naučit ćemo kako povezati popularni DHT11 senzor s Raspberry Pi i prikazati vrijednost temperature i vlage na LCD zaslonu 16x2. Već smo ga koristili za izgradnju IoT Raspberry Pi meteorološke stanice.
Pregled senzora DHT11:
DHT11 senzor može mjeriti relativnu vlažnost i temperaturu sa sljedećim specifikacijama
Raspon temperature: 0-50 ° C Točnost temperature: ± 2 ° C Raspon vlažnosti: 20-90% RH Točnost vlažnosti: ± 5%

DHT11 senzor dostupan je u obliku modula ili u obliku senzora. U ovom uputstvu koristimo modularni oblik senzora, jedina razlika između oba je ta što u modularnom obliku senzor ima filtrirajući kondenzator i povlačni otpor pričvršćen na izlazni pin senzora. Dakle, ako koristite samo senzor, dodajte ove dvije komponente. Također naučite DHT11 povezivanje s Arduinom.
Kako djeluje DHT11 senzor:
DHT11 senzor dolazi s plavim ili bijelim kućištem. Unutar ovog kućišta imamo dvije važne komponente koje nam pomažu osjetiti relativnu vlažnost i temperaturu. Prva komponenta je par elektroda; o električnom otporu između ove dvije elektrode odlučuje podloga koja zadržava vlagu. Tako je izmjereni otpor obrnuto proporcionalan relativnoj vlažnosti okoliša. Što je viša relativna vlažnost zraka, to će biti vrijednost otpora i obrnuto. Također imajte na umu da se relativna vlažnost razlikuje od stvarne vlažnosti. Relativna vlaga mjeri sadržaj vode u zraku u odnosu na temperaturu u zraku.
Druga komponenta je površinski montirani NTC termistor. Pojam NTC označava negativni temperaturni koeficijent, a s porastom temperature vrijednost otpora će se smanjivati
Preduvjeti:
Pretpostavlja se da je vaš Raspberry Pi već spojen s operativnim sustavom i da se može povezati s internetom. Ako nije, slijedite upute za Početak rada s Raspberry Pi prije nego što nastavite.
Također se pretpostavlja da svom pi imate pristup putem prozora terminala ili putem druge aplikacije putem koje možete pisati i izvršavati python programe i koristiti prozor terminala.
Instaliranje Adafruit LCD biblioteke na Raspberry Pi:
Vrijednost temperature i vlažnosti prikazat će se na LCD zaslonu 16 * 2. Adafruit nam nudi knjižnicu za lako upravljanje ovim LCD-om u 4-bitnom načinu, pa ga dopustimo da ga dodamo u našu Raspberry Pi otvaranjem terminala prozor Pi i slijedeći korake u nastavku.
Korak 1: Instalirajte git na Raspberry Pi pomoću donjeg retka. Git vam omogućuje kloniranje svih projektnih datoteka na Githubu i korištenje na vašem Raspberry pi. Naša je knjižnica na Githubu, tako da moramo instalirati git da bismo je preuzeli u pi.
apt-get instalirati git
Korak 2: Sljedeći redak povezuje na GitHub stranicu na kojoj je knjižnica samo izvršava red za kloniranje projektne datoteke u Pi početnom direktoriju
git klon git: //github.com/adafruit/Adafruit_Python_CharLCD
Korak 3: Pomoću naredbe u nastavku promijenite liniju direktorija kako biste ušli u projektnu datoteku koju smo upravo preuzeli. Naredbeni redak dat je u nastavku
cd Adafruit_Python_CharLCD
Korak 4: Unutar direktorija nalazit će se datoteka pod nazivom setup.py , moramo je instalirati, instalirati knjižnicu. Upotrijebite sljedeći kod za instaliranje knjižnice
sudo python setup.py instalirati
To je to što je knjižnica trebala biti uspješno instalirana. Sada slično nastavimo s instaliranjem DHT knjižnice koja je također iz Adafruit-a.
Instaliranje biblioteke Adafruit DHT11 na Raspberry Pi:
DHT11 senzor radi na principu jednožičnog sustava. Vrijednost temperature i vlage osjetnik osjeća, a zatim ih prenosi kroz izlazni klin kao serijske podatke. Zatim te podatke možemo pročitati pomoću I / O pina na MCU / MPU. Da biste razumjeli kako se čitaju ove vrijednosti, morali biste pročitati podatkovnu tablicu senzora DHT11, ali za sada ćemo jednostavnije koristiti knjižnicu za razgovor sa senzorom DHT11.
DHT11 knjižnice osigurava Adafruit može se koristiti za, DHT11 DHT22 i drugih senzora jedna žica temperaturu i. Postupak instaliranja knjižnice DHT11 također je sličan onome koji se slijedi za instaliranje LCD biblioteke. Jedini redak koji bi se promijenio je veza na GitHub stranici na kojoj je spremljena DHT knjižnica.
Unesite četiri naredbena reda jedan po jedan na terminal da biste instalirali DHT knjižnicu
git klon
cd Adafruit_Python_DHT sudo apt-get install graditi-bitno python-dev sudo python setup.py instalirati
Nakon što završite, imat ćete obje knjižnice uspješno instalirane na našoj Raspberry Pi. Sada možemo nastaviti s hardverskom vezom.
Kružni dijagram:
Kompletna shema spoja Povezivanje DH11 s Raspberry pi dana je u nastavku, izgrađena je pomoću Fritzinga. Slijedite veze i napravite krug

I LCD i DHT11 senzor rade s napajanjem od + 5V, tako da koristimo 5V pinove na Raspberry Pi za napajanje oba. Otpor za povlačenje vrijednosti 1k koristi se na izlaznom zatiču senzora DHT11, ako koristite modul, ovaj otpor možete izbjeći.
Trimer pot 10k dodaje se Vee pin LCD za kontrolu razine kontrasta na LCD zaslonu. Osim toga, sve su veze prilično ravne. Ali zabilježite koje GPIO pinove upotrebljavate za spajanje pinova jer će nam trebati u našem programu. Grafikon u nastavku trebao bi vam omogućiti da otkrijete GPIO brojeve pinova.

Koristite tablicu i uspostavite veze prema shemi spojeva. Za povezivanje sam koristio ploču za pločice i kratkospojnike. Budući da sam koristio DHT11 modul, spojio sam ga izravno na Raspberry Pi. Moj hardver je izgledao ovako u nastavku

Python programiranje za DHT11 senzor:
Moramo napisati program za očitavanje vrijednosti temperature i vlažnosti s DHT11 senzora, a zatim isti prikazati na LCD-u. Budući da smo preuzeli knjižnice i za LCD i za DHT11 senzor, kôd bi trebao biti prilično izravan. Piton kompletan program možete pronaći na kraju ove stranice, ali možete čitati dalje razumjeti kako program radi.
Moramo uvesti LCD knjižnicu i DHT11 knjižnicu u svoj program da bismo koristili funkcije povezane s njom. Budući da smo ih već preuzeli i instalirali na naš Pi, možemo ih jednostavno upotrijebiti u sljedećim redovima. Također uvozimo knjižnicu vremena da bismo koristili funkciju odgode.
vrijeme uvoza # vrijeme uvoza za stvaranje kašnjenja uvoz Adafruit_CharLCD kao LCD # Uvoz LCD biblioteke uvoz Adafruit_DHT # Uvoz DHT knjižnice za senzor
Dalje, moramo odrediti na koje je igle povezan senzor i koja se vrsta temperaturnog senzora koristi. Varijabla sensor_name se dodjeljuje Adafruit_DHT.DHT11 jer mi smo pomoću senzora DHT11 ovdje. Izlazni pin senzora povezan je s GPIO 17 Raspberry Pi i stoga dodijeljujemo 17 varijabli sensor_pin kao što je prikazano dolje.
sensor_name = Adafruit_DHT.DHT11 # koristimo DHT11 senzor sensor_pin = 17 # Senzor je povezan s GPIO17 na Pi
Slično tome, također moramo definirati na koje je GPIO pinove povezan LCD. Ovdje koristimo LCD u 4-bitnom načinu, stoga ćemo imati četiri podatkovne i dva kontrolna pina za spajanje na GPIO pinove pi. Također, pin za pozadinsko osvjetljenje možete spojiti na GPIO pin ako želimo kontrolirati i pozadinsko osvjetljenje. Ali za sada to ne koristim, pa sam mu dodijelio 0.
lcd_rs = 7 #RS LCD-a spojen je na GPIO 7 na PI lcd_en = 8 #EN LCD-a spojen je na GPIO 8 na PI lcd_d4 = 25 # D4 LCD-a spojen je na GPIO 25 na PI lcd_d5 = 24 # D5 LCD-a je spojen na GPIO 24 na PI lcd_d6 = 23 # D6 LCD-a spojen je na GPIO 23 na PI lcd_d7 = 18 # D7 LCD-a spojen je na GPIO 18 na PI lcd_backlight = 0 #LED nije spojen pa dodjeljujemo 0
Također možete povezati LCD u 8-bitnom načinu s Raspberry pi, ali tada će se besplatni pinovi smanjiti.
LCD biblioteka tvrtke Adafruit koju smo preuzeli može se koristiti za sve vrste karakterističnih LCD zaslona. Ovdje u našem projektu koristimo LCD zaslon 16 * 2 pa spominjemo broj redaka i stupaca na varijablu kao što je prikazano u nastavku.
lcd_columns = 16 #za 16 * 2 LCD lcd_rows = 2 #za 16 * 2 LCD
Sada, kada smo proglasili LCD pribadače i broj redaka i stupaca za LCD, možemo pokrenuti LCD zaslon pomoću sljedećeg retka koji knjižnici šalje sve potrebne podatke.
lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) # Pošaljite sve detalje o pinovima u biblioteku
Da bismo pokrenuli program, prikazujemo malu uvodnu poruku pomoću funkcije lcd.message (), a zatim dajemo odgodu od 2 sekunde kako bi poruka postala čitljiva. Za ispis u 2. retku može se koristiti naredba \ n kao što je prikazano dolje
lcd .message ('DHT11 s Pi \ n -CircuitDigest') # Dajte uvodnu poruku time.sleep (2) # pričekajte 2 sekunde
Napokon, unutar naše while petlje trebali bismo očitati vrijednost temperature i vlažnosti sa senzora i prikazivati je na LCD zaslonu svake 2 sekunde. Kompletni program unutar while petlje prikazan je u nastavku
dok je 1: # Beskonačna petlja
vlaga, temperatura = Adafruit_DHT.read_retry (ime_senzora, osjetnik_pina) #čitajte sa senzora i spremite odgovarajuće vrijednosti u varijablu temperature i vlažnosti
lcd.clear () # Očistite LCD zaslon lcd.message ('Temp =%.1f C'% temperature) # Prikažite vrijednost temperature lcd.message ('\ nHum =%.1f %%'% vlage) #Display vrijednost vremena vlage.spavanje (2) # Pričekajte 2 sekunde, a zatim ažurirajte vrijednosti
Vrijednost temperature i vlage možemo lako dobiti iz senzora pomoću ovog jednog retka u nastavku. Kao što vidite, vraća dvije vrijednosti koje su pohranjene u promjenljivoj vlažnosti i temperaturi. U sensor_name i sensor_pin detalji su prošli kao parametri; ove su vrijednosti ažurirane na početku programa
vlaga, temperatura = Adafruit_DHT.read_retry (naziv_senzora,_pint senzora)
Za prikaz naziva varijable na LCD zaslonu možemo koristiti identifikatore poput & d,% c itd. Ovdje, budući da prikazujemo broj s pomičnim zarezom sa samo jednom znamenkom iza decimalne točke, koristimo identifikator%.1f za prikaz vrijednosti u promjenjiva temperatura i vlaga
lcd .message ('Temp =%.1f C'% temperature) lcd .message ('\ nHum =%.1f %%'% vlage)
Mjerenje vlažnosti i temperature pomoću Raspberry Pi:
Uspostavite veze prema shemi sklopa i instalirajte potrebne knjižnice. Zatim pokrenite python program naveden na kraju ove stranice. Vaš LCD trebao bi prikazati uvodnu poruku, a zatim prikazati trenutnu vrijednost temperature i vlažnosti kao što je prikazano na donjoj slici.

Ako utvrdite da se na LCD-u ništa ne prikazuje, provjerite prikazuje li prozor ljuske pythona pogreške, ako se ne prikaže nikakva pogreška, provjerite još jednom veze i prilagodite potenciometar kako bi varirao razinu kontrasta LCD-a i provjerite imate li što na zaslon.
Nadam se da ste razumjeli projekt i uživali ste u njegovoj izradi, ako ste se suočili s bilo kakvim problemom pri dovršetku, prijavite ga u odjeljku za komentare ili koristite forum za tehničku pomoć. Trudit ću se odgovoriti na sve komentare.
Također možete provjeriti naše druge projekte pomoću DHT11 s drugim mikrokontrolerom.
