Obsah:
- Krok 1: Sťahovanie Express pre Pi
- Krok 2: Nastavenie servera Pi
- Krok 3: Nastavenie IFTTT (spúšťač)
- Krok 4: Nastavenie IFTTT (akcia)
- Krok 5: Presmerovanie portov
- Krok 6: Kontrola vašej doterajšej práce
- Krok 7: Budovanie obvodu
- Krok 8: Vyskúšajte to
Video: LED diódy ovládané domovom Google: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
V poslednom čase mám na rukách veľa voľného času, a tak som pracoval na množstve projektov.
Tento projekt vám umožní ovládať RGB LED diódy cez Google Home pomocou Raspberry Pi. Teraz existujú 3 časti projektu, nastavenie Raspberry Pi, nastavenie Google Home pomocou vlastného príkazu pomocou IFTTT a potom vytvorenie obvodu pre svetlá. Okruh som si vyrobil sám, ale stavím sa, že od Adafruit dostanete niečo, čo robí, čo je potrebné.
Materiály pre časť Raspberry Pi
- Raspberry Pi - akýkoľvek bude fungovať, ale ja používam nulu
- Bezdrôtový dongle - ak Pi nemá vstavané Wifi
- Domovská stránka Google - voliteľné, ak máte v telefóne asistenta Google
Materiály pre obvodovú časť- Nenechajte sa tým odradiť … Je to celkom jednoduché
- Protoboard
- Drôt
- LED pásik
- Napájanie 12 V - čokoľvek nad 2 ampéry by malo byť v poriadku
- Jack Barrel Jack - rovnaká veľkosť ako napájacie zdroje
- Výkonové tranzistory NPN BJT (x3) - používam TIP31C
-
Mužské a ženské kolíkové hlavičky - voliteľné, ale dôrazne sa odporúča
Krok 1: Sťahovanie Express pre Pi
Nebudem sa príliš rozpisovať o nastavení Pi, pretože existuje veľa návodov na ich nastavenie.
Čo budete potrebovať, aby som nepokryl…
- Bliká Raspberry Pi s najnovším Raspbianom
- Nastavte sieťovú kartu, aby ste mali prístup na internet z počítača Pi
- Nastavte na Raspberry Pi statickú IP
Teraz tu začína zábava! Musíme nainštalovať nodeJS, npm, expres a expresný generátor.
sudo apt-get aktualizácia
sudo apt-get install nodejs npm
Akonáhle sú nainštalované, spustite nasledujúce
npm nainštalovať expresný generátor expresov
Express vám umožňuje vytvoriť úplne základný webový server, ktorý bude váš Raspberry Pi používať. Expresný generátor iba automaticky generuje súbory pre expresný server.
Vytvorte adresár a vložte doň cd. Pomenoval som svoj piWebpage. Teraz spustite nasledujúce (zobrazené aj na obrázku)
mkdir piWebpage
cd piWebpage express --view = ejs webApp
Tým sa vygeneruje priečinok s názvom webApp so všetkými expresnými súbormi. Ak plánujete neskôr s touto webovou stránkou urobiť viac a máte radi PUG, nahraďte --view = ejs za --view = pug. Webovej stránky sa nedotkneme, takže v prípade tejto aplikácie nezáleží na tom, čo používame.
Krok 2: Nastavenie servera Pi
Presuňte sa do nového adresára webApp.
cd webApp
npm nainštalovať
Inštalácia npm bude nejaký čas trvať, pretože inštaluje všetky závislosti pre expres.
Vložte súbor setColor.py do priečinka webApp. Tento súbor obsahuje niekoľko predvolieb pre základné farby. Neváhajte pridať ďalšie, ako sa vám páči. Rozsah je od 0 do 255, kde 255 je plnofarebných. V určitom okamihu pravdepodobne pridám možnosť stlmenia svetiel, ale zatiaľ majú plný jas.
Presuňte sa na trasy
cd trasy
Teraz nahraďte index.js priloženým súborom. Tým sa pridajú niektoré riadky na prijatie príkazu POST, ktorý bude odosielať domovská stránka Google. Z toho POST získame vybranú farbu a povieme Pi, aby spustila skript python setColor na úpravu svetiel.
Posledná vec … Vráťte sa do priečinka webApp.
cd ~/piWebpage/webApp
Pomocou obľúbeného editora vložte a uložte nižšie uvedený kód do súboru webApp.js. Kdekoľvek je v poriadku, pokiaľ je to pred „module.exports = app;“
// Nastavenie hardvérového ovládača LEDconcon {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'); });
Ako hovorí komentár, pigpiod je hardvérový ovládač pre signály PWM, ktoré použijeme na úpravu farieb LED. Verím, že je už nainštalovaný v Raspbian, ale ak nie …
sudo apt-get install pigpiod
Teraz skutočný test! Spustenie servera!
DEBUG = webapp:* npm start
Krok 3: Nastavenie IFTTT (spúšťač)
IFTTT dokáže veľa a veľmi by som odporučil pozrieť sa na niektoré aplikácie.
Najprv si musíte vytvoriť účet. Používajte rovnaký účet Google priradený k vašej domovskej stránke Google, inak sa nebudú synchronizovať. Po dokončení a prihlásení kliknite v pravom hornom rohu stránky IFTTT, kde sa zobrazuje vaše meno a avatar. Potom v rozbaľovacom zozname kliknite na položku Nový aplet.
Ak ste zvedaví, IFTTT znamená IF This Then That, ak ste si to nevšimli na obrazovke, ktorá sa objaví. Čo teda chceme, je ako Google Assistant, potom Webhook ako naše možnosti.
Pokračujte kliknutím na +toto, čím sa načíta vyhľadávací panel. Do vyhľadávania napíšte Google Assistant a kliknite na ikonu pod vyhľadávaním.
V časti Vybrať spúšť vyberte tretiu možnosť s názvom Vyslovte frázu s textovou prísadou. Teraz vám to umožní mať 3 príkazy, ktoré vykonajú rovnakú akciu. $ Do frázy pridáte tam, kde by ste uviedli farbu. Ak by som napríklad povedal „Hej Google“, nastavte LED diódy na modro (tak prirodzene, ako to len na zariadení môže kričať), potom by som napísal do poľa Nastaviť LED diódy $. Vykonajte to pre všetky 3 polia s rôznymi verziami príkazu.
Tri, ktoré som použil, boli
LED diódy $
Nastavte LED diódy $
Nastaviť farbu LED $
Posledné pole je to, na čo chcete, aby váš domovský server Google odpovedal po vyslovení vášho príkazu. Môže to byť čokoľvek, čo chcete, ale použil som nastavenie farby na $. $ Znamená, že farbu zopakuje.
Kliknite na položku Vytvoriť spúšťač
Krok 4: Nastavenie IFTTT (akcia)
Po kliknutí na položku Vytvoriť spúšťač sa načítate späť do tohto a potom do tohto zobrazenia, ktoré však bolo nahradené logom Asistenta Google. Pokračujte kliknutím na +
To isté ako predtým, kde vás zavedie na panel vyhľadávania. Napíšte Webhooks a kliknite na ikonu webhooku pod vyhľadávacím panelom. V časti Vybrať akciu pre webhooky je len jedna možnosť, takže kliknite na položku Vytvoriť webovú žiadosť.
Tu je to trochu zložité. Pretože Google nie je ďalším počítačom vo vašej domácnosti, budete potrebovať svoju externú IP adresu. Bude to vyžadovať určité presmerovanie portov, ale toho sa dotkneme neskôr. Ak chcete získať svoju externú adresu IP, navštívte stránku
Do poľa URL zadajte https://xxx.xxx.xxx.xxx:3000/{{TextField}} (pričom x je vaša externá adresa IP). V prípade, že ste zvedaví, TextField bude mať farbu, ktorú ste vybrali pri zadávaní príkazu. Používame 3000 preto, že to je port, na ktorom beží server Raspberry Pi Express. (V kóde môžete zmeniť port, ale používame iba predvolené nastavenia pre Express)
V časti Metóda vyberte POST.
Pre Typ obsahu vyberte text/obyčajný text.
Do poľa Body napíšte {{TextField}}
Tí z vás, ktorí vedia, ako funguje príkaz POST, by si mysleli, že ak analyzujete vlastnosť tela požiadavky, získate farbu. Z nejakého dôvodu sa do telesného poľa žiadosti nikdy nič nevkladá, takže v skutočnosti analyzujem adresu URL farby. Dúfam, že sa to čoskoro napraví, pretože by to zjednodušilo môj kód na trase index.js. Ale odbočujem.
Nakoniec kliknite na Vytvoriť akciu a potom na ďalšej stránke na Dokončiť. (Vypol som upozornenia, ale to je prednosť)
Krok 5: Presmerovanie portov
Tu je ťažké veci vysvetliť, pretože všetky smerovače sú rôzne …
Teraz máme Google, ktorý nám poslal príkaz do domu pomocou portu 3000, ale nevie, na ktoré zariadenie v sieti LAN musí ísť. Aby sme to napravili, musíme port 3000 presmerovať na miestnu IP adresu vášho Raspberry Pi.
Choďte do svojho smerovača pomocou buď 10.0.0.1 alebo 192.168.1.1 (videl som to aj tam, kde je posledná číslica 254) a nájdite presmerovanie portov. Pri presmerovaní portov, podobne ako na obrázku, pomenujete nové zariadenie (IFTTT) a presmerujete port (3000) na IP adresu Pi (v mojom prípade 10.0.0.11).
Uložte nové nastavenie, reštartujte smerovač a skontrolujte, či je váš server Raspberry Pi stále spustený. Ak nebeží, spustite ho znova.
Vráťte sa na tento šikovný web https://canyouseeme.org/. Pod vašou IP adresou je kontrola portu. Za predpokladu, že je vaše presmerovanie portov správne, zadajte 3 000 a skontrolujte port. Malo by sa to vrátiť s úspechom.
Krok 6: Kontrola vašej doterajšej práce
Teraz … moment, na ktorý ste čakali … Povedzte spoločnosti Google príkaz, ako napríklad modré diódy LED (ak ste nasledovali môj príklad).
Za predpokladu, že všetko prebehlo správne, získate výstup viditeľný na obrázku. Zatiaľ nemáme obvod, takže uvidíte iba text na obrazovke. Spracovanie z Googlu a zobrazenie na počítači Pi zvyčajne trvá druhé alebo dve oneskorenia.
(Ak to vyzerá podobne ako na obrázku, preskočte na ďalší krok)
Teraz je tu niekoľko vecí, na ktoré by ste sa mali pozrieť, ak to nefungovalo …
Na obrázku je čiara, ktorá hovorí
POST /farba /modrá 200 250,458 ms - 2
Dvojstovka je dôležitou súčasťou. Ak nevidíte číslo 200, bol tu zlý POST, čo znamená, že váš server nevedel, čo s údajmi urobiť. Vráťte sa späť na krok 2 a skontrolujte súbor index.js.
Tiež na obrázku
výstup: modrý
stderr:
Toto je výstup zo súboru python, ktorý prevádzkuje diódy LED. Ak tam vidíte chybu, je možné, že v kroku 2 nemáte nainštalovaný ovládač.
Nakoniec, ak sa nič nezobrazí … váš IFTTT nebol správne nastavený alebo sa mu nepodarilo pripojiť k serveru. Vráťte sa na stránku IFTTT a v hornom navigačnom paneli kliknite na položku Aktivita. Tam vidíte vždy, keď sa aplikácia spustila, a ak sa vyskytla chyba, môžete vidieť, čo to bolo. Vykonal som príkaz Google s vypnutým serverom Pi a na obrázku sa zobrazila chyba.
Krok 7: Budovanie obvodu
Dôvod, prečo to musíme urobiť, je ten, že Raspberry Pi nemá dostatok energie … Riešením teda je … VIAC SILY (Tim, nástrojár, Taylor chrčí do diaľky). Alternatívny zdroj napájania (12V 2A)
Materiály pre časť obvodu
- Protoboard
- Drôt
- RGB LED pásik
- Napájanie 12 V - čokoľvek nad 2 ampéry by malo byť v poriadku
- Jack Barrel Jack - rovnaká veľkosť ako napájacie zdroje
- Výkonové tranzistory NPN BJT (x3) - používam TIP31C
- Mužské a ženské kolíkové hlavičky
Vďaka šikovnému obrázku, ktorý som ukradol z medziplošníc s GPIO Pi Zero, môžete vidieť, že GPIO17, GPIO18 a GPIO 27 sú vedľa seba s GND. Použijeme tento štvorec so 4 kolíkmi (piny 11, 12, 13, 14).
Najprv by som odporučil spájkovať mužské hlavičky na pásik LED, ako je vidieť na obrázku (nie je to moje najlepšie dielo). To umožňuje ľahké odpojenie, ak to budete niekedy potrebovať. Na pripojenie LED pásu k môjmu protoboardu som použil ženské hlavičky a z protoboardu na Raspberry Pi samčie hlavičky. (Ako zdroj napájania/signálu vždy používajte prepojky). Nemusíte presúvať všetky kolíky Pi vedľa seba ako ja … Len som chcel, aby to vyzeralo čisto, ale bolo s tým veľa práce.
Vysvetlenie obvodu
Pre tých z vás, ktorí nepoznajú tranzistory, sú tranzistory v podstate digitálnym prepínačom. Piny GPIO z Pi spúšťajú tri prepínače (červený, zelený a modrý). Keď sa pozrieme konkrétne na ČERVENÉ v schéme zapojenia, keď je GPIO_17 zapnutý, spínač „zatvorí“spojenie ČERVENÉ a GND a spôsobí rozsvietenie červených svetiel. Keď sa GPIO_17 vypne, vypínač je otvorený a svetlá sú vypnuté.
Základňa - GPIO
Zberateľ - Farby (ČERVENÁ, ZELENÁ, MODRÁ)
Vysielač - uzemnenie (napájacieho zdroja aj pí)
Uistite sa, že uzemnenie pí je spojené so zemou napájacieho zdroja. Svetlá budú stále fungovať, ale kým nebudú uzemnené, budú pôsobiť veľmi tlmene.
Na svojom protoboarde mám zariadenie vyzerajúce ako 4. tranzistor. Je to L7805CV, ktorý sa používa na prevod 12 V na 5 V, takže som mohol napájať Pi na rovnakom obvode. Fungovalo to, ale stále sa zahrievalo, takže som odstránil jeho spojenia.
Krok 8: Vyskúšajte to
Po dokončení obvodu reštartujte zariadenie Pi a až potom vykonajte akékoľvek pripojenia. Dôvodom je, že piny sú pravdepodobne stále aktívne z testu servera. Prípadne môžete zabiť server a službu pigpiod.
Pripojte diódy LED a prepojky z protoboardu k pí. Pred napájaním dvakrát skontrolujte všetky pripojenia. Ak ste to zle zapojili, môžete usmažiť svoj Pi (bez tlaku).
Kontrolný zoznam
- Skontrolujte vodiče
- Power Pi
- Napájací obvod
- Spustite server (DEBUG = webapp:* npm start while in the ~/piWebpage/webApp directory)
- Povedzte spoločnosti Google, aby urobila vaše ponuky!
GRATULUJEME, nič ste nevybuchli a svoje LED diódy môžete teraz ovládať z domova Google.
Ak máte problémy, zanechajte komentár a ja sa budem snažiť dostať sa k vám späť!
Odporúča:
Prenosné LED diódy Disco V2 -ovládané zvukom: 11 krokov (s obrázkami)
Prenosné Disco V2 -LED ovládané zvukom: Odkedy som vyrobil svoju prvú prenosnú diskotéku, prešiel som dlhú cestu. V pôvodnej zostave som hackol obvod na prototypovej doske a podarilo sa mi postaviť úhľadnú malú vreckovú diskotéku. Tentoraz som navrhol svoj vlastný PCB a
Synchrónny zvuk s malým domovom Raspberry Pi s diaľkovým ovládaním aplikácie Telefón: 10 krokov (s obrázkami)
Synchrónny zvuk celého domu Raspberry Pi s diaľkovým ovládaním aplikácie Telefón: Cieľom je synchronizovaný zvuk a/alebo jednotlivé zdroje v akejkoľvek miestnosti, ktoré je možné ľahko ovládať pomocou telefónu alebo tabletu pomocou diaľkového ovládača iTunes (Apple) alebo Retune (Android). Tiež chcem, aby sa zvukové zóny automaticky zapínali/vypínali, takže som sa obrátil na Raspberry Pi a
LED diódy Bluetooth ovládané smartfónom (so synchronizáciou živej hudby): 7 krokov
LED diódy Bluetooth ovládané smartfónom (so synchronizáciou živej hudby): Vždy som rád staval veci, potom, čo som zistil, že moja nová vysokoškolská internát má hrozné osvetlenie, rozhodol som sa ju trocha okoreniť. *** UPOZORNENIE *** Ak staviate tento projekt v rovnakom rozsahu ako moje nastavenie, budete pracovať so slušným množstvom jedenástich
LED diódy ovládané teplotou: 6 krokov
LED diódy ovládané teplotou: LED diódy vykonávajú mnoho úloh, ako napríklad indikácia, vytváranie číslic na zobrazovacích doskách a prenos informácií, aké robíme pomocou diaľkového ovládača. LED diódy sú hrdinami elektroniky a v skutočnosti " neopísané " hrdinovia. Nielen to, ale sú široko používané
Laserom ovládané LED diódy pre vašu kľúčovú značku: 5 krokov
Laserom ovládané LED diódy pre váš kľúč: automatické rozsvietenie radu LED diód pomocou laserov. yeah, ospravedlňujem sa za svoje zlé skutky, som Holanďan