Kazalo:

Googlove domače LED diode: 8 korakov
Googlove domače LED diode: 8 korakov

Video: Googlove domače LED diode: 8 korakov

Video: Googlove domače LED diode: 8 korakov
Video: ЧТО Я СДЕЛАЛ ИЗ НЕРАБОЧЕЙ СВЕТОДИОДНОЙ ЛАМПОЧКИ 2024, November
Anonim
Googlove domače LED diode
Googlove domače LED diode
Googlove domače LED diode
Googlove domače LED diode

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

Prenos Express -a za Pi
Prenos Express -a 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)

Nastavitev IFTTT (sprožilec)
Nastavitev IFTTT (sprožilec)
Nastavitev IFTTT (sprožilec)
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)

Nastavitev IFTTT (dejanje)
Nastavitev IFTTT (dejanje)
Nastavitev IFTTT (dejanje)
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

Posredovanje vrat
Posredovanje vrat
Posredovanje vrat
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

Preverjanje vašega dosedanjega dela
Preverjanje vašega dosedanjega dela
Preverjanje vašega dosedanjega dela
Preverjanje vašega dosedanjega dela

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

Gradnja vezja
Gradnja vezja
Gradnja vezja
Gradnja vezja
Gradnja vezja
Gradnja 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: