Tartalomjegyzék:
- 1. lépés: Az Express letöltése a Pi -hez
- 2. lépés: A Pi szerver beállítása
- 3. lépés: IFTTT beállítás (trigger)
- 4. lépés: IFTTT beállítás (művelet)
- 5. lépés: Porttovábbítás
- 6. lépés: Az eddigi munkák ellenőrzése
- 7. lépés: Az áramkör építése
- 8. lépés: Teszteld
Videó: Google Home vezérelt LED -ek: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Az utóbbi időben sok szabadidőm volt a kezemben, ezért rengeteg projekten dolgoztam.
Ez a projekt lehetővé teszi az RGB LED -ek vezérlését a Google Home segítségével Raspberry Pi segítségével. Most a projekt három részből áll: a Raspberry Pi beállítása, a Google Home beállítása egyéni paranccsal az IFTTT használatával, majd áramkör létrehozása a fényekhez. Magam készítettem az áramkört, de fogadok, hogy kaphat valamit az Adafruit -tól, amire szükség van.
Anyagok a Raspberry Pi alkatrészhez
- Raspberry Pi - bármelyik működni fog, de én nullát használok
- Vezeték nélküli hardverkulcs - ha a Pi nem rendelkezik beépített Wifi -vel
- Google Home - Nem kötelező, ha a Google Segéd van a telefonján
Anyagok az áramkör alkatrészekhez- Ne hagyja, hogy ez elriasztja Önt … Ez meglehetősen egyszerű
- Protoboard
- Huzal
- LED-csík
- 12 V -os tápegység - minden, ami 2 amper felett van, rendben kell lennie
- DC Barrel Jack - Ugyanaz a méret, mint a tápegységé
- NPN BJT teljesítménytranzisztorok (x3) - TIP31C -t használok
-
Férfi és női tűfejlécek - opcionális, de erősen ajánlott
1. lépés: Az Express letöltése a Pi -hez
Nem megyek túl sok részletbe a Pi beállításával kapcsolatban, mert nagyon sok oktatóanyag létezik a beállításukhoz.
Mit kell tenned, amire nem térek ki…
- Villogó Raspberry Pi a legújabb Raspbian -szal
- Állítsa be a hálózati kártyát, hogy hozzáférhessen az internethez a Pi -ről
- Állítson be egy statikus IP -t a Raspberry Pi -n
Most itt kezdődik a mulatság! Telepítenünk kell a nodeJS, npm, express és expressz-generátort.
sudo apt-get update
sudo apt-get install nodejs npm
Miután telepítette ezeket, futtassa a következőt
npm express express generátor telepítése
Az Express lehetővé teszi, hogy egy nagyon egyszerű webszervert készítsen a Raspberry Pi számára. Az Express-generator csak automatikusan generál fájlokat egy expressz kiszolgálóhoz.
Készítsen egy könyvtárat, és írjon le egy CD -t a könyvtárba. Az enyémet piWebpage -nek neveztem el. Most futtassa a következőt (a képen is látható)
mkdir piWebpage
cd piWebpage express --view = ejs webApp
Ez létrehoz egy webApp nevű mappát az összes expressz fájllal. Ha később többet szeretne tenni ezzel az oldallal, és tetszik a PUG, cserélje le a --view = ejs szót a --view = pug elemre. Nem fogjuk megérinteni a weboldalt, ezért az alkalmazás esetében nem mindegy, hogy mit használunk.
2. lépés: A Pi szerver beállítása
Lépjen az új webApp könyvtárba.
cd webApp
npm telepítés
Az npm telepítése eltart egy ideig, mert az összes függőséget telepíti az expressz számára.
Illessze be a setColor.py fájlt a webApp mappába. Ez a fájl tartalmaz néhány előre beállított alapszínt. Nyugodtan adhat hozzá még tetszés szerint. A tartomány 0 és 255 között van, ahol a 255 színes. Egy bizonyos ponton valószínűleg hozzáadom a fények tompításának képességét, de egyelőre teljes fényerővel rendelkeznek.
Lépjen az útvonalakba
cd útvonalak
Most cserélje ki az index.js fájlt a csatolt fájlra. Ez néhány sort ad hozzá a POST parancs fogadásához, amelyet a Google Home küld. Ebből a POST -ból kiválasztjuk a színt, és azt mondjuk a Pi -nek, hogy futtassa a setColor python szkriptet a fények beállításához.
Még egy utolsó dolog … Térjen vissza a webApp mappába.
cd ~/piWebpage/webApp
A kedvenc szerkesztőjével illessze be és mentse el az alábbi kódot a webApp.js fájlba. Bárhol rendben van, amíg a "modul.exports = app;"
// A LED hardver illesztőprogramjának beállítása {exec} = need ('child_process'); exec ('sudo pigpiod', (err, stdout, stderr) => {if (err) {console.log ('Hiba a LED -illesztőprogram betöltésekor'); return;} else console.log ('LED -illesztőprogram sikeresen betöltve'); });
Mint a megjegyzés mondja, a pigpiod a PWM jelek hardver illesztőprogramja, amelyet a LED színek beállítására használunk. Azt hiszem, már telepítve van a Raspbianban, de ha nem…
sudo apt-get install pigpiod
Most következzen az igazi teszt! A szerver indítása!
DEBUG = webalkalmazás:* npm start
3. lépés: IFTTT beállítás (trigger)
Az IFTTT sokat tehet, és nagyon ajánlom, hogy nézzen körül néhány alkalmazásban.
Először is létre kell hoznia egy fiókot. Használja ugyanazt a Google -fiókot, amelyet a Google Home -hoz társított, különben nem szinkronizálódnak együtt. Miután befejezte és bejelentkezett, kattintson az IFTTT oldal jobb felső sarkára, ahol az Ön neve és avatarja látható. Ezután kattintson az Új kisalkalmazás elemre a legördülő menüben.
Ha kíváncsi, az IFTTT az IF This then That (IF ez azután) rövidítést jelenti, ha nem vette észre a felbukkanó képernyőn. Tehát azt szeretnénk, ha Ha a Google Segéd, akkor a Webhook lehetõség.
Folytassa a +erre kattintva, amely betölti a keresősávot. A keresésben írja be a Google Segédet, és kattintson a keresés alatti ikonra.
A Kiválasztó aktiválása részben válassza ki a 3. Mondat egy mondatot szövegösszetevővel című opciót. Ez lehetővé teszi, hogy 3 parancsot adjon meg, amelyek ugyanazt a műveletet hajtják végre. Hozzáadja a $ kifejezést, ahol megemlíti a színt. Például, ha természetesen azt mondanám, hogy Hey Google, Set LEDs Blue (olyan természetes, amennyire az eszközön kiabálni lehet), akkor beírnám a Set LEDs $ mezőbe. Végezze el mind a 3 mezőt a parancs különböző verzióival.
A 3 amit használtam
LED -ek $
Állítsa be a LED -eket $
A LED színének beállítása $
Az utolsó mezőben azt szeretné, ha a Google Home válaszolna a parancs kiadása után. Bármi lehet, de én a Szín beállítása $ -ra használtam. A $ azt jelenti, hogy vissza fogja ismételni a színt.
Kattintson a Trigger létrehozása gombra
4. lépés: IFTTT beállítás (művelet)
Miután rákattintott a Trigger létrehozása gombra, betöltődik az if, akkor az adott nézetbe, de ezt felváltotta a Google Assistant logó. Folytassa a +gombra kattintva
Ugyanaz, mint korábban, amikor a keresősávba vezet. Gépelje be a Webhooks elemet, és kattintson a webhook ikonra a keresősáv alatt. A Webhooks művelet kiválasztása alatt csak egy lehetőség van, ezért kattintson a Webes kérés létrehozása lehetőségre.
Itt a dolgok kicsit bonyolulttá válnak. Mivel a Google nem egy másik számítógép az Ön házában, szüksége lesz a külső IP -címére. Ehhez némi kiküldés szükséges, de erre később kitérünk. A külső IP -cím megszerzéséhez keresse fel a https://canyouseeme.org/ webhelyet
Az URL mezőbe írja be: https://xxx.xxx.xxx.xxx:3000/{{TextField}} (az x -ek a külső IP -címe). Ha kíváncsi vagy, a TextField parancs színe a kiválasztott szín lesz. A 3000 -et azért használjuk, mert a Raspberry Pi Express szerver ezen a porton fut. (Megváltoztathatja a portot a kódban, de csak az Express alapértelmezett beállításait használjuk)
A Metódhoz válassza a POST lehetőséget.
A Content Type (Tartalom típusa) mezőben válassza a text/plain (Szöveg/egyszerű) lehetőséget.
A törzs mezőbe írja be: {{TextField}}
Azok, akik ismerik a POST parancs működését, azt gondolnák, hogy ha elemezi a kérés törzs tulajdonságát, akkor megkapja a színt. Valamilyen oknál fogva soha semmi nem kerül a kérés törzsmezőjébe, ezért valójában elemzem a szín URL -jét. Remélem, ez hamarosan kijavításra kerül, mivel ez egyszerűsítené a kódomat az index.js útvonalon. De kitérek.
Végül kattintson a Művelet létrehozása, majd a Befejezés gombra a következő oldalon. (Kikapcsoltam az értesítéseket, de ez a preferencia)
5. lépés: Porttovábbítás
Itt nehéz megmagyarázni a dolgokat, mert minden útválasztó más …
Most a Google parancsot küld a házunkba a 3000 -es porton keresztül, de nem tudja, melyik LAN -eszközre kell mennie. Ennek orvoslására továbbítanunk kell a 3000 -es portot a Raspberry Pi helyi IP -címére.
Menjen be az útválasztóba a 10.0.0.1 vagy a 192.168.1.1 használatával (én is láttam, ahol az utolsó számjegy 254), és keresse meg a porttovábbítást. A porttovábbítás során a képhez hasonlóan új eszközt (IFTTT) nevez el, és a portot (3000) továbbítja a Pi IP -címére (az én esetemben 10.0.0.11).
Mentse el az új beállítást, indítsa újra az útválasztót, és ellenőrizze, hogy a Raspberry Pi szerver továbbra is fut -e. Ha nem fut, indítsa újra.
Térjen vissza erre a praktikus webhelyre: https://canyouseeme.org/. Az IP -címe alatt van egy portellenőrző. Feltételezve, hogy a porttovábbítás helyes, írja be a 3000 értéket, és nyomja meg az ellenőrző portot. Sikerrel kell visszatérnie.
6. lépés: Az eddigi munkák ellenőrzése
Most… a pillanat, amire várt… Mondja el a Google -nak egy parancsot, például a kék LED -eket (ha követte a példámat).
Feltételezve, hogy minden rendben volt, a képen látható kimenetet kapja. Még nincs áramkörünk, így csak a képernyőn látható szöveget láthatja. Általában egy második vagy két késleltetés van, mielőtt a Google feldolgozza, és megjelenik a Pi -n.
(Ugrás a következő lépésre, ha ez hasonlóan sikerült a képhez)
Most néhány dolgot meg kell nézni, ha nem működik…
A képen van egy sor, amely azt mondja
POST /színes /kék 200 250,458 ms - 2
A 200 a fontos rész. Ha nem lát egy 200 -at, akkor rossz POST volt, ami azt jelenti, hogy a szerver nem tud mit kezdeni az adatokkal. Térjen vissza a 2. lépéshez, és ellenőrizze az index.js fájlt.
A képen is
stdout: kék
stderr:
Ez a LED -eket futtató python fájl kimenete. Ha hibát lát ott, akkor lehet, hogy nincs telepítve az illesztőprogram a 2. lépésben.
Végezetül, ha semmi sem látszott… előfordulhat, hogy az IFTTT nincs megfelelően beállítva, vagy nem tud csatlakozni a szerverhez. Menjen vissza az IFTTT oldalra, és kattintson a felső navigációs sávon a Tevékenység elemre. Itt minden alkalommal láthatja az alkalmazás futtatását, és ha hiba történt, láthatja, hogy mi volt az. Google parancsot adtam ki a Pi szerverrel, és a képen látható hiba történt.
7. lépés: Az áramkör építése
Ezt azért kell megtennünk, mert a Raspberry Pi -nek nincs elég ereje… A megoldás tehát… TÖBB ERŐ (Tim, a szerszámember, Taylor morog a távolban). AKA másik tápegység (12V 2A)
Anyagok az áramköri részhez
- Protoboard
- Huzal
- RGB LED szalag
- 12 V -os tápegység - minden, ami 2 amper felett van, rendben kell lennie
- DC Barrel Jack - Ugyanaz a méret, mint a tápegységé
- NPN BJT teljesítménytranzisztorok (x3) - TIP31C -t használok
- Férfi és női tűfejlécek
A praktikus kép segítségével, amelyet a Pi Zero GPIO -jából loptam, láthatod, hogy a GPIO17, a GPIO18 és a GPIO 27 egymás mellett vannak GND -vel. Ezt a négycsapos négyzetet fogjuk használni (11, 12, 13, 14).
Először is azt javaslom, hogy a férfi fejléceket forrasztják a LED szalagra a képen látható módon (nem a legjobb munkám). Ez lehetővé teszi a könnyű leválasztást, ha szükséges. Női fejléceket használtam a LED -csík protoboard -hoz való csatlakoztatásához, és férfi fejléceket a protoboard -tól a Raspberry Pi -hez. (Tápellátáshoz/jelforráshoz mindig női csatlakozókat használjon). Nem kell a Pi összes csapját egymás mellé helyezni, mint én … Csak tisztának akartam látni, de sok munka volt.
Áramkörmagyarázat
Azok számára, akik nem ismerik a tranzisztorokat, a tranzisztorok alapvetően digitális kapcsolók. A Pi GPIO csapjai a három kapcsolót (piros, zöld és kék) váltják ki. Ha a kapcsolási rajzon a RED -et nézzük, amikor a GPIO_17 be van kapcsolva, a kapcsoló "bezárul", amely a RED -et a GND -hez csatlakoztatja, és a piros lámpák kigyulladnak. Amikor a GPIO_17 kikapcsol, a kapcsoló nyitva van, és így a lámpák kialszanak.
Bázis - GPIO -k
Gyűjtő - színek (PIROS, ZÖLD, KÉK)
Emitter - földelés (mind a tápegység, mind a Pi)
Győződjön meg arról, hogy a Pi földjét csatlakoztatja a tápegység földjéhez. A lámpák továbbra is működnek, de nagyon gyengének tűnnek, amíg a földet nem csatlakoztatják.
Van egy negyedik tranzisztoros eszköz a protoboardon. Ez egy L7805CV, amelyet 12 V -ról 5 V -ra alakítanak, így a Pi -t ugyanazon az áramkörön tudnám táplálni. Működött, de túlmelegedett, ezért eltávolítottam a csatlakozásait.
8. lépés: Teszteld
Miután befejezte az áramkört, indítsa újra a Pi -t, mielőtt bármilyen kapcsolatot létesítene. Ennek oka az, hogy a csapok valószínűleg továbbra is aktívak a szervertesztből. Alternatív megoldásként megölheti a szervert és a pigpiod szolgáltatást.
Csatlakoztassa a LED -eket és az áthidalókat a protoboardról a Pi -hez. Tápellátás előtt ellenőrizze újra az összes csatlakozást. Ha rosszul csatlakoztatta, akkor megsütheti a Pi -t (nincs nyomás).
Ellenőrző lista
- Ellenőrizze a vezetékeket
- Teljesítmény Pi
- Főáramkör
- Kiszolgáló indítása (DEBUG = webapp:* npm start a ~/piWebpage/webApp könyvtárban)
- Mondja meg a Google -nak, hogy tegyen ajánlatot!
GRATULÁLUNK, hogy nem robbant fel semmit, és mostantól vezérelheti LED -jeit a Google Home -ról.
Ha problémája van, hagyjon megjegyzést, és mindent megteszek, hogy visszajöjjek Önhöz!
Ajánlott:
Google asszisztens által vezérelt LED -mátrix!: 7 lépés (képekkel)
Google asszisztens által vezérelt LED -mátrix!: Ebben az oktatóanyagban megmutatom, hogyan készítheti el a Google asszisztens által vezérelt LED -mátrixot, amelyet bárhol vezérelhet egy okostelefon használatával, ezért kezdjük el
Google által vezérelt konnektor: 7 lépés
Google Controlled Outlet: Projekt a saját intelligens konnektor létrehozásáról, amelyet a Google asszisztenssel vagy alapvetően bármely más bemeneti szolgáltatással lehet irányítani az IFTTT -n
DIY Voice/Internet vezérelt otthoni automatizálás és felügyelet az ESP8266 és a Google Home Mini használatával: 6 lépés
DIY Voice/Internet vezérelt otthoni automatizálás és felügyelet az ESP8266 és a Google Home Mini használatával: Hé !! Hosszú szünet után itt vagyok, és mindannyiunknak unalmas (munkát) kell tennünk a kereséshez. Az összes HOME AUTOMATION cikk után, amelyeket a BLUETOOTH, az IR, a helyi WIFI, a Cloud, azaz a nehezek közül írtam, * MOST * jön a legegyszerűbb, de leghatékonyabb
A GOOGLE ASSISTANT Vezérelt kapcsolója a NODEMCU használatával: 9 lépés
GOOGLE ASSISTANT VÁLLALT KAPCSOLÓ NODEMCU HASZNÁLATÁVAL: Nem lenne nagyszerű be- vagy kikapcsolni a dolgokat a Google asszisztens segítségével. , mint az Amazon Alexa. Sok kereskedelmi eszköz
Google Home vezérelt konnektor: 9 lépés (képekkel)
Google Home vezérelt konnektor: A barátnőm mindig okos otthont akart építeni. Ezért felépítjük az intelligens otthon infrastruktúráját és első elemét, egy távirányítású kimeneti kapcsolót, amelyet a kezelőpanel vagy a hangutasítások segítségével vezérelhet (ha van Google home vagy goog