Orodha ya maudhui:

LEDs za Nyumba Zinazodhibitiwa na Google: Hatua 8
LEDs za Nyumba Zinazodhibitiwa na Google: Hatua 8

Video: LEDs za Nyumba Zinazodhibitiwa na Google: Hatua 8

Video: LEDs za Nyumba Zinazodhibitiwa na Google: Hatua 8
Video: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, Novemba
Anonim
LEDs zinazodhibitiwa na Google Home
LEDs zinazodhibitiwa na Google Home
LEDs zinazodhibitiwa na Google Home
LEDs zinazodhibitiwa na Google Home

Hivi karibuni, nimekuwa na wakati mwingi wa bure mikononi mwangu, kwa hivyo nimekuwa nikifanya kazi kwenye kundi la miradi.

Mradi huu utakuruhusu kudhibiti RGB za LED kupitia Google Home ukitumia Raspberry Pi. Sasa kuna sehemu 3 za mradi, kuanzisha Raspberry Pi, kuanzisha Nyumba ya Google na amri ya kawaida kutumia IFTTT, na kisha kuunda mzunguko wa taa. Nilitengeneza mzunguko mwenyewe, lakini nilibadilisha unaweza kupata kitu kutoka kwa Adafruit ambacho hufanya kile kinachohitajika.

Vifaa vya Sehemu ya Raspberry Pi

  • Raspberry Pi - yoyote itafanya kazi, lakini ninatumia Zero
  • Dongle isiyo na waya - ikiwa Pi haijajengwa katika Wifi
  • Nyumba ya Google - Chaguo ikiwa una Msaidizi wa Google kwenye simu yako

Vifaa vya Sehemu ya Mzunguko- Usiruhusu hii ikuzuie… Ni rahisi sana

  • Kitabu cha ulinzi
  • Waya
  • Ukanda wa LED
  • Ugavi wa Umeme wa 12V - Chochote kilicho juu ya Amps 2 kinapaswa kuwa sawa
  • DC Pipa Jack - Saizi sawa na ile ya usambazaji wa umeme wako
  • NPN BJT Power Transistors (x3) - ninatumia TIP31C
  • Vichwa vya Siri vya Wanaume na Wanawake - Chaguo, lakini inashauriwa sana

Hatua ya 1: Inapakua Express kwa Pi

Inapakua Express kwa Pi
Inapakua Express kwa Pi

Sitakwenda kwa undani sana juu ya kuanzisha Pi kwa sababu kuna mafunzo mengi huko nje kwa kuiweka.

Nini utahitaji kufanya ambayo sifuniki…

  • Kuangaza Raspberry Pi na Raspbian mpya zaidi
  • Sanidi kadi ya mtandao ili uweze kufikia mtandao kutoka kwa Pi
  • Weka IP tuli kwenye Raspberry Pi

Sasa hapa ndipo furaha inapoanza! Tunahitaji kufunga nodeJS, npm, kuelezea, na kuelezea-jenereta.

Sudo apt-pata sasisho

Sudo apt-get kufunga nodejs npm

Mara tu hizo zinapowekwa, endesha zifuatazo

npm kufunga express-jenereta

Express hukuruhusu kutengeneza webserver ya msingi sana kwa Raspberry Pi yako kutumia. Express-jenereta hutengeneza faili moja kwa moja kwa seva ya kueleza.

Tengeneza saraka na cd kwenye saraka. Niliita jina langu la piWebpage. Sasa endesha yafuatayo (onekana kwenye picha pia)

mkdir piWebpage

cd piWebpage kuelezea - maoni = ejs webApp

Hii itazalisha folda inayoitwa webApp na faili zote za wazi ndani yake. Ikiwa unapanga kufanya zaidi na ukurasa huu wa wavuti baadaye na unapenda PUG, badilisha --view = ejs na --view = pug. Hatutagusa ukurasa wa wavuti, kwa hivyo kwa programu tumizi hii, haijalishi tunatumia nini.

Hatua ya 2: Usanidi wa Pi Server

Nenda kwenye saraka mpya ya wavuti.

cd webApp

npm kufunga

usanikishaji wa npm utachukua muda kwa sababu inaweka utegemezi wote kwa kuelezea.

Bandika setColor.py kwenye folda ya wavuti ya WebApp. Faili hii ina mipangilio kadhaa ndani yake kwa rangi za kimsingi. Jisikie huru kuongeza zaidi kama unavyopenda. Masafa ni 0 hadi 255 ambapo 255 ina rangi kamili. Wakati fulani, nitaongeza uwezo wa kupunguza taa, lakini kwa sasa, ni mwangaza kamili.

Hoja katika njia

njia za cd

