Satura rādītājs:

Google mājas kontrolētās gaismas diodes: 8 soļi
Google mājas kontrolētās gaismas diodes: 8 soļi

Video: Google mājas kontrolētās gaismas diodes: 8 soļi

Video: Google mājas kontrolētās gaismas diodes: 8 soļi
Video: M10 TWS Earphone 9D Stereo LED repair?#diy m10 tws 9d stereo led digital display earbuds#shorts🎵🎵👈 2024, Jūlijs
Anonim
Google mājas kontrolētās gaismas diodes
Google mājas kontrolētās gaismas diodes
Google mājas kontrolētās gaismas diodes
Google mājas kontrolētās gaismas diodes

Pēdējā laikā man ir bijis daudz brīva laika, tāpēc es strādāju pie daudziem projektiem.

Šis projekts ļaus jums kontrolēt RGB gaismas diodes, izmantojot Google sākumlapu, izmantojot Raspberry Pi. Tagad ir 3 projekta daļas, Raspberry Pi iestatīšana, Google Home iestatīšana ar pielāgotu komandu, izmantojot IFTTT, un pēc tam gaismas shēmas izveidošana. Es pats veicu ķēdi, bet varu derēt, ka no Adafruit jūs varētu iegūt kaut ko tādu, kas dara to, kas nepieciešams.

Materiāli Raspberry Pi daļai

  • Raspberry Pi - derēs jebkurš, bet es izmantoju nulli
  • Bezvadu dongle - ja Pi nav iebūvēts Wifi
  • Google sākumlapa - pēc izvēles, ja tālrunī ir Google palīgs

Materiāli ķēdes daļai- neļaujiet tam sevi atturēt … Tas ir diezgan vienkārši

  • Protoboard
  • Vads
  • LED sloksne
  • 12 V barošanas avots - visam, kas pārsniedz 2 ampērus, vajadzētu būt kārtībā
  • DC Barrel Jack - tāds pats izmērs kā jūsu barošanas avotam
  • NPN BJT jaudas tranzistori (x3) - es izmantoju TIP31C
  • Vīriešu un sieviešu tapas galvenes - pēc izvēles, bet ļoti ieteicams

1. darbība: Express lejupielāde Pi

Express lejupielāde Pi
Express lejupielāde Pi

Es neiedziļināšos pārāk detalizēti par Pi iestatīšanu, jo tur ir tik daudz pamācību to iestatīšanai.

Tas, kas jums jādara, es neaptveru…

  • Mirgo Raspberry Pi ar jaunāko Raspbian
  • Iestatiet tīkla karti, lai varētu piekļūt internetam no Pi
  • Iestatiet Raspberry Pi statisku IP

Tagad šeit sākas jautrība! Mums jāinstalē nodeJS, npm, express un express-generator.

sudo apt-get update

sudo apt-get install nodejs npm

Kad tie ir instalēti, palaidiet tālāk norādītās darbības

npm instalēt express express-generator

Express ļauj izveidot ļoti vienkāršu tīmekļa serveri jūsu Raspberry Pi lietošanai. Express-generator tikai automātiski ģenerē failus ekspres serverim.

Izveidojiet direktoriju un ierakstiet tajā direktoriju. Es nosaucu savu piWebpage. Tagad izpildiet sekojošo (redzams arī attēlā)

mkdir piWebpage

cd piWebpage express --view = ejs webApp

Tas ģenerēs mapi ar nosaukumu webApp ar visiem tajā esošajiem ekspresfailiem. Ja vēlāk plānojat darīt vairāk ar šo tīmekļa vietni un jums patīk PUG, nomainiet --view = ejs ar --view = mops. Mēs nepieskarsimies tīmekļa lapai, tāpēc šai lietojumprogrammai nav nozīmes tam, ko mēs izmantojam.

2. darbība: Pi servera iestatīšana

Pārvietojieties uz jauno WebApp direktoriju.

cd webApp

npm instalēt

npm instalēšana prasīs kādu laiku, jo tā instalē visas ekspres atkarības.

Ielīmējiet setColor.py mapē webApp. Šajā failā ir daži pamata krāsu iestatījumi. Jūtieties brīvi pievienot vairāk, kā vēlaties. Diapazons ir no 0 līdz 255, kur 255 ir pilnkrāsu. Kādā brīdī es, iespējams, pievienošu iespēju aptumšot gaismas, taču pagaidām tās ir pilnā spilgtumā.

Pārvietojieties maršrutos

cd maršruti

