Përmbajtje:
- Hapi 1: Shkarkimi i Express për Pi
- Hapi 2: Konfigurimi i serverit Pi
- Hapi 3: Konfigurimi IFTTT (Shkaktuesi)
- Hapi 4: Konfigurimi IFTTT (Veprimi)
- Hapi 5: Përcjellja e Portit
- Hapi 6: Kontrollimi i punës suaj deri më tani
- Hapi 7: Ndërtimi i qarkut
- Hapi 8: Provojeni
Video: LED -të e kontrolluara nga Google Home: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:19
Kohët e fundit, kam pasur shumë kohë të lirë në duart e mia, kështu që kam punuar në një mori projektesh.
Ky projekt do t'ju lejojë të kontrolloni LED -të RGB përmes Google Home duke përdorur një Raspberry Pi. Tani ka 3 pjesë të projektit, ngritja e një Raspberry Pi, konfigurimi i Google Home me një komandë të personalizuar duke përdorur IFTTT, dhe pastaj krijimi i një qarku për dritat. Unë e bëra qarkun vetë, por vë bast që ju mund të merrni diçka nga Adafruit që bën atë që nevojitet.
Materiale për Pjesën e Raspberry Pi
- Raspberry Pi - çdo gjë do të funksionojë, por unë jam duke përdorur një Zero
- Dongle Wireless - nëse Pi nuk ka ndërtuar në Wifi
- Google Home - Opsionale nëse keni Google Assistant në telefonin tuaj
Materialet për Pjesën e Qarkut- Mos lejoni që kjo t'ju pengojë … fairlyshtë mjaft e thjeshtë
- Protoboard
- Tela
- Rrip LED
- Furnizimi me energji 12V - Çdo gjë mbi 2 Amps duhet të jetë mirë
- DC Barrel Jack - E njëjta madhësi me furnizimin tuaj me energji elektrike
- NPN BJT Transistorët e Fuqisë (x3) - Unë jam duke përdorur TIP31C
-
Kokat e meshkujve dhe femrave - Opsionale, por shumë të rekomanduara
Hapi 1: Shkarkimi i Express për Pi
Unë nuk do të hyj në shumë detaje në lidhje me vendosjen e Pi sepse ka kaq shumë mësime atje për vendosjen e tyre.
Çfarë do të duhet të bësh që nuk po e mbuloj…
- Ndizet Raspberry Pi me Raspbian më të ri
- Konfiguroni kartën e rrjetit në mënyrë që të keni qasje në internet nga Pi
- Vendosni një IP statike në Raspberry Pi
Tani këtu fillon argëtimi! Ne duhet të instalojmë nodeJS, npm, express, dhe express-generator.
përditësim sudo apt-get
sudo apt-get install nodejs npm
Pasi të jenë instaluar, ekzekutoni sa vijon
npm instaloni ekspres-gjenerator ekspres
Express ju lejon të bëni një server në internet shumë themelor për Raspberry Pi tuaj që të përdoret. Express-generator vetëm gjeneron automatikisht skedarë për një server ekspres.
Krijoni një drejtori dhe cd në drejtori. Unë emrin tim piWebpage. Tani ekzekutoni sa vijon (shihet edhe në foto)
mkdir piWebpage
cd piWebpage express -shiko = ejs webApp
Kjo do të krijojë një dosje të quajtur webApp me të gjithë skedarët e shprehur në të. Nëse planifikoni të bëni më shumë me këtë faqe në internet më vonë dhe ju pëlqen PUG, zëvendësoni --view = ejs me --view = pug. Ne nuk do të prekim faqen në internet, kështu që për këtë aplikacion, nuk ka rëndësi se çfarë përdorim.
Hapi 2: Konfigurimi i serverit Pi
Kaloni në drejtorinë e re të webApp.
cd webApp
instaloni npm
instalimi npm do të marrë pak kohë sepse po instalon të gjitha varësitë për express.
Ngjiteni setColor.py në dosjen webApp. Ky skedar ka disa paravendosje në të për ngjyrat bazë. Mos ngurroni të shtoni më shumë sipas dëshirës tuaj. Gama është nga 0 në 255 ku 255 është me ngjyrë të plotë. Në një moment, ka të ngjarë të shtoj aftësinë për të zbehur dritat, por tani për tani, ato janë me shkëlqim të plotë.
Kaloni në rrugë
cd rrugët
Tani zëvendësoni index.js me skedarin e bashkangjitur. Kjo do të shtojë disa rreshta për të marrë një komandë POST që është ajo që do të dërgojë Google Home. Nga ajo POST, ne do të zgjedhim ngjyrën dhe do t'i themi Pi që të ekzekutojë skenarin python setColor për të rregulluar dritat.
Një gjë e fundit … Kthehuni te dosja webApp.
cd ~/piWebpage/webApp
Duke përdorur redaktorin tuaj të preferuar, ngjisni dhe ruani kodin më poshtë në webApp.js tuaj. Kudo është mirë për aq kohë sa është para "module.exports = app;"
// Konfiguro drejtuesin e harduerit LED {exec} = kërko ('procesi i fëmijës'); exec ('sudo pigpiod', (err, stdout, stderr) => {if (err) {console.log ('Gabim në ngarkimin e shoferit LED'); kthehu;} else console.log ('Shoferi LED u ngarkua me sukses'); });
Siç thotë komenti, pigpiod është drejtuesi i harduerit për sinjalet PWM që ne do të përdorim për të rregulluar ngjyrat LED. Unë besoj se vjen tashmë e instaluar në Raspbian, por nëse jo…
sudo apt-get install pigpiod
Tani për provën e vërtetë! Fillimi i serverit!
DEBUG = webapp:* fillimi npm
Hapi 3: Konfigurimi IFTTT (Shkaktuesi)
IFTTT mund të bëjë shumë, dhe unë do të rekomandoja të shikoni përreth disa prej aplikacioneve.
Së pari, do të duhet të bëni një llogari. Përdorni të njëjtën llogari Google të lidhur me Google Home tuaj, përndryshe ato nuk do të sinkronizohen së bashku. Pasi të keni përfunduar dhe regjistruar, klikoni në të djathtën e sipërme të faqes IFTTT ku tregon emrin dhe avatarin tuaj. Pastaj klikoni Apleti i Ri nga lista zbritëse.
Nëse jeni kurioz, IFTTT qëndron për IF This Then That nëse nuk e keni vënë re nga ekrani që shfaqet. Pra, ajo që duam është Nëse Google Assistant, atëherë Webhook si opsionet tona.
Vazhdoni duke klikuar +këtë e cila do të ngarkojë një shirit kërkimi. Në kërkim, shkruani Google Assistant dhe klikoni ikonën poshtë kërkimit.
Në Zgjidhni një shkas, zgjidhni opsionin e tretë të quajtur Thuaj një frazë me një përbërës teksti. Tani kjo ju lejon të keni 3 komanda që do të bëjnë të njëjtin veprim. Ju shtoni $ në frazën ku do të përmendnit ngjyrën. Për shembull, nëse natyrshëm do të thosha Hey Google, Cakto LEDs Blue (aq e natyrshme sa të bërtasësh në një pajisje), atëherë do të shkruaja në fushën Set LEDs $. Bëni atë për të 3 fushat me versione të ndryshme të komandës.
3 që kam përdorur ishin
LEDs $
Vendosni LED $
Vendosni ngjyrën LED $
Fusha e fundit është ajo që do të donit të përgjigjej Google Home pasi të thoni komandën tuaj. Mund të jetë gjithçka që dëshironi, por kam përdorur Vendosja e ngjyrës në $. $ Do të thotë që ajo do të përsërisë ngjyrën mbrapa.
Klikoni Krijo Shkaktues
Hapi 4: Konfigurimi IFTTT (Veprimi)
Pasi të klikoni Krijo shkas, do të ngarkoni përsëri në pamjen nëse kjo atëherë, por kjo është zëvendësuar me logon e Asistentit Google. Vazhdoni duke klikuar +atë
E njëjta gjë si më parë ku ju sjell në shiritin e kërkimit. Shkruani Webhooks dhe klikoni ikonën e webhook poshtë shiritit të kërkimit. Nën Zgjidhni veprimin për lidhëset e uebit, ekziston vetëm një opsion, kështu që klikoni Bëni një kërkesë në internet.
Këtu gjërat bëhen pak të ndërlikuara. Meqenëse Google nuk është një kompjuter tjetër në shtëpinë tuaj, do t'ju duhet adresa juaj e jashtme IP. Kjo do të kërkojë një përcjellje të portit, por ne do ta prekim atë më vonë. Për të marrë adresën tuaj të jashtme IP, shkoni te
Në fushën URL, shkruani https://xxx.xxx.xxx.xxx:3000/{{TextField}} (me x -të që janë adresa juaj e jashtme IP). Në rast se jeni kurioz, TextField do të ketë ngjyrën që keni zgjedhur kur bëni një komandë. Arsyeja që ne përdorim 3000 është sepse ky është porti në të cilin po funksionon serveri Raspberry Pi Express. (Mund ta ndryshoni portën në kod, por ne thjesht po përdorim cilësimet e paracaktuara për Express)
Për Metodën, zgjidhni POST.
Për Llojin e Përmbajtjes, zgjidhni tekstin/fushën.
Për trupin, shkruani në {{TextField}}
Ata prej jush që e dinë se si funksionon një komandë POST, do të mendonit se nëse analizoni vetinë e trupit të kërkesës që do të merrni ngjyrën. Për disa arsye, asgjë nuk futet kurrë në fushën e kërkesës, kështu që unë në të vërtetë po analizoj URL -në për ngjyrën. Shpresoj që të rregullohet së shpejti, pasi kjo do të thjeshtonte kodin tim në rrugën index.js. Por unë devijoj.
Së fundi, klikoni Krijo veprim dhe më pas Mbaro në faqen tjetër. (Unë i fikja njoftimet, por kjo është preferenca)
Hapi 5: Përcjellja e Portit
Kjo është ajo ku gjërat bëhen të vështira për t'u shpjeguar sepse të gjithë ruterët janë të ndryshëm …
Tani ne kemi Google që dërgon një komandë në shtëpinë tonë duke përdorur portin 3000, por nuk e di se në cilën pajisje në LAN duhet të shkojë. Për të korrigjuar këtë, ne duhet të përcjellim portin 3000 në adresën IP lokale të Raspberry Pi tuaj.
Hyni në ruterin tuaj duke përdorur ose 10.0.0.1 ose 192.168.1.1 (e kam parë gjithashtu aty ku shifra e fundit është 254) dhe gjeni përcjelljen e portit. Në përcjelljen e porteve, të ngjashme me imazhin, do të emërtoni një pajisje të re (IFTTT) dhe do ta përcillni portën (3000) në adresën IP të Pi (në rastin tim 10.0.0.11).
Ruani cilësimin tuaj të ri, rindizni ruterin tuaj dhe kontrolloni për t'u siguruar që serveri juaj Raspberry Pi është ende në punë. Nëse nuk po funksionon, filloni përsëri.
Kthehuni në atë faqe interneti të dobishme https://canyouseeme.org/. Nën adresën tuaj IP, ajo ka një kontrollues portesh. Duke supozuar se përcjellja e portit tuaj është e saktë, shkruani 3000 dhe shtypni portën e kontrollit. Duhet të kthehet me një Sukses.
Hapi 6: Kontrollimi i punës suaj deri më tani
Tani … momentin që keni pritur… Thuajini Google një komandë të tillë si LEDs blu (nëse ndiqni shembullin tim).
Duke supozuar se gjithçka shkoi si duhet, do të merrni daljen e parë në figurë. Ne nuk kemi ende një qark, kështu që gjithçka që do të shihni është teksti në ekran. Zakonisht ka një vonesë të dytë ose 2 para se të përpunohet nga Google dhe të shfaqet në Pi.
(Kaloni në hapin tjetër nëse kjo doli në mënyrë të ngjashme me figurën)
Tani ka disa gjëra për të parë nëse nuk funksionon…
Në foto, ka një rresht që thotë
POST /ngjyra /blu 200 250.458 ms - 2
200 është pjesa e rëndësishme. Nëse nuk po shihni një 200, atëherë kishte një POST të keq që do të thotë që serveri juaj nuk dinte se çfarë të bënte me të dhënat. Kthehuni te Hapi 2 dhe kontrolloni skedarin tuaj index.js.
Gjithashtu në foto
stdout: blu
stderr:
Ky është dalja nga skedari python që drejton LED -të. Nëse shihni një gabim atje, mund të jetë që nuk e keni drejtuesin të instaluar në Hapin 2.
Së fundmi, nëse asgjë nuk shfaqet fare … IFTTT juaj mund të mos jetë konfiguruar saktë ose të mos ketë arritur të lidhet me serverin. Kthehuni në faqen IFTTT dhe në shiritin e sipërm të navigimit, klikoni Aktiviteti. Aty, mund të shihni çdo herë që aplikacioni juaj ka funksionuar, dhe nëse ka pasur një gabim, mund të shihni se çfarë ishte. Bëra një komandë të Google me serverin Pi të fikur dhe mora gabimin në figurë.
Hapi 7: Ndërtimi i qarkut
Arsyeja pse ne duhet ta bëjmë këtë është sepse Raspberry Pi nuk ka fuqi të mjaftueshme … Pra, zgjidhja është … MORE SHUM FUQI (Tim, njeriu i veglave Taylor gërryen në distancë). AKA një tjetër furnizim me energji elektrike (12V 2A)
Materialet për Pjesën e Qarkut
- Protoboard
- Tela
- Rrip LED RGB
- Furnizimi me energji 12V - Çdo gjë mbi 2 Amps duhet të jetë mirë
- DC Barrel Jack - E njëjta madhësi me furnizimin tuaj me energji elektrike
- NPN BJT Transistorët e Fuqisë (x3) - Unë jam duke përdorur TIP31C
- Titujt e kunjave për meshkuj dhe femra
Duke përdorur fotografinë e dobishme që kam vjedhur nga ndërthurjet me GPIO të Pi Zero, ju mund të shihni që GPIO17, GPIO18 dhe GPIO 27 janë të vendosur pranë njëri -tjetrit me një GND. Ne do të përdorim atë katror me 4 kunja (Kunjat 11, 12, 13, 14).
Së pari, unë do të rekomandoja bashkimin e titujve meshkuj në shiritin tuaj LED siç shihet në imazh (jo puna ime më e mirë). Kjo lejon një shkëputje të lehtë nëse keni nevojë ndonjëherë. Kam përdorur tituj femra për lidhjen e shiritit LED me protoboardin tim dhe titujt meshkuj nga protoboardi në Raspberry Pi. (Përdorni gjithmonë lidhjet femra për energji/burim sinjali). Ju nuk keni nevojë të lëvizni të gjitha kunjat e Pi -së njëra pranë tjetrës si unë … Unë thjesht doja që ajo të dukej e pastër, por ishte shumë punë.
Shpjegimi i qarkut
Për ata prej jush të panjohur me transistorët, transistorët janë në thelb një ndërprerës dixhital. Kunjat GPIO nga Pi shkaktojnë tre ndërprerës (të kuq, jeshil dhe blu). Duke parë në mënyrë të veçantë DAR në diagramin e qarkut, kur GPIO_17 është i ndezur, çelësi "mbyllet" duke lidhur RED me GND duke shkaktuar ndezjen e dritave të kuqe. Kur GPIO_17 fiket, atëherë çelësi është i hapur dhe kështu dritat janë fikur.
Baza - GPIO
Koleksionist - Ngjyra (E KUQ, E GJELLE, E Kaltër)
Emitter - Ground (i Furnizimit me Energji dhe Pi)
Sigurohuni që të lidhni tokën e Pi me tokën e furnizimit me energji elektrike. Dritat do të punojnë akoma, por ato do të duken shumë të zbehta derisa toka të lidhet.
Unë kam një pajisje të katërt me pamje tranzistori në protoboardin tim. Shtë një L7805CV i cili përdoret për të kthyer 12V në 5V, kështu që unë mund të fuqizoj Pi në të njëjtin qark. Ajo funksionoi, por vazhdoi të ngrohej, kështu që hoqa lidhjet e saj.
Hapi 8: Provojeni
Pasi të keni përfunduar me qarkun, rinisni Pi tuaj para se të bëni ndonjë lidhje. Kjo ndodh sepse kunjat ndoshta janë akoma aktive nga testi i serverit. Përndryshe, ju mund të vrisni serverin dhe shërbimin e derrit.
Lidhni LED -të dhe kërcyesit nga protoboardi në Pi. Kontrolloni dy herë të gjitha lidhjet para se të siguroni energji. Nëse e keni lidhur gabimisht, mund të skuqni Pi tuaj (pa presion).
Listë kontrolli
- Kontrolloni telat
- Fuqia Pi
- Qarku i energjisë
- Filloni serverin (DEBUG = webapp:* npm filloni ndërsa jeni në drejtorinë ~/piWebpage/webApp)
- Thuaji Google të bëjë ofertën tënde!
URIME nuk keni hedhur asgjë në erë dhe tani mund t'i kontrolloni LED -et tuaja nga Google Home.
Lini komente nëse keni probleme, dhe unë do të bëj çmos që të kthehem tek ju!
Recommended:
DIY - Hije LED RGB të kontrolluara nga Arduino: 5 hapa (me fotografi)
DIY | Rijet LED RGB të kontrolluara nga Arduino: Sot unë do t'ju mësoj se si mund t'i ndërtoni syzet tuaja RGB LED shumë lehtë dhe lirë Kjo ka qenë gjithmonë një nga ëndrrat e mia më të mëdha dhe më në fund u bë realitet! Një thirrje e madhe për NextPCB për sponsorizim ky projekt. Ata janë një prodhues PCB,
Dritat e desktopit të kontrolluara nga distanca RGB: 5 hapa
Dritat e desktopit RGB të kontrolluara nga distanca: Ky projekt demonstron përdorimin e bazës së zjarrit si një server për kontrollimin dhe manipulimin e dritave të drejtuara përgjatë pjesës së pasme të tryezës sime
Perde inteligjente të integruara të kontrolluara nga Alexa: 8 hapa (me fotografi)
Blindet inteligjente të integruara të kontrolluara nga Alexa: Ka shumë projekte të mençura dhe udhëzime aktualisht të disponueshme në internet. Megjithatë, unë doja të vendosja prekjen time në projektet aktuale me qëllim që çdo gjë e brendshme të ishte e verbër duke përfshirë të gjithë qarkun. Kjo do të thotë
Ekranet e dyfishta me 7 segmente të kontrolluara nga potenciometri në qark Python - Demonstrimi i këmbënguljes së vizionit: 9 hapa (me fotografi)
Ekranet e dyfishta me 7 segmente të kontrolluara nga potenciometri në qarkPython-Demonstrimi i qëndrueshmërisë së vizionit: Ky projekt përdor një potenciometër për të kontrolluar ekranin në disa ekrane LED me 7 segmente (F5161AH). Ndërsa rrotulloni çelësin e potenciometrit, numri i shfaqur ndryshon në rangun 0 në 99. Vetëm një LED ndizet në çdo moment, shumë shkurt, por
Dritat e kontrolluara nga zëri nga kudo me Jason: 7 hapa
Dritat e kontrolluara me zë nga kudo me Jason: Dritat AC që kontrollohen nga kudo me lidhje interneti duke përdorur NodeMCU (ESP8266) dhe Jason (Aplikacioni Android). Jason është një aplikacion ndihmës i kontrolluar nga zëri që kam koduar për pajisjet Android për të kontrolluar gjendjen elektrike të një Pajisja AC, pa