Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Täällä haluaisin rakentaa huoneeni lämpötila- ja kosteusindikaattorin. Käytin yksittäistä 8x8 LED-matriisia kaksinumeroisten numeroiden näyttämiseen, ja mielestäni osa projektista tuli hyödyllisemmäksi. Laatikoin puun maalatun pahvilaatikon avulla rakennetun lopullisen.
Tarvikkeet
- Arduino Nano x1
- DHT11 lämpötila- ja kosteusanturi x1
- 8x8 LED -matriisi ja MAX7219 x1
- 10K vastus x1
- Otsikon johdot
- 5V virtalähde x1
- Pahvilaatikko (4x8x13 cm)
Vaihe 1: Kaavio
Digitaalinen lämpötila- ja kosteusanturi DHT11 tuottaa lämpötilan välillä 0-50 ° C ja kosteuden välillä 20-90%. Lämpötilan tarkkuus on ± 2 ° C (maksimi) ja kosteustarkkuus ± 5%.
DHT11 tarjoaa myös kastepistearvot. Kastepiste on lämpötila, johon ilma on jäähdytettävä, jotta se kyllästyy vesihöyryllä. Jäähdyttämisen jälkeen ilmassa oleva vesihöyry tiivistyy muodostaen nestemäistä vettä.
Vaihe 2: Johdotus ja nyrkkeily
Ensin maalasin pahvilaatikon akryylimaalilla ja viimeistelin 1 päivän kuivumisen jälkeen hiuslakalla. Tein neliömäisen ikkunan LED -näyttöön etukanteen. Avasin myös pienen suorakulmion reiän Arduino Nano -virtalähteelle ja laitoin useita reikiä DHT11 -anturin lähelle.
Kiinnitin Arduinon päälaatikon kulmaan pienellä laatikolla ja kuumalla piillä.
Sijoitin LED -matriisin ikkunaan läpinäkyvillä teippinauhoilla. Tässä on tärkeää sijoittaa se 90 ° vastapäivään, koska koodi käyttää ylempää 4 riviä kymmeniä numeroita ja alempia 4 riviä yksikkönumeroita varten. Moduulissa käytin sivua MAX7219: n kanssa pohjapuolella.
Koska asetin Arduinon ja anturin laatikon sulkupuolelle, en voinut sulkea sitä kokonaan?. Kannattaa valita toinen puoli:).
Vaihe 3: Koodi
Lataa ensin DHT11: n (https://github.com/adidax/dht11) ja LED -matriisin (https://github.com/wayoda/LedControl) kirjasto, jos sinulla ei vielä ole sitä.
Koodi käyttää LED -matriisin ensimmäistä 4 riviä kymmeninä ja viimeistä 4 riviä yksikköinä. Jos esimerkiksi tarkistat koodin "yksi", näet "11" 90 ° kiertäen myötäpäivään. Jos haluat muuttaa näitä koodeja, huolehdi niistä.
yksi tavu = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};
Koodit numeroiden saamiseksi anturin lukemasta ovat:
yksikköä = kostea % 10; kymmeniä = (kostea /10) % 10;
Kymmeniä numeroita varten silmukka suoritetaan seuraavasti:
jos (kymmeniä == 1) {for (int c = 0; c <4; c ++) {lc.setRow (0, c, one [c]); }
Yksiköiden numerot silmukalle suoritetaan seuraavasti:
jos (yksiköt == 1) {for (int c = 4; c <8; c ++) {lc.setRow (0, c, one [c]); }
Näyttöjärjestys on silmukassa seuraavasti:
"° C" -> lämpötila -> "hum" -> kosteus -> "dp" -> kastepiste -> kastepisteen merkitys (selitetty alla)
Minulla on tietoa siitä, miten ihmiset kokevat sään kastepisteen mukaan, ja laitan nämä tiedot koodiin seuraavasti:
dp <10: kuiva
9 <dp <15: hyvä (g..d)
14 <dp <18: Sweltry (sw)
17 <dp <24: Sweltry plus (sw +)
dp> 23: märkä
Näiden sanojen näyttö ei ole hyvä, mutta silti ymmärrettävissä yhdelle 8x8 -näytölle