2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Ovdje bih želio izgraditi indikator temperature i vlažnosti u svojoj sobi. Koristio sam jednu LED matricu 8x8 za prikaz dvoznamenkastih brojeva i mislim da je taj dio projekta postao korisniji. Upakovao sam u finalu kartonski karton, obojen kao drvo.
Supplies
- Arduino Nano x1
- DHT11 Senzor temperature i vlažnosti x1
- 8x8 LED matrica sa MAX7219 x1
- 10K otpornik x1
- Žice zaglavlja
- 5V napajanje x1
- Kartonska kutija (4x8x13 cm)
Korak 1: Shema
DHT11 digitalni senzor temperature i vlažnosti isporučuje temperature između 0 - 50 ° C i vlažnost između 20% do 90%. Tačnost temperature je ± 2 ° C (maksimalna), a tačnost vlažnosti ± 5%.
DHT11 također daje vrijednosti rosišta. Tačka rošenja je temperatura na koju se zrak mora ohladiti da postane zasićen vodenom parom. Kada se dodatno ohladi, vodena para u zraku će se kondenzirati u tečnu vodu.
Korak 2: Ožičenje i boks
Prvo sam obojila kartonsku kutiju akrilnom bojom, a nakon sušenja 1 dan završila sam lakom za kosu. Napravio sam kvadratni prozor za LED ekran na prednjoj strani poklopca. Otvorio sam i malu pravokutnu rupu za napajanje Arduino Nano i stavio nekoliko rupa blizu senzora DHT11.
Popravio sam Arduino u kut glavne kutije pomoću male kutije i vrućeg silicija.
Postavio sam LED matricu u prozor koristeći prozirne trake. Ovdje je važno postaviti ga sa rotacijom za 90 ° u smjeru suprotnom od kazaljke na satu jer će kod koristiti gornja 4 reda za desetke, a donja 4 reda za znamenke jedinica. Za modul koji sam koristio strana sa MAX7219 bi trebala biti na bazi.
Budući da sam postavio Arduino i senzor na zatvarajuću stranu kutije, nisam ga mogao potpuno zatvoriti?. Bolje izaberi drugu stranu:).
Korak 3: Kodirajte
Prvo učitajte biblioteku za DHT11 (https://github.com/adidax/dht11) i LED matricu (https://github.com/wayoda/LedControl) ako to već niste učinili.
Kod koristi prva 4 reda LED matrice kao desetke, a posljednja 4 reda kao jedinice. Tako, na primjer, ako provjerite kôd za "jedan", vidjet ćete "11" rotirano za 90 ° u smjeru kazaljke na satu. Ako želite promijeniti ove kodove, vodite računa o tom detalju.
bajt jedan = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};
Kodovi za dobivanje znamenki iz očitanja senzora su:
jedinice = vlažno % 10; desetice = (vlažno /10) % 10;
Za desetke znamenke for petlja radi na sljedeći način:
if (desetice == 1) {for (int c = 0; c <4; c ++) {lc.setRow (0, c, jedan [c]); }
Za znamenke jedinica petlja for radi na sljedeći način:
if (jedinice == 1) {for (int c = 4; c <8; c ++) {lc.setRow (0, c, jedan [c]); }
Redoslijed prikaza je u petlji na sljedeći način:
"° C" -> temperatura -> "brujanje" -> vlažnost -> "dp" -> tačka rose -> značenje tačke rose (objašnjeno u nastavku)
Imam neke podatke o tome kako ljudi osjećaju vrijeme prema tački rosišta i stavili smo te podatke u kôd na sljedeći način:
dp <10: suho
9 <dp <15: dobro (g..d)
14 <dp <18: Svjetlovina (sw)
17 <dp <24: Sweltry plus (sw +)
dp> 23: mokro
Prikaz ovih riječi nije dobar, ali je ipak razumljiv za jedan ekran 8x8