Sisukord:

Google'i kodu juhitavad LED -id: 8 sammu
Google'i kodu juhitavad LED -id: 8 sammu

Video: Google'i kodu juhitavad LED -id: 8 sammu

Video: Google'i kodu juhitavad LED -id: 8 sammu
Video: Google Keynote (Google I/O ‘23) 2024, November
Anonim
Google'i kodu juhitavad LED -id
Google'i kodu juhitavad LED -id
Google'i kodu juhitavad LED -id
Google'i kodu juhitavad LED -id

Viimasel ajal on mul olnud palju vaba aega, nii et olen tegelenud hunniku projektidega.

See projekt võimaldab teil Raspberry Pi abil Google Home'i kaudu juhtida RGB LED -e. Nüüd on projektis kolm osa, Raspberry Pi seadistamine, Google Home'i seadistamine kohandatud käsuga IFTTT abil ja seejärel tulede ahela loomine. Ma tegin ringraja ise, kuid võin kihla vedada, et Adafruitist saate midagi, mis teeb seda, mida vaja.

Materjalid Raspberry Pi osa jaoks

  • Raspberry Pi - mis tahes töötab, kuid ma kasutan nulli
  • Traadita dongle - kui Pi -l pole sisseehitatud Wifi -d
  • Google Home - valikuline, kui teie telefonis on Google'i assistent

Materjalid vooluringi osade jaoks- Ärge laske sellel end heidutada … See on üsna lihtne

  • Protoboard
  • Traat
  • LED riba
  • 12 V toiteallikas - kõik, mis ületab 2 amprit, peaks olema korras
  • DC Barrel Jack - sama suur kui teie toiteallikas
  • NPN BJT jõutransistorid (x3) - kasutan TIP31C
  • Meeste ja naiste tihvtide päised - valikuline, kuid väga soovitatav

Samm: Expressi allalaadimine Pi jaoks

Expressi allalaadimine Pi jaoks
Expressi allalaadimine Pi jaoks

Ma ei hakka Pi seadistamisega liiga üksikasjalikult tegelema, sest nende seadistamiseks on nii palju õpetusi.

Mida peate tegema, mida ma ei kata…

  • Vilkuv Raspberry Pi uusima Raspbianiga
  • Seadistage võrgukaart nii, et pääsete Internetti juurde Pi kaudu
  • Määrake Raspberry Pi -le staatiline IP

Siit saab nüüd lõbu alguse! Peame installima nodeJS, npm, express ja express-generator.

sudo apt-get update

sudo apt-get install nodejs npm

Kui need on installitud, käivitage järgmine

npm installida ekspress-ekspressgeneraator

Express võimaldab teil teha oma Raspberry Pi kasutamiseks väga lihtsa veebiserveri. Ekspressgeneraator genereerib failid kiirserverile lihtsalt automaatselt.

Tehke kataloog ja cd kataloogi. Panin omale nimeks piWebpage. Nüüd käivitage järgmine (ka pildil näha)

mkdir piWebpage

cd piWebpage express --view = ejs webApp

See loob kausta nimega webApp koos kõigi selles sisalduvate kiirfailidega. Kui kavatsete selle veebisaidiga hiljem rohkem tegeleda ja teile PUG meeldib, asendage --view = ejs sõnaga --view = mops. Me ei puuduta veebilehte, seega pole selle rakenduse puhul vahet, mida me kasutame.

Samm: Pi -serveri seadistamine

Liikuge uude webAppi kataloogi.

cd webApp

npm install

npm installimine võtab natuke aega, kuna see installib kõik ekspressi sõltuvused.

Kleepige setColor.py kausta webApp. Sellel failil on põhivärvide jaoks mõned eelseaded. Lisage julgelt rohkem, kui soovite. Vahemik on 0 kuni 255, kus 255 on täisvärviline. Mingil hetkel lisan tõenäoliselt võimaluse tuled summutada, kuid praegu on need täieliku heledusega.

Liikuge marsruutidele

cd marsruudid

