- Tarvittavat materiaalit:
- Työmenetelmät:
- Edellytykset:
- AC-kaukosäätimen toiminta:
- Piirikaavio ja selitys:
- AC-kaukosignaalien dekoodaus:
- Arduino-pääohjelma:
- Automaattisen vaihtolämpötilan säätöjärjestelmän toiminta:
Ilmastointilaite, jota pidettiin aikoinaan ylellisyystuotteena ja joka löytyi vain suurista hotelleista, elokuvateattereista, ravintoloista jne… Mutta nyt melkein jokaisella on kotonamme vaihtovirta, joka voittaa kesän / talvi ja ne, joilla on se, huolehtivat yhdestä yhteisestä asiasta. Se on heidän suuri sähkönkulutus ja siitä johtuvat laturit. Tässä projektissa aiomme tehdä pienen automaattisen lämpötilan säätöpiirin, joka voisi minimoida sähkölatureita vaihtelemalla AC-lämpötilaa automaattisesti huoneen lämpötilan perusteella. Vaihtelemalla asetettua lämpötilaa säännöllisesti voimme välttää vaihtovirran toimimisen matalammille lämpötila-arvoille pitkään ja siten kuluttaa vähemmän virtaa.
Suurin osa meistä olisi kokenut tilanteen, jossa joudumme vaihtamaan ilmastointilaitteen asetetun lämpötilan eri arvoihin vuorokauden eri aikoina pitääkseen meidät mukavina koko ajan. Tämän prosessin automatisoimiseksi tässä projektissa käytetään lämpötila-anturia (DHT11), joka lukee huoneen nykyisen lämpötilan ja lähettää kyseisen arvon perusteella komennot AC: lle infrapunapuhaltimen kautta, joka on samanlainen kuin AC: n kaukosäädin. AC reagoi näihin komentoihin ikään kuin se reagoisi kaukosäätimeensä ja säätää siten lämpötilaa. Huoneesi lämpötilan muuttuessa Arduino säätää myös AC: n asetettua lämpötilaa ylläpitääksesi lämpötilaa juuri haluamallasi tavalla. Kuulostaa hyvältä?… Katsotaanpa, miten se rakennetaan.
Tarvittavat materiaalit:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR Led
- DHT11-lämpötila- / kosteusanturi
- Mikä tahansa väri-LED ja 1K-vastus (valinnainen)
- Leipälauta
- Johtojen liittäminen
Työmenetelmät:
Kaikki kodissamme olevat kaukosäätimet, joita käytämme TV: n, kotiteatterin, AC: n jne. Ohjaamiseen, toimivat IR Blastersin avulla. Infrapunalähetinliitännän on vain IR-LED, joka voisi Blaster signaalia toistuva sykkivä; elektroniikkalaitteen vastaanotin lukee tämän signaalin. Jokaiselle kaukosäätimen painikkeelle räjäytetään ainutlaatuinen signaali, jota vastaanottimen lukemisen jälkeen käytetään tietyn ennalta määritetyn tehtävän suorittamiseen. Jos pystymme lukemaan tämän kauko-ohjaimesta tulevan signaalin, voimme sitten jäljitellä samaa signaalia IR-LEDillä, kun sitä tarvitaan aina kyseisen tehtävän suorittamiseen. Olemme aiemmin tehneet IR Blaster -piirin Universal IR Remote -sovellukseen.
TSOP on IR-vastaanotin, jota voidaan käyttää dekoodaamaan tulevan signaalin Kaukosäätimen. Tämä vastaanotin liitetään Arduinon kanssa signaaliksi jokaiselle painikkeelle ja sitten IR-lediä käytetään Arduinon kanssa matkimaan signaalia aina, kun sitä tarvitaan. Tällä tavoin voimme saada hallinnan AC: stämme Arduinon avulla.
Nyt jäljellä on vain lukea lämpötila-arvo DHT11: llä ja ohjeistaa vaihtovirtaa vastaavasti IR-signaaleilla. Jotta projekti näyttää houkuttelevammalta ja käyttäjäystävällisemmältä, olen myös lisännyt OLED-näytön, joka näyttää nykyisen lämpötilan, kosteuden ja vaihtovirran asetetun lämpötilan. Lisätietoja OLED: n käytöstä Arduinon kanssa.
Edellytykset:
Tämä automaattinen vaihtovirran lämpötilansäädinprojekti on hieman edistynyt aloittelijoille, mutta muutamien muiden opetusohjelmien avulla kuka tahansa voi rakentaa tämän ajan myötä. Joten jos olet ehdoton aloittelija OLED: lle, DHT11: lle tai TSOP: lle, palaa sitten ystävällisesti takaisin alla oleviin opetusohjelmiin, joissa voit oppia perusasiat ja miten aloittaa niiden käyttö. Lista saattaa näyttää olevan vähän pitkä, mutta luota minuun, että se on helppoa ja kannattaa oppia, ja se avaa oven monille uusille projekteille.
- Peruspiiri, jossa käytetään TSOP- ja IR-LED-valoja työskentelyyn
- DHT11: n perusliitäntäopas Arduinon kanssa
- OLED: n perusliitäntäopas Arduinon kanssa
- TSOP: n ja Arduinon yhdistäminen IR-etäarvojen lukemiseen
Varmista, että sinulla on Arduino Mega ja mikä tahansa muu Arduinon versio, koska koodin koko on raskas. Tarkista myös, oletko jo asentanut seuraavat Arduino-kirjastot, jos et asenna niitä, muodosta alla oleva linkki
- IR-etäkirjasto TSOP: lle ja IR Blasterille
- Adafruit-kirjasto OLED: lle
- GFX-grafiikkakirjasto OLED: lle
- DHT11-anturikirjasto lämpötila-anturille
AC-kaukosäätimen toiminta:
Ennen kuin aloitamme projektin, vie jonkin aikaa ja huomaa, kuinka verkkokaukosi toimii. AC-kaukosäätimet toimivat hieman eri tavalla kuin TV-, DVD IR -kaukosäätimet. Kaukosäätimessä voi olla vain 10–12 painiketta, mutta ne pystyvät lähettämään paljon erityyppisiä signaaleja. Eli kaukosäädin ei lähetä samaa koodia joka kerta samalle painikkeelle. Esimerkiksi, kun lasket lämpötilaa alas-painikkeella saadaksesi siitä 24 ° C (celsiusaste), saat signaalin joukolla tietoja, mutta kun painat sitä uudelleen asettaaksesi 25 ° C, et saa samaa tietoja, koska lämpötila on nyt 25 eikä 24 ° C. Vastaavasti 25: n koodi vaihtelee myös eri tuulettimen nopeuden, lepotila-asetusten jne. vuoksi. Älkäämme siis höpykää ympäri kaikkia vaihtoehtoja ja keskitymme vain lämpötila-arvoihin vakioarvolla muille asetuksille.
Toinen ongelma on jokaiselle painallukselle lähetettävä datamäärä, normaalit kaukosäätimet, joissa on joko 24 tai 48 bittiä, mutta vaihtovirta-kaukosäädin voi lähettää jopa 228 bittiä, koska jokainen signaali sisältää paljon tietoa, kuten Temp, Fan Speed, Uniajastus, Swing-tyyli jne. Tästä syystä tarvitsemme Arduino Megan parempiin säilytysmahdollisuuksiin.
Piirikaavio ja selitys:
Onneksi tämän automaattisen vaihtolämpötilan säätöprojektin laitteistoasennus on erittäin helppoa. Voit yksinkertaisesti käyttää leipälautaa ja tehdä liitännät alla esitetyllä tavalla.
Seuraavaa taulukkoa voidaan käyttää myös yhteyksien tarkistamiseen.
S. ei: |
Komponenttineula |
Arduino Pin |
1 |
OLED - Vcc |
5 V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED- SDA, D1, MOSI, data |
3 |
5 |
OLED- RES, RST, RESET |
7 |
6 |
OLED- DC, A0 |
5 |
7 |
OLED- CS, sirun valinta |
6 |
8 |
DHT11 - Vcc |
5 V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - signaali |
13 |
11 |
TSOP - Vcc |
5 V |
12 |
TSOP - Gnd |
Gnd |
13 |
IR-ledi - anodi |
9 |
14 |
IR-led - katodi |
Gnd |
Kun liitännät on tehty, sen pitäisi näyttää tältä alla esitetyllä tavalla. Olen käyttänyt leipälevyä siistimään asioita, mutta voit myös sinä uros-naaras johdot kytkeä kaikki komponentit
AC-kaukosignaalien dekoodaus:
Ensimmäinen vaihe AC: n hallitsemiseksi on käyttää TSOP1738: ta dekoodata AC-kaukosäätimen IR-koodit. Tee kaikki liitännät piirikaavion mukaisesti ja varmista, että olet asentanut kaikki mainitut kirjastot. Avaa nyt esimerkkiohjelma “ IRrecvDumpV2 ”, joka löytyy kohdasta Tiedosto -> Esimerkit -> IRremote -> IRrecvDumpV2 . Lataa ohjelma Arduino Megaan ja avaa Serial Monitor.
Suuntaa kaukosäädin kohti TSOP: tä ja paina mitä tahansa painiketta, sillä jokainen painamasi vastaavan signaalin lukee TSOP1738, dekoodaa Arduino ja näkyy sarjamonitorissa. Jokaisesta kauko-ohjaimen lämpötilan muutoksesta saat eri tiedot. Tallenna nämä tiedot, sillä käytämme niitä pääohjelmassa. Sarjamonitorisi näyttää tältä tältä, olen myös osoittanut Word-tiedoston, johon olen tallentanut kopioidut tiedot.
Näyttökuva näyttää koodin lämpötilan asettamiseksi 26 ° C vaihtovirta-kaukosäätimelleni. Kaukosäätimen perusteella saat erilaisen koodisarjan. Kopioi samalla tavalla kaikkien eri lämpötilojen koodit. Voit tarkistaa kaikki ilmastointilaitteen kaukosäätimen IR-koodit tämän opetusohjelman lopussa olevassa Arduino-koodissa.
Arduino-pääohjelma:
Koko Arduino-pääohjelma löytyy tämän sivun alareunasta, mutta et voi käyttää samaa ohjelmaa. Sinun on muutettava signaalikoodiarvot, jotka saimme juuri yllä olevasta esimerkkikaaviosta. Avaa pääohjelma Arduino IDE: ssä ja vieritä alaspäin alla olevalle alueelle, jossa sinun on korvattava taulukon arvot kaukosäätimellesi saamillasi arvoilla.
Huomaa, että olen käyttänyt 10 ryhmää, joista kahdella virran kytkeminen päälle ja pois päältä, kun taas loput 8 käytetään eri lämpötilan asettamiseen. Esimerkiksi Temp23: ta käytetään asettamaan 23 ° C AC-laitteellesi, joten käytä kyseisen taulukon vastaavaa koodia. Kun se on tehty, sinun tarvitsee vain ladata koodi Arduino-laitteellesi ja sijoittaa se AC: täsi vastapäätä ja nauttia viileästä tuulesta.
Koodin selitys tapahtuu seuraavasti, ensin meidän on käytettävä DHT1-lämpötila-anturia lukemaan lämpötila ja kosteus ja näyttämään se OLED-näytössä. Tämä tapahtuu seuraavalla koodilla.
DHT.luku11 (DHT11_PIN); // Lue Lämpötila ja kosteus Mitattu_lämpötila = DHT.lämpötila + temp_virhe; Mitattu_Humi = DHT. Kosteus; // tekstinäyttö testaa display.setTextSize (1); display.setTextColor (VALKOINEN); display.setCursor (0,0); display.print ("Lämpötila:"); display.print (Mitattu lämpötila); display.println ("C"); display.setCursor (0,10); display.print ("Kosteus:"); display.print (Mitattu_Humi); display.println ("%");
Kun tiedämme huoneen lämpötilan, meidän on vain verrattava sitä haluttuun arvoon. Tämä haluttu arvo on vakioarvo, joka asetetaan ohjelmassani arvoon 27 ° C (celsiusaste). Joten tämän vertailun perusteella asetamme vastaavan vaihtolämpötilan alla olevan kuvan mukaisesti
jos (Mitattu lämpötila == Haluttu lämpötila + 3) // Jos vaihtovirta on päällä ja mitattu lämpötila on erittäin korkea kuin haluttu {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // Lähetä signaali asettamaan 24 * C AC_Temp = 24; }
Tässä AC-arvoksi asetetaan 24 ° C, kun mitattu lämpötila on 30 ° C (koska haluttu lämpötila on 27). Vastaavasti voimme luoda monia If- silmukoita asettamaan eri lämpötilatasot mitatun lämpötilan perusteella, kuten alla on esitetty.
if (Mitattu lämpötila == Haluttu lämpötila-1) // Jos vaihtovirta on päällä ja mitattu lämpötila on matalampi kuin haluttu arvo {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Lähetä signaali asetukselle 28 * C AC_Temp = 28; } if (Mitattu lämpötila == Haluttu lämpötila-2) // Jos vaihtovirta on päällä ja mitattu lämpötila on hyvin alhainen kuin haluttu arvo {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Lähetä signaali asetukselle 29 * C AC_Temp = 29; } if (Mitattu lämpötila == Haluttu lämpötila-3) // Jos vaihtovirta on päällä ja mitattu lämpötila on hyvin alhainen haluttu arvo {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Lähetä signaali asettamaan 30 * C AC_Temp = 30; }
Automaattisen vaihtolämpötilan säätöjärjestelmän toiminta:
Kun koodisi ja laitteistosi ovat valmiit, lataa koodi taululle ja huomaat, että OLED näyttää jotain vastaavaa.
Aseta nyt piiri ilmastointilaitettasi vastapäätä ja huomaat, että vaihtovirtalämpötilaa ohjataan huonelämpötilan perusteella. Voit yrittää nostaa lämpötilaa DHT11-anturin lähellä tarkistaaksesi, onko AC-lämpötilaa säädetty alla olevan videon mukaisesti.
Voit säätää ohjelmaa suorittamaan haluamasi toiminnot; tarvitset vain koodin, jonka sait esimerkkiluonnoksesta. Toivottavasti ymmärrät tämän automaattisen lämpötilansäätimen projektin ja nautit rakentamaan jotain hyvin samanlaista. Tiedän, että täällä on paljon paikkoja juuttua, mutta älä huoli silloin. Käytä vain foorumia tai kommenttiosaa selittääksesi ongelmasi, ja täällä olevat ihmiset auttavat sinua varmasti ratkaisemaan sen.