Obsah:
- Krok 1: Stažení Express pro Pi
- Krok 2: Nastavení Pi serveru
- Krok 3: Nastavení IFTTT (spoušť)
- Krok 4: Nastavení IFTTT (akce)
- Krok 5: Přesměrování portů
- Krok 6: Kontrola vaší dosavadní práce
- Krok 7: Budování obvodu
- Krok 8: Vyzkoušejte to
Video: Google Home Controlled LEDs: 8 Steps
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
V poslední době mám na ruce spoustu volného času, takže jsem pracoval na hromadě projektů.
Tento projekt vám umožní ovládat RGB LED pomocí Google Home pomocí Raspberry Pi. Nyní existují 3 části projektu, nastavení Raspberry Pi, nastavení Google Home pomocí vlastního příkazu pomocí IFTTT a poté vytvoření obvodu pro světla. Okruh jsem udělal sám, ale vsadím se, že byste mohli získat něco od Adafruit, které dělá, co je potřeba.
Materiály pro část Raspberry Pi
- Raspberry Pi - jakýkoli bude fungovat, ale já používám nulu
- Bezdrátový dongle - pokud Pi nemá vestavěnou Wifi
- Domovská stránka Google - Volitelné, pokud máte v telefonu Asistenta Google
Materiály pro obvodovou část- Nenechte se tím odradit … Je to docela jednoduché
- Protoboard
- Drát
- LED pásek
- Napájení 12 V - cokoli nad 2 A by mělo být v pořádku
- DC Barrel Jack - stejná velikost jako napájecí zdroje
- Výkonové tranzistory NPN BJT (x3) - používám TIP31C
-
Záhlaví pinů pro muže a ženy - volitelné, ale velmi doporučeno
Krok 1: Stažení Express pro Pi
Nebudu se příliš rozepisovat o nastavení Pi, protože existuje tolik návodů, jak je nastavit.
Co budete potřebovat, abych nepokryl…
- Blikající Raspberry Pi s nejnovějším Raspbianem
- Nastavte síťovou kartu, abyste měli přístup k internetu z počítače Pi
- Nastavte na Raspberry Pi statickou IP
Tady začíná zábava! Musíme nainstalovat nodeJS, npm, express a express-generator.
sudo apt-get update
sudo apt-get install nodejs npm
Jakmile jsou nainstalovány, spusťte následující
npm install express express-generator
Express vám umožňuje vytvořit velmi základní webový server, který bude váš Raspberry Pi používat. Express-generator jen automaticky generuje soubory pro expresní server.
Vytvořte adresář a vložte do něj cd. Pojmenoval jsem svůj piWebpage. Nyní spusťte následující (viz také na obrázku)
mkdir piWebpage
cd piWebpage express --view = ejs webApp
Tím se vygeneruje složka s názvem webApp se všemi expresními soubory. Pokud plánujete s touto webovou stránkou udělat později více a máte rádi PUG, nahraďte --view = ejs --view = pug. Nebudeme se dotýkat webové stránky, takže pro tuto aplikaci nezáleží na tom, co používáme.
Krok 2: Nastavení Pi serveru
Přesuňte se do nového adresáře webApp.
cd webApp
npm instalace
instalace npm bude nějakou dobu trvat, protože instaluje všechny závislosti pro expres.
Vložte soubor setColor.py do složky webApp. Tento soubor obsahuje několik předvoleb pro základní barvy. Neváhejte přidat další, jak chcete. Rozsah je 0 až 255, kde 255 je plnobarevný. V určitém okamžiku pravděpodobně přidám možnost ztlumit světla, ale prozatím jsou plné jasu.
Přejít na trasy
cd trasy
Nyní nahraďte soubor index.js přiloženým souborem. Tím se přidají některé řádky pro příjem příkazu POST, který odešle domovská stránka Google. Z toho POST získáme vybranou barvu a řekneme Pi, aby spustila skript python setColor a upravila světla.
Ještě jedna věc… Vraťte se do složky webApp.
cd ~/piWebpage/webApp
Pomocí oblíbeného editoru vložte a uložte níže uvedený kód do souboru webApp.js. Kdekoli je v pořádku, pokud je to před "module.exports = app;"
// Nastavení LED hardwaru driverconst {exec} = require ('child_process'); exec ('sudo pigpiod', (err, stdout, stderr) => {if (err) {console.log ('Error loading LED Driver'); return;} else console.log ('LED Driver Successfully Loaded'); });
Jak říká komentář, pigpiod je hardwarový ovladač pro signály PWM, které použijeme k úpravě barev LED. Věřím, že je již nainstalován v Raspbian, ale pokud ne …
sudo apt-get install pigpiod
Nyní skutečný test! Spouštění serveru!
DEBUG = webapp:* npm start
Krok 3: Nastavení IFTTT (spoušť)
IFTTT dokáže hodně a já bych velmi doporučil se porozhlédnout po některých aplikacích.
Nejprve si musíte založit účet. Použijte stejný účet Google přidružený k vaší domovské stránce Google, jinak se nebudou synchronizovat. Po dokončení a přihlášení klikněte vpravo nahoře na stránku IFTTT, kde se zobrazí vaše jméno a avatar. Poté v rozevíracím seznamu klikněte na Nový aplet.
Pokud jste zvědaví, IFTTT znamená IF This Then That, pokud jste si toho nevšimli na obrazovce, která se objeví. Takže co chceme, je -li Google Assistant, pak Webhook jako naše možnosti.
Pokračujte kliknutím na +toto, čímž se načte vyhledávací lišta. Do vyhledávání napište Google Assistant a klikněte na ikonu pod vyhledáváním.
V části Vyberte spouště vyberte 3. možnost s názvem Vyslovte frázi s textovou přísadou. Nyní vám to umožní mít 3 příkazy, které provedou stejnou akci. Přidáte $ do fráze, kde byste zmínili barvu. Pokud bych například přirozeně řekl „Hey Google, Set LEDs Blue“(tak přirozené, jako může křičet na zařízení), zadal bych do pole Set LEDs $. Udělejte to pro všechna 3 pole s různými verzemi příkazu.
Byly to 3, které jsem použil
LED diody $
Nastavte LED diody $
Nastavit barvu LED $
Poslední pole je to, na co chcete, aby váš domov Google odpověděl po vyslovení vašeho příkazu. Může to být cokoli chcete, ale použil jsem nastavení barvy na $. $ Znamená, že bude barvu opakovat.
Klikněte na Vytvořit spoušť
Krok 4: Nastavení IFTTT (akce)
Po kliknutí na Vytvořit spoušť se načte zpět do tohoto zobrazení, ale toto bylo nahrazeno logem Google Assistant. Pokračujte kliknutím na +to
Totéž jako dříve, kde vás přivede na vyhledávací lištu. Zadejte Webhooks a klikněte na ikonu webhooku pod vyhledávacím panelem. V části Vybrat akci pro Webhooky je pouze jedna možnost, takže klikněte na Vytvořit webový požadavek.
Tady je to trochu složité. Protože Google není jiný počítač ve vaší domácnosti, budete potřebovat svoji externí IP adresu. To bude vyžadovat určité přesměrování portů, ale toho se dotkneme později. Chcete -li získat svou externí IP adresu, přejděte na
Do pole URL zadejte https://xxx.xxx.xxx.xxx:3000/{{TextField}} (x je vaše externí IP adresa). V případě, že jste zvědaví, bude mít TextField barvu, kterou jste vybrali při provádění příkazu. Používáme 3000, protože to je port, na kterém běží server Raspberry Pi Express. (Můžete změnit port v kódu, ale používáme pouze výchozí nastavení pro Express)
Jako metodu vyberte POST.
Jako Typ obsahu vyberte text/prostý.
Jako text zadejte {{TextField}}
Ti z vás, kteří vědí, jak funguje příkaz POST, by si mysleli, že pokud analyzujete vlastnost těla požadavku, získáte barvu. Z nějakého důvodu není do pole těla požadavku nikdy nic vloženo, takže ve skutečnosti analyzuji adresu URL barvy. Doufám, že se to brzy napraví, protože by to zjednodušilo můj kód na trase index.js. Ale odbočil jsem.
Nakonec na další stránce klikněte na Vytvořit akci a poté na Dokončit. (Vypnul jsem oznámení, ale to je preference)
Krok 5: Přesměrování portů
Zde je obtížné to vysvětlit, protože všechny směrovače jsou jiné …
Nyní máme Google, který do našeho domu odeslal příkaz pomocí portu 3000, ale neví, na jaké zařízení v síti LAN musí jít. Abychom to napravili, musíme přesměrovat port 3000 na místní IP adresu vašeho Raspberry Pi.
Přejděte do routeru pomocí 10.0.0.1 nebo 192.168.1.1 (také jsem to viděl, kde je poslední číslice 254) a najděte přesměrování portů. V přesměrování portů, podobně jako na obrázku, pojmenujete nové zařízení (IFTTT) a přepošlete port (3000) na IP adresu Pi (v mém případě 10.0.0.11).
Uložte nové nastavení, restartujte router a zkontrolujte, zda váš server Raspberry Pi stále běží. Pokud neběží, spusťte jej znovu.
Vraťte se na tento šikovný web https://canyouseeme.org/. Pod vaší IP adresou je kontrola portu. Za předpokladu, že je předávání portů správné, zadejte 3000 a zkontrolujte port. Mělo by se to vrátit s úspěchem.
Krok 6: Kontrola vaší dosavadní práce
Nyní … okamžik, na který jste čekali … Řekněte Googlu příkaz, jako jsou modré LED diody (pokud jste následovali můj příklad).
Za předpokladu, že vše proběhlo správně, získáte výstup viditelný na obrázku. Obvod zatím nemáme, takže uvidíte pouze text na obrazovce. Zpracování z Googlu a zobrazení na Pi obvykle trvá sekundu nebo 2.
(Přejít na další krok, pokud to vyšlo podobně jako na obrázku)
Pokud by to nefungovalo, je třeba se podívat na několik věcí…
Na obrázku je čára, která říká
POST /barva /modrá 200 250,458 ms - 2
Důležitou součástí je dvoustovka. Pokud nevidíte 200, pak byl špatný POST, což znamená, že váš server nevěděl, co má s daty dělat. Vraťte se ke kroku 2 a zkontrolujte soubor index.js.
Také na obrázku
stdout: modrá
stderr:
Toto je výstup ze souboru python, který spouští diody LED. Pokud tam vidíte chybu, je možné, že v kroku 2 nemáte nainstalovaný ovladač.
A konečně, pokud se vůbec nic nezobrazí … váš IFTTT možná nebyl správně nastaven nebo se mu nepodařilo připojit k serveru. Vraťte se na stránku IFTTT a v horní navigační liště klikněte na Aktivita. Tam můžete vidět pokaždé, když se vaše aplikace spustí, a pokud došlo k chybě, můžete vidět, co to bylo. Udělal jsem příkaz Google s vypnutým serverem Pi a zobrazila se chyba na obrázku.
Krok 7: Budování obvodu
Důvod, proč to musíme udělat, je ten, že Raspberry Pi nemají dostatek energie … Takže řešením je … VÍCE SÍLY (Tim, nástrojář Taylor zavrčí v dálce). Alternativní napájecí zdroj (12V 2A)
Materiály pro obvodovou část
- Protoboard
- Drát
- RGB LED pásek
- Napájení 12 V - cokoli nad 2 A by mělo být v pořádku
- DC Barrel Jack - stejná velikost jako napájecí zdroje
- Výkonové tranzistory NPN BJT (x3) - používám TIP31C
- Záhlaví pinů pro muže a ženy
Pomocí šikovného obrázku, který jsem ukradl z interwebů s GPIO Pi Zero, můžete vidět, že GPIO17, GPIO18 a GPIO 27 jsou s GND hned vedle sebe. Použijeme čtverec se 4 piny (piny 11, 12, 13, 14).
Nejprve bych doporučil pájení mužských hlaviček na váš LED pás, jak je vidět na obrázku (není to moje nejlepší práce). To umožňuje snadné odpojení v případě potřeby. Použil jsem samičí záhlaví pro připojení LED pásku k mému protoboardu a mužské záhlaví od protoboardu k Raspberry Pi. (Jako zdroj napájení/signálu vždy používejte zásuvkové konektory). Nemusíte přesouvat všechny piny Pi vedle sebe jako já … Jen jsem chtěl, aby to vypadalo čistě, ale bylo to hodně práce.
Vysvětlení obvodu
Pro ty z vás, kteří neznají tranzistory, jsou tranzistory v podstatě digitální přepínač. Piny GPIO z Pi spouštějí tři přepínače (červený, zelený a modrý). Když se podíváme konkrétně na ČERVENOU ve schématu zapojení, když je GPIO_17 zapnutý, spínač „sepne“spojením ČERVENÉHO s GND a způsobí rozsvícení červených světel. Když se GPIO_17 vypne, spínač je otevřený a světla jsou vypnutá.
Základna - GPIO
Sběratel - barvy (ČERVENÁ, ZELENÁ, MODRÁ)
Vysílač - uzemnění (jak napájecího zdroje, tak Pi)
Nezapomeňte připojit uzemnění Pi k uzemnění napájecího zdroje. Světla budou stále fungovat, ale budou vypadat velmi tlumeně, dokud nebude uzemněna zem.
Mám na protoboardu zařízení vypadající jako 4. tranzistor. Je to L7805CV, který slouží k převodu 12 V na 5 V, takže jsem mohl napájet Pi na stejném obvodu. Fungovalo to, ale stále se zahřívalo, takže jsem odstranil jeho připojení.
Krok 8: Vyzkoušejte to
Jakmile dokončíte zapojení, restartujte Pi před provedením jakýchkoli připojení. Důvodem je, že piny jsou pravděpodobně stále aktivní z testu serveru. Alternativně můžete zabít server a službu pigpiod.
Zapojte LED diody a propojky z protoboardu do Pi. Před napájením dvakrát zkontrolujte všechna připojení. Pokud jste to špatně zapojili, můžete smažit svůj Pi (žádný tlak).
Kontrolní seznam
- Zkontrolujte vodiče
- Power Pi
- Napájecí obvod
- Spusťte server (DEBUG = webapp:* npm start while in the ~/piWebpage/webApp directory)
- Řekněte Googlu, aby udělal vaše nabídky!
GRATULUJEME, nic jste nevyhodili do vzduchu a své LED diody můžete nyní ovládat z domovské stránky Google.
Pokud máte problémy, zanechte komentáře a já udělám vše pro to, abych se vám ozval!
Doporučuje:
Home/Lab Voice Controlled Assistant: 14 Steps (with Pictures)
Domů/Laboratoř Hlasem ovládaný asistent: O mně Dobrý den! Toto je můj první pokyn, je mi 17 let. Jsem z Řecka, takže moje angličtina nemusí být dokonalá, ale budu se snažit. Tuto aplikaci jsem tedy nejprve navrhl před 2 lety a v této soutěži jsem našel příležitost aktualizovat svůj starý projekt
MQTT/Google Home DoorBell using ESP-01: 6 Steps
MQTT/Google Home DoorBell pomocí ESP-01: Zmeškali jste někdy odpověď hostovi, který zazvonil u vašeho zvonku jen proto, že jste v části domu, která je příliš daleko na to, aby slyšela zvonek? například ve sklepě, v ložnici se zavřenými dveřmi nebo jste možná sledovali televizi nebo poslouchali hudbu. Pokud
Ir Remote Remote Controlled Home Applicatin Project With Fan Regulator: 5 Steps
Ir Remote Remoteled Home Applicatin Project With Fan Regulator: This project for those who have culture with arduino and projects, not for noob'si made this as a project but I am using this for production purposes too … for this reason I can ' t sdílet všechny kompletní skici
Google Home Controlled Power Outlet: 9 Steps (with Pictures)
Google Home Controlled Power Outlet: Moje přítelkyně vždy chtěla postavit inteligentní dům. Vybudovali jsme tedy infrastrukturu a první položku chytré domácnosti, dálkově ovládaný vypínač, který můžete ovládat pomocí ovládacího panelu nebo pomocí hlasových příkazů (pokud máte domovskou stránku Google nebo goog
DIY Google Home with Bluetooth Speaker on Raspberry Pi Zero Docking Hub: 7 Steps (with Pictures)
DIY Google Home with Bluetooth Speaker on Raspberry Pi Zero Docking Hub: We have an instructable on DIY Amazon Echo Alexa - Alexa Voice Assistant on Raspberry Pi Zero Docking Hub. Tentokrát vám chceme ukázat, jak vytvořit domovskou stránku Google Home. V tomto pokynu vám ukážeme, jak nainstalovat a nastavit Google Assistant