Nüüd asendage index.js manustatud failiga. See lisab mõned read POST -käsu saamiseks, mille Google Home saadab. Sellest POST -ist saame värvi valitud ja käsime Pi -l käivitada tulede reguleerimiseks setColor pythoni skripti.

Viimane asi … Minge tagasi kausta WebApp.

cd ~/piWebpage/webApp

Kleepige ja salvestage allolev kood oma lemmikredaktori abil oma veebisaiti webApp.js. Kõikjal on korras, kui see on enne "module.exports = app;"

// Seadista LED -i riistvara draiverikonst {exec} = vaja ('laps_protsess'); exec ('sudo pigpiod', (err, stdout, stderr) => {if (err) {console.log ('Viga LED -draiveri laadimisel'); return;} else console.log ('LED -draiveri laadimine õnnestus'); });

Nagu kommentaar ütleb, on pigpiod PWM -signaalide riistvaradraiver, mida kasutame LED -värvide reguleerimiseks. Usun, et see on juba Raspbiani installitud, aga kui mitte…

sudo apt-get install pigpiod

Nüüd tõelise testi jaoks! Serveri käivitamine!

DEBUG = veebirakendus:* npm algus

3. samm: IFTTT seadistamine (päästik)

IFTTT seadistus (päästik)
IFTTT seadistus (päästik)
IFTTT seadistus (päästik)
IFTTT seadistus (päästik)

IFTTT saab palju ära teha ja ma soovitaksin tungivalt mõne rakenduse ümber vaadata.

Esiteks peate looma konto. Kasutage sama Google'i kontot, mis on seotud teie Google Home'iga, vastasel juhul ei sünkroonita neid omavahel. Kui olete lõpetanud ja sisse loginud, klõpsake IFTTT lehe paremas ülanurgas, kus kuvatakse teie nimi ja avatar. Seejärel klõpsake rippmenüüst Uus aplett.

Kui olete uudishimulik, tähistab IFTTT sõna IF This Then That, kui te ei märganud kuvatava ekraani juures. Nii et me tahame, et kui Google'i assistent, siis meie valikuteks Webhook.

Jätkake, klõpsates +sellel, mis laadib otsinguriba. Sisestage otsingusse Google'i assistent ja klõpsake otsingu all olevat ikooni.

Valige jaotises Vali käivitaja kolmas suvand nimega Ütle fraas teksti koostisosaga. Nüüd võimaldab see teil saada 3 käsku, mis teevad sama toimingu. Lisate $ fraasi, kus mainiksite värvi. Näiteks kui ma ütleksin loomulikult, et Hey Google, Set LEDs Blue (nii loomulik kui ka seadme peale karjuda saab), siis kirjutaksin väljale Set LEDs $. Tehke seda kõigi kolme välja jaoks, millel on käsu erinevad versioonid.

3, mida ma kasutasin, olid

LEDid $

Määra LED -id $

Määra LED värv $

Viimane väli on see, mida soovite, et teie Google'i kodu vastaks pärast käsu ütlemist. See võib olla kõik, mida soovite, kuid ma kasutasin suvandi Värvi seadmine väärtuseks $. $ Tähendab, et ta kordab värvi tagasi.

Klõpsake nuppu Loo käivitaja

4. samm: IFTTT seadistamine (toiming)

IFTTT seadistus (tegevus)
IFTTT seadistus (tegevus)
IFTTT seadistus (tegevus)
IFTTT seadistus (tegevus)

Pärast käsu Loo käivitajat laadimist laadite tagasi vaatesse, kui see siis see, kuid see on asendatud Google'i assistendi logoga. Jätkake, klõpsates nuppu +

Sama asi, mis enne, kui see viib teid otsinguribale. Sisestage Webhooks ja klõpsake otsinguriba all olevat webhooki ikooni. Jaotises Veebihaakide jaoks toimingu valimine on ainult üks võimalus, seega klõpsake nuppu Tee veebipäring.

Siin lähevad asjad pisut keeruliseks. Kuna Google ei ole teie maja teine arvuti, vajate oma välist IP -aadressi. See nõuab teatud sadama edastamist, kuid me käsitleme seda hiljem. Välise IP -aadressi saamiseks minge aadressile

Tippige URL -i väljale https://xxx.xxx.xxx.xxx:3000/{{TextField}} (x on teie väline IP -aadress). Kui olete uudishimulik, saab TextField käsu tegemisel valitud värvi. Põhjus, miks me 3000 kasutame, on see, et just see port töötab Raspberry Pi Expressi serveril. (Saate koodi pordi muuta, kuid me kasutame lihtsalt Expressi vaikeseadeid)

Valige meetodi jaoks POST.

Sisu tüübi jaoks valige tekst/tavaline.

Keha jaoks sisestage {{TextField}}

Need, kes teavad, kuidas POST -käsk töötab, arvate, et kui analüüsite päringu põhiomadusi, saate värvi. Millegipärast ei lisata päringu kehaväljale kunagi midagi, seega analüüsin tegelikult värvi URL -i. Loodan, et see parandatakse peagi, kuna see lihtsustaks minu koodi marsruudil index.js. Aga ma kaldun kõrvale.

Lõpuks klõpsake käsul Loo toiming ja seejärel järgmisel lehel Lõpeta. (Lülitasin märguanded välja, kuid see on eelistus)

5. samm: sadama edastamine

Sadama edastamine
Sadama edastamine
Sadama edastamine
Sadama edastamine

Siin on asju raske seletada, kuna kõik ruuterid on erinevad …

Nüüd saadab Google meile majja käsu, kasutades porti 3000, kuid ta ei tea, millisele LAN -i seadmele see peab minema. Selle parandamiseks peame porti 3000 edastama teie Raspberry Pi kohalikule IP -aadressile.

Minge ruuterisse, kasutades kas 10.0.0.1 või 192.168.1.1 (olen seda ka näinud, kus viimane number on 254) ja leidke pordi suunamine. Pordi edastamisel nimetate sarnaselt pildile uue seadme (IFTTT) ja edastate pordi (3000) Pi IP -aadressile (minu puhul 10.0.0.11).

Salvestage uus seade, taaskäivitage ruuter ja kontrollige, kas teie Raspberry Pi server töötab endiselt. Kui see ei tööta, käivitage see uuesti.

Minge tagasi sellele mugavale veebisaidile https://canyouseeme.org/. Teie IP -aadressi all on pordi kontrollija. Eeldades, et teie pordi suunamine on õige, tippige 3000 ja klõpsake kontrollpordi. See peaks tagasi tulema eduga.

6. samm: senise töö kontrollimine

Teie senise töö kontrollimine
Teie senise töö kontrollimine
Teie senise töö kontrollimine
Teie senise töö kontrollimine

Nüüd… hetk, mida olete oodanud… Öelge Google'ile käsk, näiteks sinised LED -id (kui järgisite minu eeskuju).

Eeldades, et kõik läks õigesti, näete pildil nähtavat väljundit. Meil pole veel vooluringi, nii et näete ainult teksti ekraanil. Tavaliselt on sekund või kaks viivitust, enne kui see Google'ist töödeldakse ja Pi -le ilmub.

(Minge järgmise sammu juurde, kui see tuli pildile sarnaselt)

Nüüd on mõned asjad, mida vaadata, kui see ei tööta …

Pildil on rida, mis ütleb

POST /värv /sinine 200 250,458 ms - 2

200 on oluline osa. Kui te ei näe 200, siis oli halb POST, mis tähendab, et teie server ei teadnud, mida andmetega teha. Minge tagasi 2. sammu juurde ja kontrollige faili index.js.

Ka pildil

stdout: sinine

stderr:

See on väljund python -failist, mis käitab LED -e. Kui näete seal viga, võib juhtuda, et teil pole draiverit 2. etapis installitud.

Lõpuks, kui midagi üldse ei ilmunud … ei pruugi teie IFTTT olla õigesti seadistatud või ebaõnnestus serveriga ühenduse loomine. Minge tagasi IFTTT lehele ja klõpsake ülemisel navigeerimisribal nuppu Tegevus. Seal näete iga kord, kui teie rakendus on käivitatud, ja kui ilmnes tõrge, näete, mis see oli. Tegin Google'i käsu väljalülitatud Pi -serveriga ja sain vea pildil.

