- Piirikaavio Google Assistantin ohjaamalle kotiautomaatiolle
- Blynk-sovelluksen määrittäminen
- IFTTT: n määrittäminen Google Assistantin ja Blynkin kanssa lukemaan merkkijonoa
- Arduinon ohjelmointi Blynk Home Automationille
- Piirilevyn valmistus PCBGoGolla
- Piirilevyn kokoaminen
- Kortin liittäminen vaihtovirtalähteisiin / jatkekortteihin
Virtuaalisten avustajien, kuten Google Assistant ja Alexa, kehittyessä kotiautomaatio ja ääniohjatut sovellukset ovat tulossa normaaleiksi. Nyt olemme itse rakentaneet monia kodiautomaatioprojekteja yksinkertaisista automaattisista portaikkovaloista IoT-pohjaiseen verkko-ohjattuun kotiautomaatioon Raspberry Pi: n avulla. Mutta tämä projekti on erilainen, ajatuksena on luoda käytännöllinen koti-automaatiolevy, joka mahtuu seinämme vaihtovirtayksiköihin ja pysyy piilossa sen sisällä. Piirilevy ei saa häiritä tehoyksikön kytkimien normaalia toimintaa, toisin sanoen niiden tulisi kytkeytyä päälle tai pois päältä myös käsikytkimillä. Ja sanomatta, sen pitäisi myös pystyä hallitsemaan samaa kuormaa äänellä Google-avustajan avulla ja asettamaan myös ajastin, jotta kaikki kuormat voivat kytkeytyä automaattisesti päälle tai pois päältä ennalta määrätyn vuorokauden aikana.
Tämä projekti on hyvin samanlainen kuin ESP8266 Smart Wi-Fi -liitäntä, mutta täällä, koska käytämme ESP12: ta, meillä on enemmän GPIO-nastoja, joiden avulla voimme hallita neljää vaihtovirtaa samanaikaisesti. Koska olemme integroineet Blynkin ja Google Assistantin, projekti on mielenkiintoinen ja käytännöllinen käyttää. Tätä projektia varten olemme rakentaneet piirilevyt PCBGOGO-piirilevyjen valmistuspalvelun avulla. Artikkelin myöhemmässä osassa olemme toimittaneet piirille suunnitellun Gerber-tiedoston ja selittäneet myös täydellisen menettelyn piirilevyjen tilaamiseksi PCBGOGO: lta.
Varoitus: Tämä projekti edellyttää työskentelyä verkkovirran kanssa. On suositeltavaa noudattaa äärimmäistä varovaisuutta työskenneltäessä suurilla vaihtojännitteillä. Varmista, että kokenut henkilö valvoo sinua, jos olet uusi.
Piirikaavio Google Assistantin ohjaamalle kotiautomaatiolle
Kotiautomaation täydellinen kytkentäkaavio löytyy alla.
Kuten näette, piiri on hyvin yksinkertainen, aloitetaan selitys ESP12E Wi-Fi -moduulista. Voit myös tarkistaa alla olevan videon saadaksesi yksityiskohtaisen selvityksen projektista. Moduuli voidaan ohjelmoida aivan kuten nodeMCU-kehityskortit ja se vähentää paljon tilaa. Oletuksena virran ollessa päällä ESP12E siirtyy toimintatilaan. Sen ohjelmoimiseksi meidän on käytettävä Palauta ja Flash-painiketta. Tämä tarkoittaa, että ESP12 asetetaan ohjelmointitilaan, pidä nollaus- ja salamapainiketta painettuna ja vapauta sitten nollauspainike. Tämä käynnistää ESP12E: n salamapainiketta painettaessa, vapauta nyt salamapainike ja ESP12E siirtyy ohjelmointitilaan. Ohjelmoinnin jälkeen sinun on painettava nollauspainiketta uudelleen käynnistääksesi ESP12E: n normaalissa käyttötilassa ladatun ohjelman suorittamiseksi. Ohjelmointinastat Rx, Rx,ja Ground on laajennettu, jotta ne voidaan liittää FTDI-korttiin tai USB to TTL -muuntimeen. Muista liittää ESP12: n Tx-tappi ohjelmoijan Rx-nastaa ja päinvastoin.
Muita lipputappeja I1 - I4 ja R1 - R4 käytetään kytkimien ja releiden liittämiseen. Tapit I1 - I4 tarkoittavat tuloliittimiä. Kaikki nämä nastat tukevat sisäistä vetovastusta, joten meidän on vain kytkettävä laajennuskotelon kytkimet tulotappiin alasvetovastuksen kautta alla olevan kuvan mukaisesti.
Vastaavasti releiden lähtöliittimiä R1 - R4 käytetään releiden ohjaamiseen. Olemme käyttäneet tavallista releohjainpiiriä BC547- ja IN4007-diodien kanssa alla olevan kuvan mukaisesti. Huomaa, että releet tulisi laukaista 5 V: lla, mutta ESP12E-lähtöliittimet ovat vain 3,3 V. Joten on välttämätöntä käyttää transistoria releiden käyttämiseen. Olemme myös sijoittaneet LEDin transistorin kantatielle niin, että aina kun transistori laukeaa, myös LED syttyy.
Lopuksi kaikkien piirejemme virtalähteeksi olemme käyttäneet Hi-Link AC-DC-muunninta muuntamaan 220 V AC: n 5 V DC: ksi. Tämä 5 V DC muunnetaan sitten 3,3 V: ksi AMS117-3,3 V: n jännitesäätimellä. 5 V: tä käytetään releiden laukaisemiseen ja 3,3 V: tä käytetään ESP21 Wi-Fi -moduulin virtalähteeseen.
Blynk-sovelluksen määrittäminen
Olemme aiemmin rakentaneet monia Blynk-projekteja, kuten Wi-Fi Controlled Arduino Robot, joten emme pääse yksityiskohtiin blynk-sovelluksen määrittämisestä. Mutta yksinkertaisesti sanottuna, asenna vain sovellus, luo uusi projekti NodeMCU: lle ja aloita widgetien sijoittaminen alla olevan kuvan mukaisesti.
Olen käyttänyt virtuaalisia nastoja V1 - V4 ohjaamaan releitä 1 - 4 projektissamme. Vaihda vaihdettavan painikkeen tyyppi. Ajastintoimintoa voidaan käyttää myös virtuaalisten nastojen käynnistämiseen automaattisesti asetetun ajan, vaikka puhelin olisi sammutettu. Olen esimerkiksi käyttänyt ajastinta vain virtuaalitappiin V1, mutta voit käyttää sitä tarvittaessa kaikkiin neljään nastaa.
Varmista, että hankit blynk-todennustunnuksen arvon projektisivultasi. Napsauta vain mutterikuvaketta (ympyröity punaisella yllä olevassa kuvassa) ja kopioi todennustunnus kopioimalla kaikki -vaihtoehto ja liittämällä se turvalliseen paikkaan, jota tarvitsemme Arduino-kortin ohjelmoinnissa.
IFTTT: n määrittäminen Google Assistantin ja Blynkin kanssa lukemaan merkkijonoa
Helpoin tapa käyttää Google Assistantia kodin automatisointiin on käyttää IFTTT: tä. Olemme myös rakentaneet monia IFTTT-hankkeita aiemmin NodeMCU: n ja Raspberry Pi: n kanssa. Tässä projektissa käytämme Blynk- sovellusta käynnistämään verkkokoukku Google-avustajan avulla. Se on hyvin samanlainen kuin ääniohjattu kotiautomaatio ja ääniohjattu FM-radio-projekti. Paitsi, tässä käytämme blynkia IFTTT: n kanssa merkkijonon lähettämiseen, mikä tekee siitä paljon helpompaa ja mielenkiintoisempaa.
Pohjimmiltaan käytämme blynkissä olevia virtuaalisia nastoja V5 ja V6 käynnistyskomennon lähettämiseen. V5: tä käytetään käynnistyskomentoihin ja V6: ta komentojen sammuttamiseen. Esimerkiksi, jos sanomme, kytke televisio ja lamppu päälle. Merkkijonokomento "TV ja lamppu" lähetetään NodeMCU: lle API: ta käyttämällä. API: n syntaksit ovat seuraavat.
http://188.166.206.43//update/V5?value=TV ja lamppu
Nyt meidän on vain tehtävä IFTTT: ssä se, että käytät google-avustajaa IF: nä ja verkkokoukkoja THAT: na, joten kuuntele tätä komentoa ja lähetä tiedot NodeMCU: lle käyttämällä yllä mainittua sovellusliittymää. Käynnistyssovellus muodostaa saman alla.
Huomaa, että sinun on valittava sanottava lause teksti-ainesosalla -vaihtoehto, kun luot reseptin Google Assistantille. Samoin sinun on toistettava sama virtuaalitapille V6 releiden sammuttamiseksi. Voit tarkistaa videon tämän sivun alaosasta saadaksesi lisätietoja.
Arduinon ohjelmointi Blynk Home Automationille
Tämän projektin täydellinen Arduino-koodi löytyy tämän sivun alaosasta. Saman selitys on seuraava. Ennen sitä varmista, että voit käyttää Blynkia ja Program NodeMCU: ta Arduino IDE: ltä. Jos ei, noudata ESP12-artikkelin käytön aloittamista. Lisää myös blynk-kirjasto Arduino IDE -ohjelmaan käyttämällä piirihallintaa.
Kuten aina, aloitamme koodimme määrittelemällä tulo- ja lähtönastat, tässä tulo tulee kytkimistä ja lähtö releistä. Olemme määrittäneet kaikkien neljän kytkimen pin-nimet sw: ksi ja releet reliksi, kuten alla voit nähdä.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
Seuraavassa vaiheessa sinun on annettava joitain tunnistetietoja, kuten blynk-todennustunnus, ja käyttäjänimi ja salasana Wi-Fi-reitittimelle, johon nodeMCU: n tulisi olla yhteydessä. Vilkkuva todennustunnus saadaan blynk-sovelluksesta. Opimme siitä lisää blynk-sovelluksen määrittämisessä.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // hanki blynk-sovelluksesta char ssid = "home_wifi"; char pass = "fakepass123";
Seuraavaksi olemme antaneet määritelmän funktiolle nimeltä read_switch_toggle () . Tässä toiminnossa verrataan kytkimien nykyistä tilaa ja edellistä tilaa. Jos kytkin on kytketty päälle tai pois päältä eli jos kytkintä on kytketty. Kytkimen tila muuttuu, toiminto seuraa tätä muutosta ja palauttaa kytkimen numeron. Jos muutosta ei havaita, se palauttaa arvon 0.
int luku_kytkin_toggle () {int tulos = 0; // Huomaa kaikki aiemmat arvot (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Lue kytkinten nykyinen tila crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // vertaa nykyistä ja pvs-tilaa kohteelle (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {tulos = (i + 1); // jos jokin kytkin on kytketty, saamme kytkimen numeron tuloksena; } muu tulos = 0; // ellei muutostulosta 0} palaa tulos; // palauta tulos}
Seuraavaksi meillä on koodi blynk-sovellukselle. Käytämme virtuaalisia nastoja V1 - V6 älykkään liitäntäkotelon ohjaamiseen. Nastoja V1 - V4 käytetään ohjaamaan releitä 1 - 4 vastaavasti suoraan blynk-sovelluksesta. Alla oleva koodi näyttää, mitä tapahtuu, kun V1 laukaistaan blynk-sovelluksesta. Luemme vain tilan (HIGH tai LOW) ja ohjaamme releä vastaavasti.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Samoin virtuaalisia nastoja voidaan käyttää myös merkkijonon lukemiseen blynk-sovelluksesta. Opimme myöhemmin lähettämään merkkijonon Google Assistantista NodeMCU: lle IFTTT: n ja Google Assistantin avulla myöhemmin, mutta nyt katsotaanpa, kuinka NodeMCU-koodi lukee tämän merkkijonon ja etsii tiettyä avainsanaa ja laukaisee releen vastaavasti.
Alla olevasta koodista näet, että kun virtuaalinen nasta V5 laukaistaan, saamme sen välittämän merkkijonon merkkijonomuuttujaksi nimeltä ON_message . Sitten tämän merkkijonomuuttujan ja inderOf-menetelmän avulla etsimme, onko avainsanoja, kuten "lamppu", "LED", "musiikki", "TV", jos kyllä, käynnistämme kyseisen kuorman. Jos avainsana "kaikki" havaitaan, otamme kaiken käyttöön. Sama voidaan tehdä myös V6: lle sammuttamaan releet. Ymmärrämme tästä enemmän, kun pääsemme IFTTT-osioon.
BLYNK_WRITE (V5) {Merkkijono ON_viesti = param.asStr (); Serial.println (ON_viesti); if (ON_message.indexOf ("lamppu")> = 0) digitalWrite (rel1, HIGH); if (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("musiikki")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("kaikki")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Lopuksi silmukan toiminnon sisällä meidän on vain tarkistettava, ovatko painikkeet kytkimen asennossa muuttuneet. Jos kyllä, käytämme alla olevan kuvan mukaista kytkentätapausta vaihtamaan kyseisen releen sijaintia.
kytkin (toggle_pin) {tapaus 0: tauko; tapaus 1: Serial.println ("Vaihtorele 1"); digitalWrite (rel1, relay_state); tauko; tapaus 2: Serial.println ("Vaihtorele 2"); digitalWrite (rel2, relay_state); tauko; tapaus 3: Serial.println ("Vaihtorele 3"); digitalWrite (rel3, relay_state); tauko; tapaus 4: Serial.println ("Vaihtorele 4"); digitalWrite (rel4, relay_state); tauko; }}
Piirilevyn valmistus PCBGoGolla
Nyt ymmärrämme, miten kaaviot toimivat, voimme jatkaa piirilevyn rakentamista kotiautomaatioprojektillemme. Yllä olevan piirin piirilevyn asettelu on myös ladattavissa Gerberinä linkistä.
- Lataa GERBER ääniohjatulle kotiautomaatiolle Google Assistantilla
Nyt suunnittelumme on valmis, on aika saada ne valmistettua Gerber-tiedostolla. Voit tehdä piirilevyn PCBGOGO: lta melko helppoa yksinkertaisesti noudattamalla seuraavia ohjeita:
Vaihe 1: Mene osoitteeseen www.pcbgogo.com, rekisteröidy, jos olet ensimmäinen kerta. Syötä sitten piirilevyn prototyyppi -välilehdelle piirilevyn mitat, kerrosten määrä ja tarvitsemasi piirilevyn määrä. Olettaen, että piirilevy on 80 cm × 80 cm, voit asettaa mitat alla olevan kuvan mukaisesti.
Vaihe 2: Jatka napsauttamalla Lainaa nyt -painiketta. Sinut siirretään sivulle, jossa voit tarvittaessa asettaa muutaman lisäparametrin, kuten käytetyn materiaalin raidan etäisyys jne. Mutta useimmiten oletusarvot toimivat hyvin. Ainoa asia, joka meidän on otettava huomioon tässä, on hinta ja aika. Kuten näette, rakennusaika on vain 2-3 päivää ja se maksaa vain 5 dollaria piirilevylle. Voit sitten valita haluamasi toimitustavan vaatimuksesi perusteella.
Vaihe 3: Viimeinen vaihe on lähettää Gerber-tiedosto ja jatkaa maksua. Varmistaaksesi prosessin sujuvuuden, PCBGOGO tarkistaa ennen maksun suorittamista, onko Gerber-tiedostosi kelvollinen. Näin voit olla varma, että piirilevysi on valmistusystävällinen ja tavoittaa sinut sitoutuneena.
Piirilevyn kokoaminen
Kun levy oli tilattu, se saapui minuun muutaman päivän kuluttua kuriirin kautta siististi merkittyyn, hyvin pakattuun laatikkoon, ja kuten aina, piirilevyn laatu oli mahtava. Minun vastaanottama piirilevy on esitetty alla. Kuten näette, sekä ylempi että alin kerros ovat osoittautuneet odotetusti.
Vias ja tyynyt olivat kaikki oikean kokoisia. Kesti noin 15 minuuttia kokoonpano piirilevylle saada toimiva piiri. Kokoonpano on esitetty alla.
Kortin liittäminen vaihtovirtalähteisiin / jatkekortteihin
Piirilevy on suunniteltu kiinnitettäväksi kodeissamme oleviin pistorasioihin. Mutta tämän projektin vuoksi käytämme laajennuslaatikkoa. Jos haluat pysyvämmän ratkaisun, johda tämä johto pistorasiaan, kuten alla näkyy, piirilevyn pituus on riittävän pieni, jotta se voidaan sijoittaa verkkovirtaan.
Varmista, että noudatat turvaohjeita työskennellessäsi verkkovirralla. Seuraa alla olevaa piirikaaviota ymmärtääksesi, kuinka releet ja kytkimet kytketään piirilevyyn.
Yhteyskaavio on alhaalla vain yhdelle releelle ja kytkimelle, mutta voit vain kopioida saman myös kolmelle muulle. Kun liitännät on tehty, korttisi pitäisi näyttää tältä
Kun liitännät on tehty, varmista, että olet kiinnittänyt ne tiukasti ruuviliittimillä ja käytä myös kuumaa liimaa turvallisuuden lisäämiseksi. Pakkaa kaikki takaisin laatikkoon ja meidän pitäisi olla valmiita testaukseen. Löydät tämän projektin täydellisen toiminnan alla olevasta videosta.
Toivottavasti pidit artikkelista ja opit jotain hyödyllistä. Jos sinulla on kysyttävää, jätä ne alla olevaan kommenttiosioon tai käytä foorumeitamme.