Satura rādītājs:
- 1. darbība: Express lejupielāde Pi
- 2. darbība: Pi servera iestatīšana
- 3. darbība: IFTTT iestatīšana (aktivizētājs)
- 4. darbība. IFTTT iestatīšana (darbība)
- 5. solis: ostas pāradresācija
- 6. darbība: līdzšinējā darba pārbaude
- 7. solis: ķēdes izveide
- 8. solis: pārbaudiet to
Video: Google mājas kontrolētās gaismas diodes: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
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
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 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)
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
Š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
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
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:
Programmējams policijas gaismas diode, izmantojot STM8 [72 gaismas diodes]: 9 soļi
Programmējams policijas LED mirgojošais signāls, izmantojot STM8 [72 gaismas diodes]: STM8S001J3 ir 8 bitu mikrokontrolleris, kas piedāvā 8 KB Flash programmas atmiņu, kā arī integrētu patiesu datu EEPROM. STM8S mikrokontrolleru saimē to sauc par zema blīvuma ierīci. Šis MCU tika piedāvāts nelielā SO8N iepakojumā
Gaismas diodes kā gaismas sensori: 5 soļi
Gaismas diodes kā gaismas sensori: gaismas diodes ir lieliskas, lai radītu gaismu, taču tās var arī sajust gaismu! Nesen es nejauši uzgāju šo vietni, kurā minēts: "1977. gadā Forress M. Mims atgādina mums vienā no savām" Inženiera piezīmju grāmatiņām " ka gaismas diodes var izmantot arī kā fotodiodes … & q
Temperatūras kontrolētas gaismas diodes: 6 soļi
Temperatūras kontrolētas gaismas diodes: gaismas diodes veic daudzus uzdevumus, piemēram, norāda, izdara ciparus displeja dēļos, pārsūta tādu informāciju kā mēs, izmantojot tālvadības pulti. Gaismas diodes ir elektronikas varoņi un faktiski " nedziedātas " varoņi. Ne tikai tas, bet tie tiek plaši izmantoti
Gaismas aktivizētas mirgojošas gaismas diodes: 4 soļi
Gaismas aktivizētas mirgojošas gaismas diodes: šajā pamācībā es jums parādīšu, kā salikt kopā mirgojošu LED ķēdi, kas ieslēdzas, kad pamājat ar roku, mirgo sekundi vai divas un pēc tam izdziest. Es saņēmu mirgojošās ķēdes shēmu no Steven123654 instrukcijas
Lāzera kontrolētas gaismas diodes jūsu atslēgai: 5 soļi
Lāzera kontrolētas gaismas diodes jūsu atslēgas joslai: automātiski iedegas gaismas diodes ar lāzeriem. jā, atvainojos par sliktajiem angļu valodas rādītājiem, es esmu holandietis