Sasa badilisha index.js na faili iliyoambatishwa. Hii itaongeza mistari kadhaa kupokea amri ya POST ambayo ndivyo Nyumba ya Google itatuma. Kutoka kwa POST hiyo, tutapata rangi iliyochaguliwa na kumwambia Pi aendeshe maandishi ya setColor chatu ili kurekebisha taa.

Jambo la mwisho… Rudi kwenye folda ya wavuti.

cd ~ / piWebpage / webApp

Kutumia mhariri uupendao, weka na uhifadhi nambari iliyo hapa chini kwenye wavuti yako.js. Mahali popote ni sawa kwa muda mrefu kama ilivyokuwa kabla ya "module.exports = app;"

// Kuweka dereva wa vifaa vya kuendesha vifaa vya LED {exec} = zinahitaji ('mtoto_process'); exec ('sudo pigpiod', (err, stdout, stderr) => {if (err) {console.log ('Error loading LED Dereva'); });

Kama maoni inavyosema, pigpiod ni dereva wa vifaa vya ishara za PWM ambazo tutatumia kurekebisha rangi za LED. Ninaamini inakuja tayari imewekwa katika Raspbian, lakini ikiwa sio…

Sudo apt-get kufunga pigpiod

Sasa kwa mtihani halisi! Kuanzisha seva!

DEBUG = webapp: * npm kuanza

Hatua ya 3: Usanidi wa IFTTT (Trigger)

Usanidi wa IFTTT (Kichocheo)
Usanidi wa IFTTT (Kichocheo)
Usanidi wa IFTTT (Kichocheo)
Usanidi wa IFTTT (Kichocheo)

IFTTT inaweza kufanya mengi, na ningependekeza sana kutazama karibu na programu zingine.

Kwanza, utahitaji kufanya akaunti. Tumia akaunti sawa ya Google inayohusishwa na Nyumba yako ya Google, vinginevyo hawatasawazishwa pamoja. Mara baada ya kukamilika na kuingia, bonyeza kulia juu ya ukurasa wa IFTTT ambapo inaonyesha jina lako na avatar. Kisha bonyeza Applet mpya kutoka kwa kushuka.

Ikiwa una hamu ya kujua, IFTTT inasimama kama IF hii basi hiyo ikiwa haukuona na skrini inayoibuka. Kwa hivyo tunachotaka ni Ikiwa Msaidizi wa Google, basi Webhook kama chaguzi zetu.

Endelea kwa kubofya + hii ambayo itapakia upau wa utaftaji. Katika utaftaji, andika Msaidizi wa Google na ubonyeze ikoni iliyo chini ya utaftaji.

Katika Chagua Kuchochea, chagua chaguo la 3 linaloitwa Sema kifungu na kiambato cha maandishi. Sasa hii hukuruhusu kuwa na amri 3 ambazo zitafanya kitendo sawa. Unaongeza $ katika kifungu ambapo ungetaja rangi. Kwa mfano, ikiwa kwa kawaida ningesema Hey Google, Weka Bluu za Bluu (kama asili kama kupiga kelele kwenye kifaa inaweza kuwa), basi ningeandika kwenye uwanja Weka LEDs $. Fanya hivyo kwa sehemu zote 3 na matoleo tofauti ya amri.

3 nilizotumia zilikuwa

LEDs $

Weka LEDs $

Weka rangi ya LED $

Sehemu ya mwisho ndio ungependa Nyumba yako ya Google ijibu baada ya kusema amri yako. Inaweza kuwa chochote unachotaka, lakini nilitumia Kuweka rangi kwa $. $ Inamaanisha atarudia rangi tena.

Bonyeza Unda Kuchochea

Hatua ya 4: Usanidi wa (IFTTT)

Usanidi wa (IFTTT)
Usanidi wa (IFTTT)
Usanidi wa (IFTTT)
Usanidi wa (IFTTT)

Baada ya kubofya Tengeneza Kichocheo, utapakia tena ikiwa hii ndio maoni hayo, lakini hii imebadilishwa na nembo ya Msaidizi wa Google. Endelea kwa kubofya + hiyo

Vivyo hivyo na hapo awali inakuleta kwenye upau wa utaftaji. Andika kwenye Webhooks na ubonyeze ikoni ya webhook chini ya upau wa utaftaji. Chini ya Chagua Kitendo cha Webokoks, kuna chaguo moja tu, kwa hivyo bonyeza Fanya ombi la wavuti.

Hapa ndipo mambo huwa magumu kidogo. Kwa sababu Google sio kompyuta nyingine ndani ya nyumba yako, utahitaji anwani yako ya nje ya IP. Hii itahitaji usambazaji wa bandari, lakini tutagusa hiyo baadaye. Ili kupata anwani yako ya nje ya IP, nenda kwa