Tagad aizstājiet index.js ar pievienoto failu. Tas pievienos dažas rindiņas, lai saņemtu POST komandu, ko nosūtīs Google sākumlapa. No šī POST mēs izvēlēsimies krāsu un teiksim Pi, lai palaistu setColor python skriptu, lai pielāgotu gaismas.

Pēdējā lieta … Atgriezieties mapē webApp.

cd ~/piWebpage/webApp

Izmantojot savu iecienīto redaktoru, ielīmējiet un saglabājiet zemāk esošo kodu savā webApp.js. Visur ir labi, ja vien tas ir pirms "module.exports = app;"

// Iestatīt LED aparatūras draiveriskonst {exec} = pieprasīt ('child_process'); exec ('sudo pigpiod', (err, stdout, stderr) => {if (err) {console.log ('Kļūda, ielādējot LED draiveri'); return;} else console.log ('LED draiveris veiksmīgi ielādēts'); });

Kā teikts komentārā, pigpiod ir PWM signālu aparatūras draiveris, ko mēs izmantosim, lai pielāgotu LED krāsas. Es uzskatu, ka tas jau ir instalēts Raspbian, bet ja nē…

sudo apt-get instalēt pigpiod

Tagad īstais pārbaudījums! Tiek palaists serveris!

DEBUG = tīmekļa lietotne:* npm start

3. darbība: IFTTT iestatīšana (aktivizētājs)

IFTTT iestatīšana (aktivizētājs)
IFTTT iestatīšana (aktivizētājs)
IFTTT iestatīšana (aktivizētājs)
IFTTT iestatīšana (aktivizētājs)

IFTTT var darīt daudz, un es ļoti ieteiktu apskatīt dažas lietojumprogrammas.

Pirmkārt, jums ir jāizveido konts. Izmantojiet to pašu Google kontu, kas saistīts ar jūsu Google sākumlapu, pretējā gadījumā tie netiks sinhronizēti kopā. Kad esat pabeidzis un pieteicies, noklikšķiniet uz IFTTT lapas augšējā labā stūra, kur ir redzams jūsu vārds un iemiesojums. Pēc tam nolaižamajā izvēlnē noklikšķiniet uz Jauna sīklietotne.

Ja jūs interesē, IFTTT apzīmē IF This Then That, ja nepamanījāt uznirstošajā ekrānā. Tātad, ko mēs vēlamies, ir Ja Google palīgs, tad Webhook kā mūsu iespējas.

Turpiniet, noklikšķinot uz +tas, kas ielādēs meklēšanas joslu. Meklēšanā ierakstiet Google palīgs un noklikšķiniet uz ikonas zem meklēšanas.

Sadaļā Izvēlēties aktivizētāju atlasiet trešo opciju Saka frāzi ar teksta sastāvdaļu. Tagad tas ļauj jums izveidot 3 komandas, kas veiks to pašu darbību. Jūs pievienojat $ frāzē, kur jūs pieminētu krāsu. Piemēram, ja es, protams, teiktu “Hey Google, Set LEDs Blue” (cik dabiski var kliegt uz ierīci), tad ierakstīšu laukā Set LEDs $. Dariet to visiem 3 laukiem ar dažādām komandas versijām.

3 es izmantoju

Gaismas diodes $

Iestatiet gaismas diodes $

Iestatiet LED krāsu $

Pēdējais lauks ir tas, ko vēlaties, lai jūsu Google sākumlapa atbildētu pēc jūsu komandas izrunāšanas. Tas var būt viss, ko vēlaties, bet es izmantoju Iestatot krāsu uz $. $ Nozīmē, ka viņa atkārtos krāsu atpakaļ.

Noklikšķiniet uz Izveidot aktivizētāju

4. darbība. IFTTT iestatīšana (darbība)

IFTTT iestatīšana (darbība)
IFTTT iestatīšana (darbība)
IFTTT iestatīšana (darbība)
IFTTT iestatīšana (darbība)

Pēc noklikšķināšanas uz Izveidot aktivizētāju jūs atkal ielādēsieties skatā, ja tas ir tad, bet tas ir aizstāts ar Google asistenta logotipu. Turpiniet, noklikšķinot uz +tas

Tas pats, kas iepriekš, kur tas novirza jūs uz meklēšanas joslu. Ierakstiet Webhooks un noklikšķiniet uz tīmekļa aizķeres ikonas zem meklēšanas joslas. Sadaļā Izvēlieties darbību Webhooks ir tikai viena opcija, tāpēc noklikšķiniet uz Izveidot tīmekļa pieprasījumu.

Šeit lietas kļūst nedaudz sarežģītas. Tā kā Google nav cits jūsu mājas dators, jums būs nepieciešama jūsu ārējā IP adrese. Tas prasīs zināmu ostas pāradresāciju, bet mēs par to runāsim vēlāk. Lai iegūtu savu ārējo IP adresi, dodieties uz vietni

Laukā URL ierakstiet https://xxx.xxx.xxx.xxx:3000/{{TextField}} (ar x ir jūsu ārējā IP adrese). Ja jūs interesē, TextField būs krāsa, kuru izvēlējāties, veicot komandu. Iemesls, kāpēc mēs izmantojam 3000, ir tāpēc, ka tieši tas ir ports, kurā darbojas Raspberry Pi Express serveris. (Jūs varat mainīt kodu kodu, bet mēs tikai izmantojam Express noklusējuma iestatījumus)

Metodei izvēlieties POST.

Satura tipam atlasiet teksts/vienkāršs.

Pamatteksta gadījumā ierakstiet {{TextField}}

Tie no jums, kuri zina, kā darbojas POST komanda, jūs domājat, ka, parsējot pieprasījuma pamatīpašumu, jūs iegūtu krāsu. Kādu iemeslu dēļ pieprasījuma pamatlaukā nekas netiek ievietots, tāpēc es faktiski parsēju krāsas URL. Ceru, ka tas drīz tiks novērsts, jo tas vienkāršotu manu kodu indeksā.js. Bet es atkāpjos.

Visbeidzot, noklikšķiniet uz Izveidot darbību un pēc tam uz Pabeigt nākamajā lapā. (Es izslēdzu paziņojumus, bet tā ir izvēle)

5. solis: ostas pāradresācija

Ostu pāradresācija
Ostu pāradresācija
Ostu pāradresācija
Ostu pāradresācija

Šeit lietas ir grūti izskaidrot, jo visi maršrutētāji ir atšķirīgi…

Tagad mums ir Google, kas sūta komandu uz mūsu māju, izmantojot 3000 portu, taču tā nezina, uz kuru LAN ierīci tai jādodas. Lai to novērstu, mums ir jānosūta osta 3000 uz jūsu Raspberry Pi vietējo IP adresi.

Iet uz savu maršrutētāju, izmantojot vai nu 10.0.0.1 vai 192.168.1.1 (esmu to arī redzējis, kur pēdējais cipars ir 254), un atrodiet portu pāradresāciju. Portu pāradresācijā, līdzīgi kā attēlā, jūs nosauksit jaunu ierīci (IFTTT) un pārsūtīsit portu (3000) uz Pi IP adresi (manā gadījumā 10.0.0.11).

Saglabājiet jauno iestatījumu, pārstartējiet maršrutētāju un pārbaudiet, vai Raspberry Pi serveris joprojām darbojas. Ja tas nedarbojas, sāciet to vēlreiz.

Dodieties atpakaļ uz šo ērto vietni https://canyouseeme.org/. Zem jūsu IP adreses ir ostas pārbaudītājs. Pieņemot, ka jūsu portu pāradresācija ir pareiza, ierakstiet 3000 un nospiediet pārbaudes portu. Tam vajadzētu atgriezties ar panākumiem.

6. darbība: līdzšinējā darba pārbaude

Jūsu līdzšinējā darba pārbaude
Jūsu līdzšinējā darba pārbaude
Jūsu līdzšinējā darba pārbaude
Jūsu līdzšinējā darba pārbaude

Tagad… brīdis, kuru jūs gaidījāt… Pastāstiet Google komandai, piemēram, zilām gaismas diodēm (ja sekojāt manam piemēram).

Pieņemot, ka viss notika pareizi, jūs redzēsit attēlu, kas redzams attēlā. Mums vēl nav ķēdes, tāpēc jūs redzēsit tikai tekstu ekrānā. Parasti tiek aizkavēta sekunde vai divas, pirms tā tiek apstrādāta no Google un parādīta Pi.

(Pāriet uz nākamo soli, ja tas iznāca līdzīgi kā attēlā)

Tagad ir dažas lietas, kas jāaplūko, ja tas nedarbojas …

Attēlā ir līnija, kas saka

POST /krāsa /zils 200 250,458 ms - 2

200 ir svarīga daļa. Ja jūs neredzat 200, tad bija slikts POST, kas nozīmē, ka jūsu serveris nezināja, ko darīt ar datiem. Atgriezieties pie 2. darbības un pārbaudiet failu index.js.

Arī attēlā

stdout: zils

stderr:

Šī ir izeja no python faila, kurā darbojas gaismas diodes. Ja tur redzat kļūdu, iespējams, ka jums nav instalēts draiveris, veicot 2. darbību.

Visbeidzot, ja nekas vispār neparādījās … iespējams, ka jūsu IFTTT nebija pareizi iestatīts vai neizdevās izveidot savienojumu ar serveri. Atgriezieties IFTTT lapā un augšējā navigācijas joslā noklikšķiniet uz Aktivitāte. Tur jūs varat redzēt katru reizi, kad jūsu lietotne ir palaista, un, ja radās kļūda, varat redzēt, kas tā bija. Es izveidoju Google komandu, kad Pi serveris bija izslēgts, un attēlā parādījās kļūda.

7. solis: ķēdes izveide

Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana

Iemesls, kāpēc mums tas ir jādara, ir tas, ka Raspberry Pi nav pietiekami daudz jaudas … Tātad risinājums ir… VAIRĀK JAUDAS (Tims, darbinieks Teilors norūda tālumā). AKA cits barošanas avots (12V 2A)

Materiāli ķēdes daļai

  • Protoboard
  • Vads
  • RGB LED sloksne
  • 12 V barošanas avots - visam, kas pārsniedz 2 ampērus, vajadzētu būt kārtībā
  • DC Barrel Jack - tāds pats izmērs kā jūsu barošanas avotam
  • NPN BJT jaudas tranzistori (x3) - es izmantoju TIP31C
  • Vīriešu un sieviešu tapas galvenes

Izmantojot ērto attēlu, ko es nozagu no savienojuma tīkliem ar Pi Zero GPIO, jūs varat redzēt, ka GPIO17, GPIO18 un GPIO 27 atrodas blakus viens otram ar GND. Mēs izmantosim šo četru tapu kvadrātu (tapas 11, 12, 13, 14).

Vispirms es ieteiktu lodēt vīriešu galvenes uz jūsu LED sloksnes, kā redzams attēlā (nav mans labākais darbs). Tas ļauj viegli atvienot, ja jums tas ir nepieciešams. Es izmantoju sieviešu galvenes, lai savienotu LED sloksni ar savu protoboard, un vīriešu galvenes no protoboard uz Raspberry Pi. (Strāvas/signāla avotam vienmēr izmantojiet sieviešu savienojumus). Jums nav jāpārvieto visas Pi tapas blakus viena otrai, kā es to darīju … Es tikai gribēju, lai tas izskatās tīrs, bet tas bija daudz darba.

Ķēdes skaidrojums

Tiem, kas nav pazīstami ar tranzistoriem, tranzistori būtībā ir ciparu slēdzis. GPIO tapas no Pi iedarbina trīs slēdžus (sarkanu, zaļu un zilu). Skatoties tieši uz sarkano shēmu shēmā, kad GPIO_17 ir ieslēgts, slēdzis "aizveras", savienojot RED ar GND, izraisot sarkano gaismu ieslēgšanos. Kad GPIO_17 izslēdzas, slēdzis ir atvērts un līdz ar to gaismas ir izslēgtas.

Bāze - GPIO

Kolekcionārs - krāsas (SARKANS, ZAĻS, ZILS)

Emitētājs - zemējums (gan barošanas avota, gan Pi)

Pārliecinieties, vai savienojat Pi zemi ar barošanas avota zemi. Gaismas joprojām darbosies, taču tās būs ļoti blāvas, līdz zeme tiks pievienota.

Manā protoboardā ir 4. tranzistora izskata ierīce. Tas ir L7805CV, ko izmanto, lai pārveidotu 12V uz 5V, lai es varētu darbināt Pi tajā pašā ķēdē. Tas strādāja, bet turpināja sakarst, tāpēc es noņemu tā savienojumus.

8. solis: pārbaudiet to

Kad esat pabeidzis ķēdi, pirms savienojumu veikšanas restartējiet Pi. Tas ir tāpēc, ka tapas, iespējams, joprojām ir aktīvas no servera pārbaudes. Alternatīvi, jūs varat nogalināt serveri un pigpiod pakalpojumu.

Pievienojiet gaismas diodes un džemperus no protoborda uz Pi. Pirms strāvas padeves vēlreiz pārbaudiet visus savienojumus. Ja jūs to nepareizi pievienojāt, jūs varētu apcept savu Pi (bez spiediena).

Kontrolsaraksts

  • Pārbaudiet vadus
  • Jauda Pi
  • Barošanas ķēde
  • Sākt serveri (DEBUG = webapp:* npm start, atrodoties direktorijā ~/piWebpage/webApp)
  • Lūdziet Google veikt cenu noteikšanu!

APSVEICAM, jūs neko nespridzinājāt, un tagad varat kontrolēt savas gaismas diodes no Google sākumlapas.

Ja rodas problēmas, atstājiet komentārus, un es darīšu visu iespējamo, lai ar jums sazinātos!

Ieteicams: