- Schéma zapojenia pre domácu automatizáciu riadenú asistentom Google
- Nastavenie aplikácie Blynk
- Nastavenie IFTTT s Google Assistant a Blynk na čítanie reťazca
- Programovanie Arduina pre domácu automatizáciu Blynk
- Výroba DPS pomocou PCBGoGo
- Montáž DPS
- Pripojenie dosky k sieťovým jednotkám / rozširujúcim doskám
S pokrokom vo virtuálnych asistentoch, ako sú Google Assistant a Alexa, sa automatizácia domácnosti a aplikácie ovládané hlasom stávajú bežnými. Teraz sme sami vytvorili mnoho projektov domácej automatizácie, od jednoduchých automatických svetiel schodiska až po domácu automatizáciu pomocou internetu založenú na IoT pomocou Raspberry Pi. Ale tento projekt je tu iný, ide o to, aby sme vytvorili praktickú dosku domácej automatizácie, ktorá sa zmestí do našich napájacích jednotiek na striedavý prúd na našich stenách a zostane v nej skrytá. Doska by nemala prerušovať normálnu činnosť spínačov našej výkonovej jednotky, to znamená, že by sa mala zapínať alebo vypínať aj pomocou manuálnych spínačov. A bez toho, aby to bolo povedané, mal by tiež byť schopný ovládať rovnakú záťaž pomocou hlasu pomocou pomocníka Google a tiež nastaviť časovač, aby sa akákoľvek záťaž mohla automaticky zapnúť alebo vypnúť počas nastaveného času dňa.
Tento projekt je veľmi podobný nášmu konektoru ESP8266 Smart Wi-Fi, ale keďže tu budeme používať ESP12, budeme mať viac GPIO pinov, ktoré nám umožnia ovládať súčasne štyri AC záťaže. Pretože sme integrovali aj Blynk a Google Assistant, projekt sa stáva zaujímavým a praktickým. Pre tento projekt sme postavili dosky s plošnými spojmi pomocou služby výroby PCB PCBGOGO. V ďalšej časti článku sme poskytli súbor Gerber určený pre daný obvod a tiež sme vysvetlili kompletný postup objednávania dosiek plošných spojov od spoločnosti PCBGOGO.
Varovanie: Tento projekt zahŕňa prácu so sieťovým napätím AC. Upozorňujeme, že pri práci s vysokým striedavým napätím je potrebné postupovať mimoriadne opatrne. Ak ste nový, musí na vás dohliadať skúsená osoba.
Schéma zapojenia pre domácu automatizáciu riadenú asistentom Google
Kompletnú schému zapojenia pre domácu automatizáciu nájdete nižšie.
Ako vidíte, obvod je veľmi jednoduchý, začnime vysvetlením od Wi-Fi modulu ESP12E. Môžete si tiež pozrieť video nižšie, kde nájdete podrobné vysvetlenie projektu. Modul je možné programovať rovnako ako vývojové dosky nodeMCU a znižuje tak veľa miesta. Štandardne po zapnutí prejde ESP12E do prevádzkového režimu. Aby sme to mohli naprogramovať, musíme použiť tlačidlo Reset a Flash. To znamená prepnúť ESP12 do programovacieho režimu, stlačiť a podržať tlačidlo Reset a Flash, potom tlačidlo Reset uvoľniť. Toto naštartuje ESP12E so stlačeným tlačidlom blesku, teraz uvoľnite tlačidlo blesku a ESP12E vstúpi do programovacieho režimu. Po naprogramovaní musíte znova stlačiť resetovacie tlačidlo, aby ste spustili ESP12E v normálnom prevádzkovom režime, aby ste spustili načítaný program. Programovacie piny Rx, Rx,a uzemnenie sú rozšírené, aby sa mohli pripojiť k doske FTDI alebo prevodníkovi USB na TTL. Nezabudnite pripojiť kolík Tx ESP12 k kolíku Rx programátora a naopak.
Ostatné kolíky I1 až I4 a R1 až R4 sa používajú na pripojenie spínačov a relé. Kolíky I1 až I4 znamenajú vstupné kolíky. Všetky tieto piny podporujú interný pull-up rezistor, takže musíme len pripojiť prepínače na rozširovacej skrinke k nášmu vstupnému kolíku cez pull-down rezistor, ako je uvedené nižšie.
Podobne sa výstupné piny relé R1 až R4 používajú na riadenie relé. Použili sme štandardný budiaci obvod relé s diódou BC547 a IN4007, ako je uvedené nižšie. Upozorňujeme, že relé by sa mali spúšťať pri 5 V, ale výstupné piny ESP12E sú iba 3,3 V. Na riadenie relé je teda povinné používať tranzistor. Taktiež sme umiestnili LED do základnej cesty tranzistora, takže kedykoľvek sa tranzistor spustí, LED sa tiež rozsvieti.
Nakoniec sme na napájanie všetkých našich obvodov použili prevodník Hi-Link AC-DC na konverziu našich 220V AC na 5V DC. Tento 5V DC sa potom prevedie na 3,3V pomocou regulátora napätia AMS117-3,3V. 5 V sa používa na spustenie relé a 3,3 V sa používa na napájanie modulu Wi-Fi ESP21.
Nastavenie aplikácie Blynk
Predtým sme postavili veľa projektov spoločnosti Blynk, ako napríklad Wi-Fi Controlled Arduino Robot, takže sa nebudeme venovať podrobnostiam nastavenia aplikácie blynk. Ale aby som to zjednodušil, jednoducho nainštalujte aplikáciu, vytvorte nový projekt pre NodeMCU a začnite umiestňovať svoje widgety, ako je to znázornené nižšie.
Použil som virtuálne piny V1 až V4 na riadenie relé 1 až 4 na našom projekte. Nezabudnite zmeniť typ prepínača. Možnosť časovača sa dá použiť aj na automatické spustenie virtuálnych pinov po nastavený čas, aj keď je telefón vypnutý. Tu som napríklad použil časovač iba na virtuálny pin V1, ale v prípade potreby ho môžete použiť na všetky štyri piny.
Nezabudnite získať hodnotu tokenu blynk auth na stránke projektu. Stačí kliknúť na ikonu matice (na obrázku vyššie krúži červenou farbou) a skopírovať autorizačný token pomocou možnosti copy all a vložiť ho niekam na bezpečné miesto, čo budeme potrebovať pri programovaní dosky Arduino.
Nastavenie IFTTT s Google Assistant a Blynk na čítanie reťazca
Najjednoduchší spôsob, ako používať Google Assistant pre domácu automatizáciu, je použitie IFTTT. Tiež sme predtým vytvorili veľa projektov IFTTT s NodeMCU a Raspberry Pi. V tomto projekte použijeme aplikáciu Blynk na spustenie webhooku pomocou asistenta Google. Je to veľmi podobné nášmu projektu domácej automatizácie ovládanej hlasom a projektu rádia FM ovládaného hlasom. Ibaže tu použijeme blynk s IFTTT na odoslanie reťazca, čo ho robí oveľa jednoduchším a zaujímavejším.
V zásade budeme na odoslanie príkazu trigger používať virtuálny pin V5 a V6 na blynku. V5 sa použije pre príkazy na zapnutie a V6 sa použije pre príkazy na vypnutie. Napríklad ak povieme zapnite televíziu a lampu. Príkaz reťazca tu „TV a lampa“ sa odošle na NodeMCU pomocou API. Syntax rozhrania API je uvedená nižšie.
http://188.166.206.43//update/V5?value=TV a lampa
Teraz v IFTTT musíme urobiť iba to, že ako pomocníka použijete pomocníka google a ako TO webhooky, takže si tento príkaz vypočujte a pošlite informácie na NodeMCU pomocou vyššie uvedeného API. Rovnaký formulár pre zapnutý applet je uvedený nižšie.
Pri vytváraní receptu na Asistenta Google musíte zvoliť možnosť povedať frázu s textovou prísadou. Podobne musíte opakovať to isté pre virtuálny pin V6, aby ste vypli relé. Podrobné informácie nájdete v videu v dolnej časti tejto stránky.
Programovanie Arduina pre domácu automatizáciu Blynk
Kompletný Arduino kód pre tento projekt nájdete v spodnej časti tejto stránky. Vysvetlenie toho istého je nasledujúce. Predtým sa uistite, že môžete použiť Blynk a Program NodeMCU z Arduino IDE. Ak nie, postupujte podľa článku Začíname s ESP12. Pridajte tiež blynk knižnicu do Arduino IDE pomocou správcu nástenky.
Ako vždy začneme náš kód definovaním vstupných a výstupných pinov, tu bude vstup z prepínačov a výstup z relé. Definovali sme názvy pinov pre všetky štyri prepínače ako sw a relé ako rel, ako vidíte nižšie.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
V ďalšej fáze musíte zadať niektoré poverenia, ako napríklad token blynk auth a meno používateľa a heslo pre smerovač Wi-Fi, ku ktorému by sa mal váš nodeMCU pripojiť. Token blikania auth je možné získať z aplikácie blynk. Viac sa o tom dozvieme v sekcii nastavenie aplikácie blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // získať z aplikácie blynk char ssid = "home_wifi"; char pass = "fakepass123";
Ďalej sme zadali definíciu pre funkciu nazvanú read_switch_toggle () . V tejto funkcii porovnáme aktuálny stav a predchádzajúci stav našich prepínačov. Ak bol spínač zapnutý alebo vypnutý, tj. Ak bol prepínač prepnutý. Dojde k zmene stavu prepínača, funkcia bude túto zmenu sledovať a vráti číslo prepínača. Ak nie je zistená žiadna zmena, vráti hodnotu 0.
int read_switch_toggle () {int vysledok = 0; // Poznačte si všetky predchádzajúce hodnoty pre (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Prečítajte si aktuálny stav prepínačov crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // porovnaj aktuálny stav a stav pvs pre (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // ak je nejaký prepínač prepnutý, dostaneme číslo prepínača ako výsledok návratový výsledok; } else vysledok = 0; // ak žiadna zmena výsledok 0} návrat výsledok; // vrátiť výsledok}
Ďalej tu máme kód pre aplikáciu blynk. Na ovládanie našej inteligentnej spojovacej skrinky budeme používať virtuálny pin V1 až V6. Kolíky V1 až V4 sa použijú na riadenie relé 1 až 4 priamo z aplikácie blynk. Nasledujúci kód ukazuje, čo sa stane, keď sa V1 spustí z aplikácie blynk. Jednoducho načítame stav (VYSOKÝ alebo NÍZKY) a podľa toho riadime relé.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Podobne môžu byť virtuálne kolíky použité aj na načítanie reťazca z aplikácie blynk. Naučíme sa, ako poslať reťazec z Google Assistant do NodeMCU pomocou IFTTT a Google Assistant neskôr, ale teraz sa pozrime, ako kód NodeMCU načíta tento reťazec a vyhľadá konkrétne kľúčové slovo a podľa toho spustí relé.
V nasledujúcom kóde vidíte, že keď sa spustí virtuálny pin V5, dostaneme ním odovzdaný reťazec do premennej reťazca s názvom ON_message . Potom pomocou tejto premennej reťazca a metódy inderOf vyhľadáme, či existujú nejaké kľúčové slová ako „lampa“, „LED“, „hudba“, „TV“, ak áno, zapneme dané zaťaženie. Ak sa zistí kľúčové slovo „všetko“, všetko zapneme. To isté možno urobiť aj pre V6, keď sa majú relé vypnúť. Viac o tom pochopíme, keď sa dostaneme do sekcie IFTTT.
BLYNK_WRITE (V5) {String ON_message = param.asStr (); Serial.println (ON_message); if (ON_message.indexOf ("lampa")> = 0) digitalWrite (rel1, HIGH); if (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("music")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("everything")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Nakoniec vo vnútri funkcie slučky musíme len skontrolovať, či sa zmenila poloha prepínača. Ak áno, potom na prepnutie polohy konkrétneho relé použijeme puzdro spínača, ako je zobrazené nižšie.
switch (toggle_pin) {case 0: break; prípad 1: Serial.println ("Prepínacie relé 1"); digitalWrite (rel1, relay_state); prestávka; prípad 2: Serial.println ("Prepínacie relé 2"); digitalWrite (rel2, relay_state); prestávka; prípad 3: Serial.println ("Prepínacie relé 3"); digitalWrite (rel3, relay_state); prestávka; prípad 4: Serial.println ("Prepínacie relé 4"); digitalWrite (rel4, relay_state); prestávka; }}
Výroba DPS pomocou PCBGoGo
Teraz chápeme, ako fungujú schémy, a môžeme pokračovať v budovaní PCB pre náš projekt domácej automatizácie. Usporiadanie PCB pre vyššie uvedený obvod je tiež k dispozícii na stiahnutie ako Gerber z odkazu.
- Stiahnite si aplikáciu GERBER pre hlasovú automatizáciu domácnosti pomocou aplikácie Google Assistant
Teraz je náš dizajn pripravený, je čas nechať si ich vyrobiť pomocou súboru Gerber. Ak chcete urobiť PCB z PCBGOGO, je celkom jednoduché, postupujte podľa krokov uvedených nižšie -
Krok 1: Choďte na www.pcbgogo.com, zaregistrujte sa, ak ste prvýkrát. Potom na karte Prototyp PCB zadajte rozmery vašej PCB, počet vrstiev a požadovaný počet PCB. Za predpokladu, že DPS je 80 cm × 80 cm, môžete nastaviť rozmery tak, ako je to zobrazené nižšie.
Krok 2: Pokračujte kliknutím na tlačidlo Citovať teraz . Budete presmerovaní na stránku, kde môžete v prípade potreby nastaviť niekoľko ďalších parametrov, ako je rozstup použitých pásov, použitý materiál atď. Predvolené hodnoty však väčšinou fungujú dobre. Jediná vec, ktorú tu musíme brať do úvahy, je cena a čas. Ako vidíte, čas zostavenia je iba 2 - 3 dni a stojí iba 5 dolárov za našu DPS. Potom môžete zvoliť preferovaný spôsob dopravy na základe vašej požiadavky.
Krok 3: Posledným krokom je nahranie súboru Gerber a pokračovanie v platbe. Pred pokračovaním v platbe PCBGOGO overí, či je váš súbor Gerber platný, aby sa ubezpečil, že proces je hladký. Týmto spôsobom si môžete byť istí, že vaša doska s plošnými spojmi je vhodná pre výrobu a že sa k vám dostane ako zaviazaná.
Montáž DPS
Po objednaní dosky sa ku mne po niekoľkých dňoch dostala kuriérom v úhľadne označenej dobre zabalenej krabici a ako vždy, kvalita PCB bola úžasná. DPS, ktorý som dostal, je uvedený nižšie. Ako vidíte, vrchná aj spodná vrstva dopadli podľa očakávaní.
Priechody a podložky boli všetky v správnej veľkosti. Trvalo mi asi 15 minút, kým som sa namontoval na dosku s plošnými spojmi, aby som získal funkčný obvod. Zostavená doska je zobrazená nižšie.
Pripojenie dosky k sieťovým jednotkám / rozširujúcim doskám
Doska je navrhnutá na pripevnenie vo vnútri zásuviek striedavého prúdu v našich domácnostiach. Kvôli tomuto projektu však budeme používať rozširujúci modul. Ak chcete trvalejšie riešenie, zapojte ho do vnútorných zásuviek striedavého prúdu, ako vidíte nižšie. DPS je dostatočne kompaktná na to, aby mohla byť umiestnená vo vnútri sieťovej zásuvky.
Pri práci so sieťovým napájaním dodržiavajte bezpečnostné opatrenia. Postupujte podľa schémy zapojenia nižšie, aby ste pochopili, ako pripojiť vaše relé a spínače k našej doske s plošnými spojmi.
Schéma zapojenia je nefunkčná iba pre jedno relé a prepínač, ale rovnako môžete replikovať to isté aj pre zvyšné tri. Po dokončení pripojenia by mala vaša doska vyzerať takto
Po vytvorení spojov ich nezabudnite pevne pripevniť pomocou skrutkových svoriek a na zvýšenie bezpečnosti tiež použite horúce lepidlo. Zabaľte všetko späť do krabice a mali by sme byť pripravení na testovanie. Kompletné fungovanie tohto projektu nájdete vo videu nižšie.
Dúfam, že sa vám článok páčil a dozvedeli ste sa niečo užitočné. Ak máte akékoľvek otázky, nechajte ich prosím v sekcii komentárov nižšie alebo použite naše fóra.