Kwenye uwanja wa URL, andika https://xxx.xxx.xxx.xxx: 3000 / {{TextField}} (na x ni anwani yako ya nje ya IP). Ikiwa unataka kujua, TextField itakuwa na rangi uliyochagua wakati wa kufanya amri. Sababu tunayotumia 3000 ni kwa sababu hiyo ndiyo bandari ambayo seva ya Raspberry Pi Express inaendesha. (Unaweza kubadilisha bandari kwenye nambari, lakini tunatumia mipangilio chaguomsingi ya Express)

Kwa Njia, chagua POST.

Kwa Aina ya Yaliyomo, chagua maandishi / wazi.

Kwa Mwili, andika katika {{TextField}}

Wale ambao mnajua jinsi agizo la POST linavyofanya kazi, utafikiria kuwa ukichanganua mali ya ombi kwamba utapata rangi. Kwa sababu fulani, hakuna kitu kinachowekwa kwenye uwanja wa ombi, kwa hivyo ninachambua URL kwa rangi. Natumahi kuwa inarekebishwa hivi karibuni, kwani hiyo ingerahisisha nambari yangu katika njia ya index.js. Lakini mimi hupiga kelele.

Mwishowe, bonyeza Unda Kitendo kisha Maliza kwenye ukurasa unaofuata. (Nilizima arifa, lakini hiyo ni upendeleo)

Hatua ya 5: Usambazaji wa Bandari

Usambazaji wa Bandari
Usambazaji wa Bandari
Usambazaji wa Bandari
Usambazaji wa Bandari

Hapa ndipo mambo yanapokuwa magumu kuelezea kwa sababu ruta zote ni tofauti…

Sasa tuna Google inayotuma amri kwa nyumba yetu kwa kutumia bandari 3000, lakini haijui ni kifaa gani kwenye LAN kinachohitaji kwenda. Ili kurekebisha hili, tunahitaji kupeleka bandari 3000 kwa anwani ya IP ya Raspberry Pi yako.

Nenda kwenye router yako ukitumia 10.0.0.1 au 192.168.1.1 (Nimeiona pia ambapo nambari ya mwisho ni 254) na upate usambazaji wa bandari. Katika usambazaji wa bandari, sawa na picha, utaita kifaa kipya (IFTTT) na usonge bandari (3000) kwa anwani ya IP ya Pi (kwa upande wangu 10.0.0.11).

Hifadhi mipangilio yako mpya, anzisha tena router yako, na angalia ili kuhakikisha kuwa seva yako ya Raspberry Pi bado inaendesha. Ikiwa haifanyi kazi, anzisha tena.

Rudi kwenye wavuti hiyo inayofaa https://canyouseeme.org/. Chini ya anwani yako ya IP, ina kikagua bandari. Kwa kudhani usambazaji wako wa bandari ni sahihi, andika 3000 na piga bandari ya kuangalia. Inapaswa kurudi na Mafanikio.

Hatua ya 6: Kuangalia Kazi Yako Hadi Sasa

Kuangalia Kazi Yako Hadi Sasa
Kuangalia Kazi Yako Hadi Sasa
Kuangalia Kazi Yako Hadi Sasa
Kuangalia Kazi Yako Hadi Sasa

Sasa… wakati ambao umekuwa ukingojea… Mwambie Google amri kama vile LED za samawati (ikiwa ulifuata mfano wangu).

Kwa kudhani yote yameenda kwa usahihi, utapata pato lililoonekana kwenye picha. Bado hatuna mzunguko, kwa hivyo yote utaona ni maandishi kwenye skrini. Kawaida kuna ucheleweshaji wa pili au 2 kabla ya kusindika kutoka Google na kuonekana kwenye Pi.

(Ruka kwa hatua inayofuata ikiwa hii ilitoka sawa na picha)

Sasa kuna mambo machache ya kuangalia ikiwa haikufanya kazi…

Katika picha, kuna mstari ambao unasema

POST / rangi / bluu 200 250.458 ms - 2

200 ndio sehemu muhimu. Ikiwa hauoni 200, basi kulikuwa na POST mbaya ambayo inamaanisha seva yako haikujua cha kufanya na data. Rudi kwa Hatua ya 2 na angalia faili yako ya index.js.

Pia kwenye picha

stdout: bluu

stderr:

Hii ndio pato kutoka kwa faili ya chatu inayoendesha LED. Ikiwa utaona hitilafu hapo, inaweza kuwa kwamba huna dereva aliyewekwa kwenye Hatua ya 2.

Mwishowe, ikiwa hakuna chochote kilichojitokeza kabisa… IFTTT yako inaweza kuwa haijasanidiwa kwa usahihi au imeshindwa kuunganisha kwenye seva. Rudi kwenye ukurasa wa IFTTT, na kwenye mwambaa wa juu wa nav, bonyeza Shughuli. Humo, unaweza kuona kila wakati programu yako inaendeshwa, na ikiwa kulikuwa na hitilafu, unaweza kuona ilikuwa ni nini. Nilifanya amri ya Google na seva ya Pi imezimwa na kupata hitilafu kwenye picha.

Hatua ya 7: Kuunda Mzunguko

Kujenga Mzunguko
Kujenga Mzunguko
Kujenga Mzunguko
Kujenga Mzunguko
Kujenga Mzunguko
Kujenga Mzunguko

Sababu kwa nini tunahitaji kufanya hivyo ni kwa sababu Raspberry Pi haina nguvu za kutosha… Kwa hivyo suluhisho ni… NGUVU ZAIDI (Tim mtu wa zana Taylor anaugulia kwa mbali). Ugavi mwingine wa umeme (12V 2A)

Vifaa vya Sehemu ya Mzunguko

  • Kitabu cha ulinzi
  • Waya
  • Ukanda wa LED wa RGB
  • Ugavi wa Umeme wa 12V - Chochote kilicho juu ya Amps 2 kinapaswa kuwa sawa
  • DC Pipa Jack - Saizi sawa na ile ya usambazaji wa umeme wako
  • NPN BJT Power Transistors (x3) - ninatumia TIP31C
  • Vichwa vya pini vya Kiume na Kike

Kutumia picha nzuri niliyoiba kutoka kwa interwebs na GPIO ya Pi Zero, unaweza kuona GPIO17, GPIO18, na GPIO 27 wako sawa karibu na kila mmoja na GND. Tutatumia mraba huo wa pini 4 (Pini 11, 12, 13, 14).

Kwanza, ningependekeza kupandikiza vichwa vya kiume kwenye ukanda wako wa LED kama inavyoonekana kwenye picha (sio kazi yangu bora). Hii inaruhusu kukatwa rahisi ikiwa unahitaji. Nilitumia vichwa vya kike kwa unganisho la mkanda wa LED kwa protoboard yangu na vichwa vya kiume kutoka protoboard hadi Raspberry Pi. (Daima tumia miunganisho ya kike kwa chanzo cha nguvu / ishara). Huna haja ya kuhamisha pini zote za Pi karibu na kila mmoja kama nilivyofanya… Nilitaka ionekane safi, lakini ilikuwa kazi nyingi.

Maelezo ya Mzunguko

Kwa wale ambao hawajui na transistors, transistors kimsingi ni swichi ya dijiti. Pini za GPIO kutoka kwa Pi husababisha swichi tatu (nyekundu, kijani kibichi, na hudhurungi). Kuangalia RED kwenye mchoro wa mzunguko, wakati GPIO_17 imewashwa, swichi "inafunga" inayounganisha RED na GND na kusababisha taa nyekundu kuwasha. Wakati GPIO_17 inazima, basi swichi imefunguliwa na kwa hivyo taa huzima.

Msingi - GPIOs

Mtoza - Rangi (RED, GREEN, BLUE)

Emitter - Ardhi (ya Ugavi wa Nguvu na Pi)

Hakikisha kuunganisha ardhi ya Pi na ardhi ya usambazaji wa umeme. Taa bado zitafanya kazi, lakini zitaonekana kuwa nyepesi sana mpaka ardhi iunganishwe.

Nina kifaa cha kutazama cha transistor cha 4 kwenye kitabu changu cha maandishi. Ni L7805CV ambayo hutumiwa kubadilisha 12V kuwa 5V ili niweze kuwezesha Pi kwenye mzunguko huo. Ilifanya kazi lakini iliendelea kupokanzwa, kwa hivyo nikaondoa unganisho lake.

Hatua ya 8: Jaribu

Mara tu ukimaliza na mzunguko, anzisha tena Pi yako kabla ya kufanya unganisho wowote. Hii ni kwa sababu pini labda bado zinafanya kazi kutoka kwa jaribio la seva. Vinginevyo, unaweza kuua seva na huduma ya nguruwe.

Chomeka taa za LED na kuruka kutoka kwenye protoboard hadi kwa Pi. Angalia mara mbili viunganisho vyote kabla ya kutoa nguvu. Ikiwa umeiweka waya vibaya, unaweza kukaanga Pi yako (hakuna shinikizo).

Orodha ya kuangalia

  • Angalia waya
  • Nguvu Pi
  • Mzunguko wa Nguvu
  • Anza Seva (DEBUG = webapp: * npm anza ukiwa kwenye saraka ya ~ / piWebpage / webApp)
  • Iambie Google ifanye zabuni yako!

HONGERA haukulipua chochote, na sasa unaweza kudhibiti LED zako kutoka Google Home.

Acha maoni ikiwa una maswala, na nitajitahidi kurudi kwako!

Ilipendekeza: