- Schéma zapojení pro domácí automatizaci řízenou Google Assistant
- Nastavení aplikace Blynk
- Nastavení IFTTT s Google Assistant a Blynkem na čtení řetězce
- Programování Arduina pro Blynk Home Automation
- Výroba PCB pomocí PCBGoGo
- Montáž desky plošných spojů
- Připojení desky k síťovým jednotkám / rozšiřujícím deskám
S pokrokem ve virtuálních asistentech, jako jsou Google Assistant a Alexa, se automatizace domácnosti a aplikace ovládané hlasem stávají běžnými. Nyní jsme sami postavili mnoho projektů domácí automatizace, od jednoduchých automatických schodišťových světel až po IoT webově řízenou domácí automatizaci pomocí Raspberry Pi. Ale tento projekt je zde jiný, myšlenkou zde je vytvořit praktickou desku domácí automatizace, která se vejde do našich střídavých napájecích jednotek na našich stěnách a zůstane v ní skrytá. Deska by neměla přerušovat normální fungování našich vypínačů napájecí jednotky, to znamená, že by se měla zapínat nebo vypínat také pomocí ručních spínačů. A aniž by bylo řečeno, mělo by být také možné ovládat stejnou zátěž pomocí hlasu pomocí google asistenta a také nastavit časovač, aby se každá zátěž mohla automaticky zapnout nebo vypnout během přednastavené denní doby.
Tento projekt je velmi podobný našemu inteligentnímu Wi-Fi konektoru ESP8266, ale zde, protože budeme používat ESP12, budeme mít více pinů GPIO, které nám umožní ovládat současně čtyři střídavé zátěže. Vzhledem k tomu, že jsme integrovali Blynk a Google Assistant, je projekt zajímavý a praktický. Pro tento projekt jsme postavili desky s plošnými spoji pomocí služby výroby PCB PCGOGO. V pozdější části článku jsme poskytli soubor Gerber určený pro daný okruh a také jsme vysvětlili kompletní postup objednání desek plošných spojů od společnosti PCBGOGO.
Varování: Tento projekt zahrnuje práci se střídavým síťovým napětím. Pamatujte, že při práci s vysokým střídavým napětím je třeba postupovat velmi opatrně. Pokud jste noví, ujistěte se, že na vás dohlíží zkušená osoba.
Schéma zapojení pro domácí automatizaci řízenou Google Assistant
Kompletní schéma zapojení pro domácí automatizaci naleznete níže.
Jak vidíte, obvod je velmi jednoduchý, začněme vysvětlením z Wi-Fi modulu ESP12E. Můžete si také prohlédnout video níže, kde najdete podrobné vysvětlení projektu. Modul lze programovat stejně jako vývojové desky nodeMCU a zmenšuje spoustu místa. Ve výchozím nastavení po zapnutí přejde ESP12E do provozního režimu. Abychom to mohli naprogramovat, musíme použít tlačítko Reset a Flash. To znamená přepnout ESP12 do programovacího režimu, stisknout a podržet obě tlačítka Reset a Flash, poté uvolnit tlačítko Reset. Tím se spustí ESP12E se stisknutým tlačítkem blesku, nyní uvolněte tlačítko blesku a ESP12E přejde do programovacího režimu. Po naprogramování musíte znovu spustit resetovací tlačítko, abyste spustili ESP12E v normálním provozním režimu a provedli nahraný program. Programovací piny Rx, Rx,a uzemnění jsou rozšířeny, aby se mohly připojit k desce FTDI nebo převaděči USB na TTL. Nezapomeňte připojit kolík Tx ESP12 k kolíku Rx programátoru a naopak.
Další kolíky I1 až I4 a R1 až R4 se používají k připojení spínačů a relé. Piny I1 až I4 znamenají vstupní piny. Všechny tyto piny podporují vnitřní pull-up rezistor, takže musíme pouze připojit přepínače na rozšiřující krabici k našemu vstupnímu pinu přes pull-down rezistor, jak je znázorněno níže.
Podobně se výstupní piny relé R1 až R4 používají k ovládání relé. Použili jsme standardní obvod budiče relé s diodou BC547 a IN4007, jak je uvedeno níže. Pamatujte, že relé by měla být spouštěna 5 V, ale výstupní piny ESP12E jsou pouze 3,3 V. Je tedy povinné používat k řízení relé tranzistor. Také jsme umístili LED do základní cesty tranzistoru, takže kdykoli se spustí tranzistor, LED se také rozsvítí.
Nakonec jsme k napájení všech našich obvodů použili převodník Hi-Link AC-DC pro převod našich 220V AC na 5V DC. Tato 5V DC se poté převede na 3,3V pomocí regulátoru napětí AMS117-3,3V. 5 V se používá ke spuštění relé a 3,3 V se používá k napájení modulu Wi-Fi ESP21.
Nastavení aplikace Blynk
Dříve jsme vytvořili mnoho projektů Blynk, jako je Wi-Fi Controlled Arduino Robot, takže se nebudeme zabývat podrobnostmi nastavení aplikace blynk. Ale pro zjednodušení stačí nainstalovat aplikaci, vytvořit nový projekt pro NodeMCU a začít umisťovat widgety, jak je znázorněno níže.
Pro ovládání relé 1 až 4 na našem projektu jsem použil virtuální piny V1 až V4. Nezapomeňte změnit typ tlačítka, které chcete přepnout. Možnost časovače lze také použít k automatickému spuštění virtuálních pinů po nastavenou dobu, i když je telefon vypnutý. Například jsem zde použil časovač pouze pro virtuální pin V1, ale v případě potřeby jej můžete použít pro všechny čtyři piny.
Nezapomeňte na stránce projektu získat hodnotu tokenu blynk auth. Stačí kliknout na ikonu matice (na obrázku výše zakroužkovaná červeně) a zkopírovat token auth pomocí možnosti copy all a vložit jej někam na bezpečné místo, které budeme potřebovat při programování desky Arduino.
Nastavení IFTTT s Google Assistant a Blynkem na čtení řetězce
Nejjednodušší způsob, jak používat Google Assistant pro domácí automatizaci, je použití IFTTT. Také jsme dříve vytvořili mnoho projektů IFTTT s NodeMCU a Raspberry Pi. V tomto projektu budeme pomocí aplikace Blynk spouštět webhook pomocí asistenta Google. Je to velmi podobné našemu hlasem ovládané domácí automatizaci a hlasem ovládanému FM rádiovému projektu. Kromě toho zde budeme používat blynk s IFTTT k odeslání řetězce, což je mnohem jednodušší a zajímavější.
V zásadě budeme k odesílání spouštěcího příkazu používat virtuální pin V5 a V6 na blynku. V5 se použije pro příkazy k zapnutí a V6 se použije pro příkazy k vypnutí. Například když řekneme zapnout televizi a lampu. Řetězcový příkaz zde „TV a lampa“ bude odeslán do NodeMCU pomocí API. Syntaxe API je uvedena níže.
http://188.166.206.43//update/V5?value=TV a lampa
Nyní vše, co musíme v IFTTT udělat, je použití asistenta google jako IF a webhooků jako TO, takže poslouchejte tento příkaz a odešlete informace do NodeMCU pomocí výše uvedeného API. Stejný formulář pro zapnutí appletu je uveden níže.
Pamatujte, že při vytváření receptu na Asistenta Google musíte vybrat možnost říct frázi s textovou přísadou. Podobně musíte opakovat totéž pro virtuální pin V6, abyste vypnuli relé. Podrobnější informace můžete zkontrolovat ve spodní části této stránky.
Programování Arduina pro Blynk Home Automation
Kompletní Arduino kód pro tento projekt najdete ve spodní části této stránky. Vysvětlení je následující. Před tím se ujistěte, že můžete použít Blynk a Program NodeMCU z Arduino IDE. Pokud ne, postupujte podle článku Začínáme s ESP12. Také přidejte knihovnu blynk do Arduino IDE pomocí správce desky.
Jako vždy začneme náš kód definováním vstupních a výstupních pinů, zde bude vstup ze spínačů a výstup bude z relé. Definovali jsme názvy pinů pro všechny čtyři přepínače jako sw a relé jako rel, jak vidíte níže.
#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 další fázi musíte zadat některá pověření, jako je token blynk auth a uživatelské jméno a heslo pro směrovač Wi-Fi, ke kterému by se měl váš nodeMCU připojit. Token blink auth lze získat z aplikace blynk. Více se o tom dozvíme v sekci nastavení aplikace blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // získat z aplikace blynk char ssid = "home_wifi"; char pass = "fakepass123";
Dále jsme definovali funkci nazvanou read_switch_toggle () . V této funkci porovnáme aktuální stav a předchozí stav našich přepínačů. Pokud byl spínač zapnutý nebo vypnutý, tj. Pokud byl přepínač přepnut. Dojde ke změně stavu přepínače, funkce bude tuto změnu sledovat a vrátí číslo přepínače. Pokud není detekována žádná změna, vrátí hodnotu 0.
int read_switch_toggle () {int výsledek = 0; // Poznamenejte si všechny předchozí hodnoty pro (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Přečíst aktuální stav přepínačů crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // porovnat aktuální a pvs stav pro (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // pokud je nějaký přepínač přepnut, dostaneme číslo přepínače jako výsledek návratový výsledek; } else výsledek = 0; // pokud nedojde ke změně výsledku 0} vrátit výsledek; // vrátit výsledek}
Dále máme kód pro aplikaci blynk. K ovládání naší inteligentní spojovací skříňky budeme používat virtuální pin V1 až V6. Piny V1 až V4 budou použity k ovládání relé 1 až 4 přímo z aplikace blynk. Níže uvedený kód ukazuje, co se stane, když se V1 spustí z aplikace blynk. Prostě přečteme stav (VYSOKÝ nebo NÍZKÝ) a podle toho budeme ovládat relé.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Podobně lze virtuální piny použít také ke čtení řetězce z aplikace blynk. Naučíme se, jak poslat řetězec z Google Assistant do NodeMCU pomocí IFTTT a Google Assistant později, ale prozatím se podívejme, jak kód NodeMCU načte tento řetězec a vyhledá konkrétní klíčové slovo a odpovídajícím způsobem spustí relé.
V níže uvedeném kódu můžete vidět, že když je spuštěn virtuální pin V5, dostaneme řetězec předaný do řetězcové proměnné s názvem ON_message . Poté pomocí této řetězcové proměnné a metody inderOf prohledáme, zda jsou přítomna nějaká klíčová slova jako „lampa“, „LED“, „hudba“, „TV“, pokud ano, zapneme dané zatížení. Pokud je detekováno klíčové slovo „všechno“, zapneme vše. Totéž lze udělat pro V6 k vypnutí relé. Více o tom pochopíme, až se dostaneme do sekce 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); }}
Nakonec uvnitř funkce smyčky musíme pouze zkontrolovat, zda se změnila poloha přepínače. Pokud ano, pak k přepnutí polohy konkrétního relé použijeme pouzdro spínače, jak je znázorněno níže.
switch (toggle_pin) {case 0: break; případ 1: Serial.println ("Přepínací relé 1"); digitalWrite (rel1, relay_state); přestávka; případ 2: Serial.println ("Přepínací relé 2"); digitalWrite (rel2, relay_state); přestávka; případ 3: Serial.println ("Přepínací relé 3"); digitalWrite (rel3, relay_state); přestávka; případ 4: Serial.println ("Přepínací relé 4"); digitalWrite (rel4, relay_state); přestávka; }}
Výroba PCB pomocí PCBGoGo
Nyní chápeme, jak schémata fungují, můžeme pokračovat v budování desky plošných spojů pro náš projekt domácí automatizace. Uspořádání desek plošných spojů pro výše uvedený obvod je také k dispozici ke stažení jako Gerber z odkazu.
- Stáhněte si GERBER pro hlasovou automatizaci domácnosti pomocí Google Assistant
Nyní je náš design připraven, je čas nechat si je vyrobit pomocí souboru Gerber. Chcete-li udělat desku plošných spojů z PCBGOGO, je docela snadné, jednoduše postupujte podle následujících kroků-
Krok 1: Vstupte na www.pcbgogo.com, zaregistrujte se, pokud jste poprvé. Poté na kartě Prototyp desky plošných spojů zadejte rozměry desky plošných spojů, počet vrstev a požadovaný počet desek plošných spojů. Za předpokladu, že PCB je 80 cm × 80 cm, můžete nastavit rozměry, jak je uvedeno níže.
Krok 2: Pokračujte kliknutím na tlačítko Citovat nyní . Budete přesměrováni na stránku, kde můžete v případě potřeby nastavit několik dalších parametrů, jako je rozteč stopy použitého materiálu atd. Výchozí hodnoty ale většinou fungují dobře. Jediná věc, kterou zde musíme vzít v úvahu, je cena a čas. Jak vidíte, doba sestavení je pouze 2–3 dny a stojí jen 5 $ za naši PCB. Poté můžete vybrat preferovaný způsob dopravy na základě vašeho požadavku.
Krok 3: Posledním krokem je nahrání souboru Gerber a pokračování platby. Aby bylo zajištěno, že proces bude hladký, PCBGOGO před pokračováním v platbě ověří, zda je váš soubor Gerber platný. Tímto způsobem si můžete být jisti, že vaše deska plošných spojů je přátelská k výrobě a dostane se k vám jako oddaná.
Montáž desky plošných spojů
Poté, co byla deska objednána, se mi po několika dnech dostala kurýrem v úhledně označeném dobře zabaleném boxu a jako vždy byla kvalita desky plošných spojů úžasná. DPS, který jsem obdržel, je uveden níže. Jak vidíte, jak horní, tak spodní vrstva dopadla podle očekávání.
Průchody a podložky byly ve správné velikosti. Sestavení k desce s plošnými spoji a získání funkčního obvodu mi trvalo asi 15 minut. Sestavená deska je zobrazena níže.
Připojení desky k síťovým jednotkám / rozšiřujícím deskám
Deska je navržena k připevnění do zásuvek střídavého proudu v našich domovech. Ale kvůli tomuto projektu budeme používat rozšiřující box. Pokud chcete trvalejší řešení, zapojte jej do zásuvky střídavého proudu, jak vidíte níže, délka desky plošných spojů je dostatečně kompaktní, aby mohla být umístěna do zásuvky střídavého proudu.
Při práci se síťovým napájením dodržujte bezpečnostní opatření. Postupujte podle schématu níže, abyste pochopili, jak připojit vaše relé a spínače k naší desce s plošnými spoji.
Schéma připojení je nefunkční pouze pro jedno relé a přepínač, ale stejně můžete replikovat to samé i pro zbývající tři. Po dokončení připojení by vaše deska měla vypadat takto
Jakmile jsou připojení provedena, ujistěte se, že jste je pevně zajistili šroubovými svorkami a pro větší bezpečnost také použijte horké lepidlo. Zabalte vše zpět do krabice a měli bychom být připraveni na testování. Kompletní fungování tohoto projektu najdete ve videu níže.
Doufám, že se vám článek líbil a naučili jste se něco užitečného. Máte-li jakékoli dotazy, nechte je prosím v sekci komentářů níže nebo použijte naše fóra.