Kazalo:
- 1. korak: Prenos Expressa za Pi
- Korak: Nastavitev strežnika Pi
- 3. korak: Nastavitev IFTTT (sprožilec)
- 4. korak: Nastavitev IFTTT (dejanje)
- 5. korak: Posredovanje vrat
- 6. korak: Preverite svoje dosedanje delo
- 7. korak: Izdelava vezja
- 8. korak: Preizkusite
Video: Googlove domače LED diode: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
V zadnjem času imam veliko prostega časa, zato sem delal na kopici projektov.
Ta projekt vam bo omogočil nadzor RGB LED prek Googlove domače strani z uporabo Raspberry Pi. Zdaj so trije deli projekta: nastavitev Raspberry Pi, nastavitev Google Home z ukazom po meri z uporabo IFTTT in nato ustvarjanje vezja za luči. Sam sem naredil vezje, vendar stavim, da bi od Adafruit -a lahko dobili nekaj, kar naredi potrebno.
Materiali za del Raspberry Pi
- Raspberry Pi - vse bo delovalo, vendar uporabljam Zero
- Brezžični ključ - če Pi nima vgrajenega Wi -Fi -ja
- Google Home - neobvezno, če imate v telefonu Pomočnika Google
Materiali za del vezja- naj vas to ne odvrne … Precej preprosto je
- Protoboard
- Žica
- LED trak
- 12V napajalnik - Vse, kar je nad 2 ampera, mora biti v redu
- DC Barrel Jack - enake velikosti kot vaš napajalnik
- Močni tranzistorji NPN BJT (x3) - uporabljam TIP31C
- Moški in ženski zatiči - neobvezni, vendar zelo priporočljivi
1. korak: Prenos Expressa za Pi
Ne bom se preveč spuščal v nastavitve Pi, ker obstaja toliko vaj za njihovo nastavitev.
Kaj morate storiti, ne pokrivam …
- Utripajoči Raspberry Pi z najnovejšo različico Raspbian
- Omrežno kartico nastavite tako, da lahko dostopate do interneta s Pi
- Nastavite statični IP na Raspberry Pi
Tu se zabava začne! Namestiti moramo nodeJS, npm, express in express-generator.
sudo apt-get posodobitev
sudo apt-get install nodejs npm
Ko so ti nameščeni, zaženite to
npm namestite express express-generator
Express vam omogoča, da naredite zelo preprost spletni strežnik za uporabo vašega Raspberry Pi. Express-generator samo samodejno ustvari datoteke za hitri strežnik.
Naredite imenik in CD v imenik. Svojo sem poimenoval piWebpage. Zdaj zaženite naslednje (tudi na sliki)
mkdir piSpletna stran
cd piWebpage express --view = ejs webApp
To bo ustvarilo mapo z imenom webApp z vsemi hitrimi datotekami. Če nameravate pozneje narediti več s to spletno stranjo in vam je všeč PUG, zamenjajte --view = ejs z --view = pug. Spletne strani se ne bomo dotikali, zato za to aplikacijo ni pomembno, kaj uporabljamo.
Korak: Nastavitev strežnika Pi
Premaknite se v nov imenik webApp.
cd webApp
npm install
npm install bo trajal nekaj časa, ker namešča vse odvisnosti za express.
Prilepite setColor.py v mapo webApp. Ta datoteka vsebuje nekaj prednastavitev za osnovne barve. Dodate jih lahko po želji. Razpon je od 0 do 255, pri čemer je 255 polnobarven. V nekem trenutku bom verjetno dodal možnost zatemnitve luči, vendar so za zdaj polne.
Premaknite se na poti
cd poti
Zdaj zamenjajte index.js s priloženo datoteko. To bo dodalo nekaj vrstic za prejem ukaza POST, ki ga bo poslal Google Home. Iz tega POST -a bomo izbrali barvo in povedali Pi, naj zažene setColor python skript za prilagoditev luči.
Še nekaj … Vrnite se v mapo webApp.
cd ~/piWebpage/webApp
S svojim najljubšim urejevalnikom prilepite in shranite spodnjo kodo v svoj webApp.js. Kjer koli je v redu, dokler je pred "module.exports = app;"
// Nastavitev gonilnika strojne opreme LEDconcon {exec} = require ('child_process'); exec ('sudo pigpiod', (err, stdout, stderr) => {if (err) {console.log ('Napaka pri nalaganju gonilnika LED'); return;} else console.log ('Gonilnik LED je uspešno naložen'); });
Kot pravi komentar, je pigpiod strojni gonilnik za signale PWM, ki jih bomo uporabili za prilagajanje barv LED. Verjamem, da je že nameščen v Raspbianu, če pa ne …
sudo apt-get install pigpiod
Zdaj pa za pravi preizkus! Zagon strežnika!
DEBUG = webapp:* npm start
3. korak: Nastavitev IFTTT (sprožilec)
IFTTT lahko veliko naredi in toplo priporočam, da si ogledate nekatere aplikacije.
Najprej morate ustvariti račun. Uporabite isti Google Račun, ki je povezan z vašim domom Google, sicer se ne bodo sinhronizirali skupaj. Ko ste dokončani in prijavljeni, kliknite zgornji desni del strani IFTTT, kjer je prikazano vaše ime in avatar. Nato v spustnem meniju kliknite Nov programček.
Če vas zanima, IFTTT pomeni IF This Then That, če niste opazili ob pojavnem zaslonu. Torej želimo, če je Google Assistant, potem Webhook kot naše možnosti.
Nadaljujte s klikom na +to bo naložilo iskalno vrstico. Pri iskanju vnesite Google Assistant in kliknite ikono pod iskalnikom.
V možnosti Izbira sprožilca izberite tretjo možnost, imenovano Izgovorite frazo z besedilno sestavino. Zdaj vam to omogoča, da imate 3 ukaze, ki bodo izvedli isto dejanje. $ Dodate frazo, kjer bi omenili barvo. Če bi na primer rekel Hey Google, Set LEDs Blue (tako naravno, kot je lahko kričanje na napravo), bi v polje Set LEDs vnesel $. Naredite to za vsa 3 polja z različnimi različicami ukaza.
3, ki sem jih uporabil, so bile
LED diode $
Nastavite LED diode $
Nastavite LED barvo $
Zadnje polje je tisto, na kar želite, da vaš Google Home odgovori, ko izgovorite ukaz. Lahko je karkoli želite, vendar sem uporabil Nastavitev barve na $. $ Pomeni, da bo barvo ponovila.
Kliknite Ustvari sprožilec
4. korak: Nastavitev IFTTT (dejanje)
Ko kliknete Ustvari sprožilec, se boste znova naložili na pogled if, potem na ta, vendar je bil zamenjan z logotipom Pomočnika Google. Nadaljujte s klikom na +to
Enako kot prej, kjer vas pripelje v iskalno vrstico. Vnesite Webhooks in kliknite ikono webhook pod iskalno vrstico. Pod Izberi dejanje za spletne kljuke je samo ena možnost, zato kliknite Ustvari spletno zahtevo.
Tu se stvari nekoliko zapletejo. Ker Google ni drug računalnik v vaši hiši, boste potrebovali zunanji naslov IP. To bo zahtevalo nekaj posredovanja vrat, vendar se bomo tega dotaknili kasneje. Če želite pridobiti zunanji naslov IP, pojdite na
V polje URL vnesite https://xxx.xxx.xxx.xxx:3000/{{TextField}} (pri čemer je x vaš zunanji naslov IP). Če vas zanima, bo TextField imel barvo, ki ste jo izbrali, ko naredite ukaz. Razlog, da uporabljamo 3000, je, da so to vrata, na katerih deluje strežnik Raspberry Pi Express. (V kodi lahko spremenite vrata, vendar uporabljamo samo privzete nastavitve za Express)
Za metodo izberite POST.
Za vrsto vsebine izberite besedilo/navaden.
Za Body vnesite {{TextField}}
Tisti, ki veste, kako deluje ukaz POST, bi pomislili, da boste, če razčlenite lastnost telesa zahteve, dobili barvo. Iz nekega razloga v polje telesa zahteve nikoli ne vnesemo ničesar, zato dejansko razčlenim URL za barvo. Upam, da se bo to kmalu popravilo, saj bi to poenostavilo mojo kodo na poti index.js. Jaz pa se odmikam.
Na koncu kliknite Ustvari dejanje in nato Dokončaj na naslednji strani. (Izklopil sem obvestila, vendar je to prednost)
5. korak: Posredovanje vrat
Tu je stvari težko razložiti, ker so vsi usmerjevalniki različni …
Zdaj imamo Google, ki pošlje ukaz naši hiši prek vrat 3000, vendar ne ve, na katero napravo v lokalnem omrežju mora iti. Da bi to odpravili, moramo vrata 3000 posredovati na lokalni IP naslov vašega Raspberry Pi.
Pojdite v usmerjevalnik z uporabo 10.0.0.1 ali 192.168.1.1 (videl sem tudi, kjer je zadnja številka 254) in poiščite posredovanje vrat. Pri posredovanju vrat, podobno kot pri sliki, poimenujete novo napravo (IFTTT) in vrata (3000) posredujete na naslov IP Pi (v mojem primeru 10.0.0.11).
Shranite novo nastavitev, znova zaženite usmerjevalnik in preverite, ali strežnik Raspberry Pi še vedno deluje. Če ne deluje, ga znova zaženite.
Vrnite se na to priročno spletno stran https://canyouseeme.org/. Pod vašim naslovom IP ima preverjevalnik vrat. Ob predpostavki, da je posredovanje vrat pravilno, vnesite 3000 in pritisnite kontrolna vrata. Moral bi se vrniti z uspehom.
6. korak: Preverite svoje dosedanje delo
Zdaj … trenutek, ki ste ga čakali … Povejte Googlu ukaz, na primer modre LED (če ste sledili mojemu zgledu).
Ob predpostavki, da je vse potekalo pravilno, boste dobili izpis na sliki. Še nimamo vezja, zato boste videli le besedilo na zaslonu. Običajno traja dve ali dve zamudi, preden se obdela od Googla in se prikaže na Pi.
(Preskočite na naslednji korak, če je to podobno sliki)
Zdaj je treba pogledati, če ni delovalo …
Na sliki je vrstica, ki pravi
POST /barva /modra 200 250.458 ms - 2
200 je pomemben del. Če ne vidite 200, je bil slab POST, kar pomeni, da vaš strežnik ni vedel, kaj naj stori s podatki. Vrnite se na 2. korak in preverite datoteko index.js.
Tudi na sliki
stdout: modra
stderr:
To je izhod iz datoteke python, ki poganja LED. Če vidite napako, morda na drugem koraku nimate nameščenega gonilnika.
Nazadnje, če se nič ne prikaže … vaš IFTTT morda ni bil pravilno nastavljen ali se ni uspel povezati s strežnikom. Vrnite se na stran IFTTT in v zgornji vrstici za krmarjenje kliknite Dejavnost. Tam lahko vidite vsakič, ko se je aplikacija zagnala, in če je prišlo do napake, si lahko ogledate, kaj je bila. Izvedel sem Googlov ukaz pri izklopljenem strežniku Pi in na sliki je prišlo do napake.
7. korak: Izdelava vezja
Razlog, zakaj moramo to narediti, je v tem, da Raspberry Pi nima dovolj moči … Rešitev je torej … VEČ MOČI (Tim, orodjar Taylor, rohne v daljavi). AKA drugi napajalnik (12V 2A)
Materiali za del vezja
- Protoboard
- Žica
- RGB LED trak
- 12V napajalnik - Vse, kar je nad 2 ampera, mora biti v redu
- DC Barrel Jack - enake velikosti kot vaš napajalnik
- Močni tranzistorji NPN BJT (x3) - uporabljam TIP31C
- Moški in ženski zatiči
S pomočjo priročne slike, ki sem jo ukradel iz prepleta z GPIO Pi Zero, lahko vidite, da so GPIO17, GPIO18 in GPIO 27 tik drug ob drugem z GND. Uporabili bomo kvadrat s 4 zatiči (zatiči 11, 12, 13, 14).
Najprej bi priporočil spajkanje moških glav na LED trak, kot je prikazano na sliki (ni moje najboljše delo). To omogoča enostaven odklop, če boste kdaj morali. Ženske glave sem uporabil za povezavo LED traku z mojo protoboard in moške glave od protoboard do Raspberry Pi. (Za napajanje/vir signala vedno uporabite ženske priključke). Ni vam treba premikati vseh Pi -jevih zatičev drug poleg drugega, tako kot jaz … Želela sem samo, da je videti čisto, vendar je bilo veliko dela.
Pojasnilo vezja
Za tiste, ki ne poznate tranzistorjev, so tranzistorji v bistvu digitalno stikalo. Zatiči GPIO iz Pi sprožijo tri stikala (rdeče, zeleno in modro). Če pogledamo RDEČEGA v diagramu vezja, ko je GPIO_17 vklopljen, se stikalo "zapre" in poveže RDEČEGA z GND, zaradi česar se prižgejo rdeče luči. Ko se GPIO_17 izklopi, je stikalo odprto in lučke ugasnejo.
Baza - GPIO
Zbiratelj - barve (RDEČA, ZELENA, MODRA)
Oddajnik - ozemljitev (napajalnika in Pi)
Priključite ozemljitev Pi na ozemljitev napajalnika. Luči bodo še vedno delovale, vendar bodo videti zelo zatemnjene, dokler ne priključite tal.
Na svoji protoboardu imam 4. tranzistorsko napravo. To je L7805CV, ki se uporablja za pretvorbo 12V v 5V, tako da bi lahko napajal Pi na istem vezju. Deloval je, vendar se je segreval, zato sem odstranil njegove povezave.
8. korak: Preizkusite
Ko končate s tokokrogom, znova zaženite Pi, preden vzpostavite kakršno koli povezavo. To je zato, ker so zatiči verjetno še vedno aktivni med preskusom strežnika. Druga možnost je, da ubijete strežnik in storitev pigpiod.
Priključite LED in skakalce od protobora do Pi. Preden vklopite napajanje, dvakrat preverite vse povezave. Če ste napačno ožičeni, lahko ocvrtite svoj Pi (brez pritiska).
Kontrolni seznam
- Preverite žice
- Power Pi
- Napajalni tokokrog
- Zaženi strežnik (DEBUG = webapp:* npm start v imeniku ~/piWebpage/webApp)
- Povejte Googlu, naj opravi vaše ponudbe!
ČESTITAMO, da niste nič razstrelili in zdaj lahko upravljate svoje LED diode iz Googlove domače strani.
Če imate težave, pustite komentarje in potrudila se bom, da se vam oglasim!
Priporočena:
Domače letalo RC Cessna Skyhawk EASY BUILD: 7 korakov (s slikami)
Domače letalo RC Cessna Skyhawk EASY BUILD: Že kot otrok sem bil navdušen nad letali RC, vendar jih nikoli nisem mogel kupiti ali narediti, saj so bila zelo draga ali težka za izdelavo, vendar so ti dnevi za nami in Povedal bom, kako sem naredil svoje prvo letalo RC (jaz
Časovnik za domače naloge, ki ga je izdelal Arduino: 5 korakov
Časovnik za domače naloge, ki ga je izdelal Arduino: Ali vaš otrok ure in ure piše domače naloge? Ali vašega otroka zlahka motijo drugi, ko opravlja domače naloge? Danes sem poskušal narediti najboljšo rešitev tega konflikta: časovnik, ki ga je izdelal Arduino. Zakaj poskušam narediti ta časovnik namesto
Pošiljanje podatkov o brezžičnih vibracijah in temperaturi v Googlove liste z uporabo Node-RED: 37 korakov
Pošiljanje podatkov o brezžičnih vibracijah in temperaturi v Googlove liste z uporabo Node-RED: Predstavljamo NCD-jev industrijski brezžični senzor vibracij in temperature IoT Long Range IoT, ki se ponaša z uporabo brezžične mrežne strukture do 2 milj. Ta naprava vključuje natančen 16-bitni senzor vibracij in temperature, ki
Kako spremeniti Googlove nastavitve zasebnosti za mobilne naprave: 11 korakov
Kako spremeniti Googlove nastavitve zasebnosti v mobilnih napravah: Google se pogosto uporablja po vsem svetu, vendar se nekateri ne zavedajo, da ima Google veliko funkcij, ki omogočajo dostop do vaših osebnih podatkov ali podatkov. V tej vadnici vas bodo naučili, kako spremeniti nastavitve v osebnem računu, da omejite
Upravljajte ESP8266 z Googlove domače strani z uporabo GBridge.io: 4 koraki
Nadzor ESP8266 iz Googlove domače strani z uporabo GBridge.io: Obstajajo različni načini za nadzor ESP8266 iz Googlove domače strani, vendar večina rešitev, ki jih najdete v internetu, uporablja IFTT, ki v resnici ni uporabniku prijazen za nastavitev. gBridge.io omogoča olajšanje postopka in nemoteno delovanje. V tem priročniku