Samm: vooluringi ehitamine

Ringraja ehitamine
Ringraja ehitamine
Ringraja ehitamine
Ringraja ehitamine
Ringraja ehitamine
Ringraja ehitamine

Põhjus, miks me seda tegema peame, on see, et Raspberry Pi -l pole piisavalt jõudu … Seega on lahendus… ROHKEM VÕIMU (Tim, tööriistamees Taylor nuriseb eemal). AKA teine toiteallikas (12V 2A)

Vooluahela materjalid

  • Protoboard
  • Traat
  • RGB LED -riba
  • 12 V toiteallikas - kõik, mis ületab 2 amprit, peaks olema korras
  • DC Barrel Jack - sama suur kui teie toiteallikas
  • NPN BJT jõutransistorid (x3) - kasutan TIP31C
  • Meeste ja naiste tihvtide päised

Kasutades käepärast pilti, mille Pi Zero GPIO -st võrguvõrkudest varastasin, näete, et GPIO17, GPIO18 ja GPIO 27 on GND -ga kõik üksteise kõrval. Kasutame seda neljast tihvtist ruutu (tihvtid 11, 12, 13, 14).

Esiteks soovitaksin meessoost päiste jootmist oma LED -ribale, nagu pildil näha (pole minu parim töö). See võimaldab vajadusel hõlpsasti lahti ühendada. Kasutasin LED -riba ühendamiseks oma protoboardiga naissoost päiseid ja protoboardist Raspberry Pi -ga meespealkirju. (Toite/signaali allika jaoks kasutage alati naisühendusi). Teil pole vaja kõiki Pi nööpnõelu üksteise kõrvale liigutada nagu mina … Tahtsin, et see näeks puhas välja, kuid see oli palju tööd.

Vooluahela selgitus

Neile, kes ei tunne transistore, on transistorid põhimõtteliselt digitaalsed lülitid. Pi GPIO tihvtid käivitavad kolm lülitit (punane, roheline ja sinine). Vaadates lülitusskeemi PUNAST, kui GPIO_17 on sisse lülitatud, "sulgub" lüliti, mis ühendab RED -i GND -ga, põhjustades punaste tulede sisselülitamist. Kui GPIO_17 lülitub välja, on lüliti avatud ja tuled kustuvad.

Alus - GPIO -d

Koguja - värvid (PUNANE, ROHELINE, SININE)

Emitter - maandus (nii toiteallika kui ka Pi)

Ühendage kindlasti Pi maandus toiteallika maandusega. Tuled töötavad endiselt, kuid tunduvad väga hämarad, kuni maapind on ühendatud.

Minu protoboardil on neljanda transistoriga seade. See on L7805CV, mida kasutatakse 12 V muundamiseks 5 V -ks, et saaksin sama vooluahela Pi -d toita. See töötas, kuid püsis üle kuumutamise, nii et eemaldasin selle ühendused.

8. samm: proovige seda

Kui vooluring on lõpule viidud, taaskäivitage oma Pi enne ühenduste loomist. Seda seetõttu, et nööpnõelad on serveritestist ilmselt endiselt aktiivsed. Teise võimalusena võite serveri ja pigpiodi teenuse tappa.

Ühendage valgusdioodid ja džemprid protoboardist Pi -ga. Kontrollige enne ühendamist üle kõik ühendused. Kui ühendasite selle valesti, võite oma Pi praadida (ilma rõhuta).

Kontrollnimekiri

  • Kontrollige juhtmeid
  • Võimsus Pi
  • Toiteahel
  • Käivita server (DEBUG = webapp:* npm start ~/piWebpage/webApp kataloogis)
  • Paluge Google'il oma pakkumine teha!

PALJU ÕNNE, et te midagi õhku ei lasknud ja nüüd saate oma LED -e juhtida Google Home'ist.

Kui teil on probleeme, jätke kommentaarid ja ma annan endast parima, et teiega ühendust võtta!

Soovitan: