Orodha ya maudhui:

Alarm PIR kwa WiFi (na Automation ya Nyumbani): Hatua 7 (na Picha)
Alarm PIR kwa WiFi (na Automation ya Nyumbani): Hatua 7 (na Picha)

Video: Alarm PIR kwa WiFi (na Automation ya Nyumbani): Hatua 7 (na Picha)

Video: Alarm PIR kwa WiFi (na Automation ya Nyumbani): Hatua 7 (na Picha)
Video: Праздник. Новогодняя комедия 2024, Julai
Anonim
Image
Image
Alarm PIR kwa WiFi (na Automation ya Nyumbani)
Alarm PIR kwa WiFi (na Automation ya Nyumbani)

Maelezo ya jumla

Mafundisho haya yatakupa uwezo wa kutazama tarehe / saa ya mwisho (na kwa hiari historia ya nyakati) ya wakati PIR za Alarm yako ya Nyumba (sensorer infrared infrared) zilisababishwa, katika programu yako ya kiotomatiki ya nyumbani. Katika mradi huu, nitajadili jinsi ya kutumia na OpenHAB (programu ya otomatiki ya nyumbani, ambayo mimi hutumia kibinafsi) ingawa itafanya kazi na programu nyingine yoyote ya kiotomatiki ya nyumbani au programu inayounga mkono MQTT (pia imeelezewa baadaye katika nakala hii). Hii inaweza kufundisha kupitia hatua zinazohitajika za jinsi ya kuweka waya kwenye bodi ya mzunguko na Wemos D1 mini (bodi ya IOT inayotumia chip ya ESP8266) ambayo huingia kwenye maeneo ya kengele kwenye sanduku lako la kudhibiti kengele ili wakati eneo (ambalo lina PIR moja au zaidi) husababishwa, Wemos hutuma ujumbe bila waya kwa kutumia itifaki ya MQTT kwa programu yako ya kiotomatiki ya nyumbani ambayo nayo inaonyesha tarehe / wakati wa mwisho wa kichocheo hicho. Nambari ya Arduino ya kupanga Wemos pia hutolewa.

Utangulizi

Picha hapo juu ndio naona kupitia moja ya skrini kwenye programu ya OpenHAB kwenye iPhone yangu. Nakala ya tarehe / saa imewekwa rangi ili kutoa uwakilishi wa haraka wa wakati PIR ilichochewa - itaonyesha nyekundu (iliyosababishwa ndani ya dakika 1 iliyopita), rangi ya machungwa (iliyosababishwa ndani ya dakika 5 zilizopita), kijani (iliyosababishwa ndani ya dakika 30 zilizopita), bluu (iliyosababishwa ndani ya saa ya mwisho) au vinginevyo, nyeusi. Kubonyeza tarehe / saa, kutaonyesha maoni ya kihistoria ya vichocheo vya PIR, ambapo njia 1 imesababishwa, na 0 ni uvivu. Kuna matumizi mengi kwa hii, kwa mfano inaweza kuongezea suluhisho la uwepo wa nyumba, inaweza kugundua mwendo ikiwa uko mbali na kupitia sheria za OpenHAB, tuma arifa kwa simu yako, unaweza kuitumia kama ninavyoona kama watoto wangu wako kuamka katikati ya usiku, uliosababishwa na PIR ambaye anakaa nje ya vyumba vyao vya kulala!

OpenHAB ni programu ya kiotomatiki ninayotumia nyumbani, kuna zingine nyingi - na ikiwa zinaunga mkono MQTT basi unaweza kubadilisha mradi huu kwa urahisi ili utoshe programu unayotumia.

Mawazo

Hii inaweza kudhibitiwa kuwa unayo tayari (au itaweka):

  • Ni wazi mfumo wa kengele ya nyumbani na PIRs (sensorer infrared infrared) na kwamba unaweza kufikia sanduku la kudhibiti kengele kuunganisha wiring muhimu
  • OpenHAB (bure open source home automation software) inayoendesha, ingawa inavyojadiliwa inapaswa kufanya kazi na programu yoyote ya kiotomatiki ya nyumbani ambayo inaweza kujumuisha kumfunga MQTT. Vinginevyo, unaweza kubadilisha nambari mwenyewe ili kukidhi mahitaji yako mwenyewe.
  • Dalali ya Mosquitto MQTT (au sawa) iliyosanikishwa na kufungwa iliyowekwa na OpenHAB (MQTT ni ujumbe wa kujisajili / kuchapisha itifaki ya aina ambayo ni nyepesi na nzuri kwa mawasiliano kati ya vifaa)

Ikiwa hautatumia OpenHAB na broker wa MQTT, angalia nakala hii bora kwenye wavuti ya MakeUseOf

Ninahitaji nini?

Ili kuunda mtawala wa wireless, utahitaji kupata sehemu zifuatazo:

  • Wemos D1 mini V2 (ina ESP8266 wireless CHIP iliyojengwa)
  • Kilinganisho cha LM339 (hii itafanya ukaguzi wa uvivu wa PIR dhidi ya uliosababishwa)
  • Chanzo cha nguvu cha 5V DC cha Wemos (AU, kibadilishaji cha DC-DC. Kumbuka: mdhibiti wa voltage ya LM7805 haiwezi kufanya kazi kwa programu hii kama ilivyojadiliwa baadaye katika mradi huu)
  • Vipinga viwili vya mgawanyiko wa voltage (saizi itategemea voltages zako za kengele, zilizojadiliwa baadaye katika mradi huo)
  • Kinga moja ya 1K ohm itafanya kama kontena la kuvuta kwa kudhibiti nguvu ya LM339
  • 2N7000 (au sawa) MOSFET kuwasha kimantiki LM339 (ikiwezekana hiari, iliyojadiliwa baadaye katika mradi)
  • Bodi ya mikate inayofaa kwa usanidi na upimaji wa mzunguko
  • Rundo la waya za mkate ili kuunganisha kila kitu pamoja
  • Zana zinahitajika: wakataji wa upande, waya moja ya msingi
  • Mita nyingi za DC (lazima!)

Hatua ya 1: Sanduku la Kudhibiti Mfumo wa Alarm

Sanduku la Kudhibiti Mfumo wa Kengele
Sanduku la Kudhibiti Mfumo wa Kengele

Kwanza onyo fulani na Kanusho

Binafsi, nina mfumo wa kengele ya Bosch. Napenda kupendekeza upakue mwongozo unaofaa kwa mfumo wako wa kengele na ujitambulishe nayo kabla ya kuanza kwani utahitaji kuzima mfumo wa kengele kuweka waya kwenye maeneo. Napenda pia kupendekeza usome nakala hii yote kabla ya kuanza!

Hapa chini kuna orodha ya vitu kadhaa unapaswa kujua kabla ya kuanza - hakikisha unasoma na kuelewa kila moja yao kabla ya kuendelea! Sichukui jukumu lolote ikiwa unasonga mfumo wako wa kengele na / au lazima ulipe kisakinishi chako kuirekebisha. Ikiwa unasoma na kuelewa yafuatayo hata hivyo na kuchukua tahadhari zinazofaa, unapaswa kuwa sawa:

1. Mfumo wangu wa kengele ulikuwa na betri chelezo ndani ya sanduku na pia ilikuwa na swichi ya kuchezea ndani ya kifuniko (ambayo inatoa ufikiaji wa bodi ya mfumo wa kengele) kwa hivyo hata kuzima kengele nje, wakati wa kuondoa jopo la mbele la udhibiti sanduku ilisababisha kengele! Ili kuzunguka hii wakati nilikuwa nikifanya kazi kwenye mradi huo, nilipita kinga ya kukataza kwa kuchomoa kisha nikizungusha kifupi swichi ya tamper (waya mnene mwekundu kama inavyoonekana kwenye picha hapo juu)

2. Wakati wa kuimarisha mfumo wa kengele, baada ya saa ~ 12 jopo la kudhibiti kengele lilianza kulia na nambari za makosa. Baada ya kuamua nambari za makosa kupitia mwongozo, niligundua ilikuwa inanionya kuwa:

  • Tarehe / saa haikuwekwa (nilihitaji nambari kuu na mlolongo wa ufunguo kutoka kwa mwongozo kusanidi upya)
  • Kwamba betri chelezo haikuunganishwa (rekebisha rahisi, ningesahau tu kuziba betri tena)

3. Katika kengele yangu, kuna vitalu 4 x vya unganisho (vilivyoandikwa Z1-Z4) kwa PIR kuingia kwenye bodi kuu ya kengele, hata hivyo - mfumo wangu wa kengele unauwezo wa maeneo 8. Kila kizuizi cha unganisho la eneo kinaweza kukimbia kanda 2 x kila moja (Z1 haina Z1 na Z5, Z2 hufanya Z2 na Z6 na kadhalika). Mfumo wa kengele umeweka ulinzi wa kuingilia kati ili kumzuia mtu aseme, kufungua kifuniko kwa mfumo wa kengele kama ilivyoelezwa hapo juu, au kukata waya kwa PIR. Inatofautisha kati ya kila ukandaji wa eneo kupitia vipingao vya EOL (mwisho wa mstari). Hizi ni vizuizi vya ukubwa ambao hukaa "mwisho wa mstari" - kwa maneno mengine, ndani ya PIR (au sanduku la kudhibiti kisanduku cha kudhibiti, au sanduku la siren au chochote kilichounganishwa na eneo hilo) Kama ilivyoelezwa vipinga hivi hutumiwa kama ulinzi '- kiufundi, ikiwa mtu hukata nyaya kwa PIR - kwa sababu mfumo wa kengele unatarajia kuona upinzani kutoka kwa PIR huyo, basi upinzani ukibadilika, inadhani mtu amechafua mfumo huo na atasababisha kengele.

Kwa mfano:

Kwenye kengele yangu, Kanda "Z4" ina waya 2 ndani yake, moja huenda kwa PIR kwenye barabara yangu ya ukumbi na moja huenda kwenye kisanduku cha kudhibiti kengele. Ndani ya barabara ya ukumbi PIR, ina kontena la 3300 ohm. Waya nyingine ambayo hukimbilia kwenye kisanduku cha kudhibiti kisanduku cha kudhibiti, ina kontena la 6800 ohm lililopigwa waya mfululizo. Hivi ndivyo mfumo wa kengele (kimantiki) unavyotofautisha kati ya "Z4" na "Z8" za kuchuja. Vivyo hivyo, ukanda "Z3" una PIR (iliyo na kontena la 3300 ohm ndani yake) na pia swichi ya kuchuja siren (yenye kontena la 68m ohm ndani yake) ambayo hufanya "Z7". Kisakinishi cha kengele kingekuwa kimesanidi mfumo wa kengele ili iweze kujua ni kifaa gani kinachounganishwa na kila eneo (na kubadilisha saizi ya kontena la EOL kutoshea, kwa sababu mfumo wa kengele umewekwa kujua ukubwa wa vipinga tofauti vya EOL. hakuna hali yoyote unapaswa kubadilisha thamani ya vipinga hivi!)

Kwa hivyo kulingana na hapo juu, kwa sababu kila eneo linaweza kuwa na vifaa vingi pia (pamoja na viwango tofauti vya upinzani), na kukumbuka fomula V = IR (voltage = amps x upinzani) basi hiyo inaweza pia kumaanisha kila eneo linaweza kuwa na voltages tofauti. Ambayo inatuongoza kwenye hatua inayofuata, kupima kila kanda IDLE vs Voltage iliyochomwa…

Hatua ya 2: Kupima Voltage ya eneo la Alarm

Kupima Voltage ya eneo la Alarm
Kupima Voltage ya eneo la Alarm
Kupima Voltage ya eneo la Alarm
Kupima Voltage ya eneo la Alarm

Mara tu unapopata ufikiaji wa bodi kuu kwenye mfumo wako wa kengele (na ukapita kubadili swichi ikiwa unayo, kulingana na hatua ya awali) washa tena mfumo wako wa kengele. Sasa tunahitaji kupima kila kanda ya voltage wakati IDLE yake (hakuna harakati mbele ya PIR) vs TRIGGERED (PIR imegundua harakati) Shika kalamu na karatasi ili uweze kuandika usomaji wako wa voltage.

ONYO: Sehemu kubwa ya mfumo wako wa kengele inawezekana inaendeshwa kwa 12V DC, hata hivyo itakuwa na malisho yake ya kwanza ya nguvu kwa 220V (au 110V) AC, na nguvu ya kubadilisha umeme kutoka AC kwenda DC. SOMA mwongozo na chukua tahadhari zaidi kuhakikisha HUPIMI vituo vyovyote vya AC !!! Kulingana na picha ya skrini ya mfumo wangu wa kengele kwenye ukurasa huu, unaweza kuona kwamba chini kabisa ya picha hiyo ni nguvu ya AC iliyobadilishwa kuwa 12V DC. Tunapima 12V DC kwenye masanduku nyekundu yaliyoangaziwa. Kamwe usiguse nguvu ya AC. Chukua utunzaji uliokithiri!

Kupima Voltage ya PIR

Nina 4 x PIR imeunganishwa na Z1 hadi Z4. Pima kila eneo lako kama ifuatavyo.

  1. Kwanza, tambua kituo cha GND na vituo vya ukanda kwenye jopo la kengele. Nimeangazia haya kwenye picha iliyoonyeshwa kutoka kwa mwongozo wa kengele yangu ya Bosch.
  2. Shika multimeter yako na uweke kipimo chako cha voltage kwa 20V DC. Unganisha kebo nyeusi (COM) kutoka kwa multimeter yako hadi kwenye kituo cha GND kwenye kengele. Weka risasi nyekundu (+) kutoka kwa multimeter yako kwenye ukanda wa kwanza - katika kesi yangu iliyoitwa "Z1". Andika usomaji wa voltage. Fanya hatua sawa kwa kanda zilizobaki. Vipimo vyangu vya voltage ni kama ifuatavyo:
  • Z1 = 6.65V
  • Z2 = 6.65V
  • Z3 = 7.92V
  • Z4 = 7.92V

Kama ilivyo hapo juu, kanda zangu mbili za kwanza zina PIR pia zilizoambatanishwa nazo. Kanda mbili za mwisho zina PIR zote mbili na kinga ya kuingiliana imeingiliwa ndani yao (Z3 tamper box box, Z4 siren tamper) Kumbuka tofauti za voltage.

3. Labda utahitaji watu 2 kwa hatua hii inayofuata. Utahitaji pia kujua ni PIR ipi iko katika eneo gani. Rudi nyuma na usome voltage kwenye eneo la kwanza. Sasa pata mtu ndani ya nyumba yako atembee mbele ya PIR, voltage inapaswa kushuka. Kumbuka usomaji mpya wa voltage. Kwa upande wangu, voltages inasoma kama ifuatavyo wakati PIRs zinasababishwa:

  • Z1 = 0V
  • Z2 = 0V
  • Z3 = 4.30V
  • Z4 = 4.30V

Kama ilivyo hapo juu, ninaweza kuona kwamba wakati maeneo 1 na 2 yanasababishwa, voltage inashuka kutoka 6.65V hadi 0V. Walakini wakati maeneo ya 3 na 4 yanasababishwa, voltage inashuka kutoka 7.92V hadi 4.30V.

Kupima usambazaji wa umeme wa 12V

Tutatumia kituo cha 12V DC kutoka kwenye sanduku la kudhibiti kengele kuwezesha mradi wetu. Tunahitaji kupima voltage kutoka kwa kulisha 12V DC kwenye kengele. Ingawa tayari inasema 12V, tunahitaji kujua usomaji sahihi zaidi. Kwa upande wangu, inasoma 13.15V. Andika hii, utahitaji thamani hii katika hatua inayofuata.

Kwa nini tunapima voltage?

Sababu tunayohitaji kupima voltage kwa kila PIR ni kwa sababu ya mzunguko ambao tutakuwa tunaunda. Tutatumia chipu ya kulinganisha ya LM339 quad (au quad op-amp comparator) kama sehemu ya umeme kwa mradi huu. LM339 ina vilinganishi 4 vya voltage huru (njia 4) ambapo kila kituo kinachukua voltages 2 x za kuingiza (moja inverting (-) na pembejeo moja isiyo ya inverting (+), angalia mchoro) Ikiwa voltage ya voltage ya pembejeo ya inverting inapaswa kushuka chini kuliko voltage isiyo ya kugeuza, basi pato lake linalohusiana litatolewa ardhini. Vivyo hivyo, ikiwa voltage ya uingizaji isiyoingiza inashuka chini kuliko pembejeo ya inverting, basi pato linavutwa hadi Vcc. Kwa urahisi, katika nyumba yangu nina kengele 4 x / maeneo ya kengele - kwa hivyo kila eneo litakuwa na waya kwa kila kituo kwenye kulinganisha. Ikiwa una zaidi ya 4 x PIR, utahitaji kulinganisha na njia zaidi, au LM339 nyingine!

Kumbuka: LM339 hutumia nguvu katika nano-amps, kwa hivyo haitaathiri upinzani wa EOL wa mfumo wa kengele uliopo.

Ikiwa hii inachanganya, endelea kwa hatua inayofuata hata hivyo itaanza kuwa na maana zaidi mara tu tutakapoweka waya!

Hatua ya 3: Kuunda Mgawanyiko wa Voltage

Image
Image

Mgawanyiko wa voltage ni nini?

Mgawanyiko wa voltage ni mzunguko na 2 x vipinga (au zaidi) kwa safu. Tunatoa voltage katika (Vin) kwa kontena la kwanza (R1) Mguu mwingine wa R1 unaunganisha na mguu wa kwanza wa kontena la pili (R2), na mwisho mwingine wa R2 unaunganisha na GND. Kisha tunachukua voltage ya pato (Vout) kutoka kwa unganisho kati ya R1 na R2. Voltage hiyo itakuwa voltage yetu ya kumbukumbu kwa LM339. Kwa habari zaidi juu ya jinsi wagawanyaji wa voltage wanavyofanya kazi, angalia Adohms video ya youtube

(Kumbuka: wapinzani hawana polarity, kwa hivyo wanaweza kushonwa kwa njia yoyote kuzunguka)

Kuhesabu voltage yetu ya kumbukumbu

Kwa kudhani kuwa voltage inashuka wakati PIR yako imesababishwa (hii inapaswa kuwa kesi kwa kengele nyingi) basi kile tunachojaribu kufikia, ni kupata usomaji wa voltage ambao uko katikati kabisa kati ya voltage yetu ya chini kabisa na voltage yetu iliyosababishwa zaidi, hii itakuwa voltage yetu ya kumbukumbu.

Kuchukua kengele yangu kama mfano…

Voltages za eneo lisilo na kazi zilikuwa Z1 = 6.65V, Z2 = 6.65V, Z3 = 7.92V, Z4 = 7.92V. Voltage ya chini kabisa bila kazi ni 6.65V

Ukanda uliosababisha voltages walikuwa: Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V. Voltage iliyosababishwa zaidi kwa hivyo ni 4.30V

Kwa hivyo tunahitaji kuchukua nambari katikati ya 4.30V na 6.65V (haifai kuwa sawa, takribani tu) Kwa upande wangu, voltage yangu ya kumbukumbu inahitaji kuwa karibu 5.46V. Kumbuka: Ikiwa voltage ya chini kabisa iliyosababisha na inayosababishwa sana iko karibu sana kwa sababu ya maeneo kadhaa yanayosababisha anuwai tofauti, unaweza kuhitaji kuunda wagawanyiko wa voltage 2 au zaidi.

Kuhesabu tunu zetu za kipinga kwa mgawanyiko wa voltage

Sasa tuna voltage ya kumbukumbu, tunahitaji kuhesabu ni vipinga vipi vya ukubwa tunahitaji kuunda mgawanyiko wa voltage ambayo itatoa voltage yetu ya kumbukumbu. Tutatumia chanzo cha voltage cha 12V DC (Vs) kutoka kwa kengele. Walakini, kulingana na hatua ya awali wakati tulipima malisho ya 12V DC tulipata 13.15V. Tunahitaji kuhesabu mgawanyiko wa voltage kwa kutumia dhamana hii kama chanzo.

Hesabu Kura kwa kutumia sheria ya ohms…

Piga = Vs x R2 / (R1 + R2)

… Au tumia kikokotozi cha mgawanyiko wa voltage mkondoni:-)

Utahitaji kujaribu maadili ya kontena hadi utafikia pato lako unalotaka. Kwa upande wangu, ilifanya kazi na R1 = 6.8k ohm na R2 = 4.7K ohm, iliyohesabiwa kwa fomu ndefu kama ifuatavyo:

Piga = Vs x R2 / (R1 + R2)

Piga = 13.15 x 4700 / (6800 + 4700)

Kura = 61, 805/11, 500

Kura = 5.37V

Hatua ya 4: Futa LM339

Wiring Up Wemos D1 Mini
Wiring Up Wemos D1 Mini

Mgawanyiko wa Voltage kwa pembejeo za kuingiza LM339

Kama ilivyojadiliwa hapo awali kuhusu kulinganisha LM339, itachukua pembejeo 2 x. Moja itakuwa voltage kutoka kwa kila PIR hadi kila njia isiyo na inverting (+) terminal, nyingine itakuwa voltage yetu ya kumbukumbu kwa terminal yetu ya inverting (-). Voltage ya kumbukumbu inahitaji kulisha pembejeo zote 4 za kulinganisha. Zima mfumo wako wa kengele kabla ya kutekeleza hatua hizi.

  • Endesha waya kutoka kwa kizuizi cha 12V DC kwenye mfumo wa kengele hadi kwenye reli + kwenye ubao wako wa mkate *
  • Endesha waya kutoka kwa kizuizi cha GND kwenye mfumo wa kengele hadi kwenye - reli kwenye ubao wako wa mkate **
  • Sakinisha kilinganishi cha LM339 katikati ya ubao wa mkate (notch inaonyesha karibu zaidi na kubandika 1)
  • Sakinisha vizuia 2 x kuunda mzunguko wa msuluhishi wa waya na waya kwa voltage iliyogawanyika nje
  • Run waya kutoka kwa 'voltage iliyogawanywa' Vout kwa kila kituo cha kugeuza LM339

* TIP: tumia clip ya alligator kwa nguvu ikiwezekana, kwani hii inafanya iwe rahisi kutoa nguvu ya ON / OFF kwa mradi wako ** MUHIMU! MOSFET inaweza kuhitajika ikiwa unawapa Wemos nguvu kutoka kwa jopo la Alarm! Kwa upande wangu, LM339, Wemos na Alarm zote hupokea nguvu kutoka kwa chanzo kimoja (yaani: mfumo wa kengele yenyewe) Hii inaniruhusu kuwasha umeme kwa kila kitu na unganisho moja la nguvu. Walakini, kwa hiari pini za GPIO kwenye Wemos hufafanuliwa kama pini za "INPUT" - ikimaanisha wanachukua voltage yoyote inayotupwa kwao na wanategemea chanzo hicho kutoa viwango sahihi vya voltage (min / max viwango) ili Wemos washinde ' t kuanguka au kuchoma nje. Kwa upande wangu mfumo wa kengele hupata nguvu yake na kuanza kufanya mfuatano wa kasi haraka sana - kwa haraka sana, kwamba hufanya hivi kabla Wemos hawajaanza na kutangaza pini za GPIO kama "INPUT_PULLUP" (voltage ilivutwa ndani ndani ya chip). Hii haimaanishi kwamba tofauti za voltage zinaweza kusababisha Wemos kuanguka wakati mfumo mzima ulipata nguvu. Njia pekee ya kuzunguka itakuwa kuzima kwa mikono na kwenye Wemos. Ili kutatua hili, MOSFET imeongezwa na hufanya kama "kubadili kimantiki" kwa kuwezesha LM339. Hii inaruhusu Wemos kuanza, kuweka pini zake 4 x za kulinganisha GPIO kama "INPUT_PULLUP's", kuchelewesha sekunde chache na KISHA (kupitia pini nyingine ya GPIO D5 inayoelezewa kama OUTPUT) tuma ishara "HIGH" kupitia GPIO pin D5 kwa MOSFET, ambayo inabadilisha LM339 kimantiki. Ningeshauri kuunganisha juu kama ilivyo hapo juu, lakini ikiwa utagundua kuwa Wemos huanguka kama nilivyofanya, basi itabidi ujumuishe MOSFET na 1k ohm ya kuvuta kipinga. Kwa habari zaidi juu ya jinsi ya kufanya hivyo, angalia mwisho wa mafunzo haya.

Kanda za kengele kwa pembejeo zisizobadilisha za LM339

Sasa tunahitaji kuendesha waya kutoka kila eneo kwenye jopo la kudhibiti kengele hadi pembejeo za kulinganisha LM339. Mfumo wa kengele ukiwa umezimwa, kwa kila eneo lisha waya kwa kila pembejeo isiyo-inverting (+) kwa kulinganisha LM339. Kwa mfano, katika mfumo wangu:

  • Waya kutoka Z1 huenda kwa uingizaji wa LM339 1+
  • Waya kutoka Z2 huenda kwa uingizaji wa LM339 2+
  • Waya kutoka Z3 huenda kwa LM339 pembejeo 3+
  • Waya kutoka Z4 huenda kwa uingizaji wa LM339 4+

Rejea pini-nje ya LM339 chini ya hatua ya 3 ikiwa ukumbusho (ni rangi iliyowekwa na picha ya ubao wa mkate). Mara baada ya kumaliza, ubao wako wa mkate unapaswa kuonekana sawa na picha iliyoonyeshwa katika hatua hii.

Nguvu kwenye mfumo wa kengele na pima voltage inayotoka kwa msuluhishi wa voltage ili kuhakikisha kuwa ni sawa na voltage yako ya kumbukumbu kama ilivyohesabiwa mapema.

Hatua ya 5: Wiring Up Wemos D1 Mini

Wiring mini Wemos D1

Sasa tuna pembejeo zote za LM339 zilizotunzwa, sasa tunahitaji waya kwenye mini ya Wemos D1. Kila pini ya pato la LM339 huenda kwa Wemos GPIO (jumla ya pembejeo / pato) ambayo tutateua kupitia nambari kama pini ya kuingiza. Wemos huchukua hadi 5V kiwango cha juu kama Vcc yake (chanzo cha kuingiza) voltage (ingawa inasimamia hii ndani hadi 3.3V) Tutatumia mdhibiti wa kawaida wa LM7805 (EDIT: tazama hapa chini) kuangusha reli ya 12V kwenye ubao wa mkate hadi 5V kuwezesha Wemos. Jedwali la LM7805 linaonyesha tunahitaji capacitor iliyounganishwa kwa kila upande wa mdhibiti ili kulainisha nguvu, kama inavyoonyeshwa kwenye picha ya mkate. Mguu mrefu wa capacitor ni chanya (+) kwa hivyo hakikisha hii imeunganishwa kwa njia inayofaa.

Mdhibiti wa voltage huchukua voltage ndani (pini ya upande wa kushoto), ardhi (pini ya kati) na voltage nje (pini ya upande wa kulia) Angalia tena pini ikiwa mdhibiti wako wa voltage anatofautiana na LM7805.

nikifanya kazi. Nilibadilisha LM7805 na capacitors na DC-DC buck converter badala yake na sikuwa na maswala tangu hapo. Hizi ni rahisi sana kufunga waya. Unganisha tu voltage ya pembejeo kutoka kwa Alarm, unganisha kwa multimeter kwanza na utumie screw ya potentiometer na urekebishe mpaka voltage ya pato ni ~ 5V)

Pini za kuingiza GPIO

Kwa mradi huu, tunatumia pini zifuatazo:

  • eneo Z1 => pini D1
  • eneo Z2 => pini D2
  • eneo Z3 => pini D3
  • eneo Z4 => pini D5

Waza matokeo kutoka LM339, kwa pini zinazohusiana za GPIO kwenye bodi ya Wemos, kulingana na picha ya ubao wa mkate iliyoonyeshwa katika hatua hii. Tena, nina alama za pembejeo za pembejeo na matokeo yanayolingana, ili iwe rahisi kuona ni nini kinamaanisha nini. Kila pini ya GPIO katika Arduino inafafanuliwa kama 'INPUT_PULLUP', ikimaanisha watasutwa hadi 3.3V chini ya matumizi ya kawaida (IDLE) na LM339 itawaondoa chini endapo PIR itasababishwa. Nambari hugundua mabadiliko ya HIGH hadi LOW, na hutuma ujumbe bila waya kwenye programu yako ya kiotomatiki ya nyumbani. Ikiwa una shida na hii inafanya kazi, inawezekana una pembejeo zako dhidi ya vifaa visivyoingiza njia mbaya (ikiwa voltage kutoka kwa PIR yako huenda juu wakati imesababishwa, kama inavyotokea na PIR nyingi za kupendeza, basi utahitaji unganisho. njia nyingine kote)

Arduino IDE

Ondoa Wemos kutoka kwenye ubao wa mkate, sasa tunahitaji kupakia nambari hiyo (kiungo mbadala hapa) Sitaenda kwa undani juu ya jinsi ya kufanya hivyo, kwani kuna nakala nyingi kwenye wavuti juu ya kupakia nambari kwa Wemos au ESP8266 nyingine bodi za aina. Chomeka kebo yako ya USB kwenye ubao wa Wemos na kwenye PC yako na uteketeze Arduino IDE. Pakua nambari na uifungue kwenye mradi wako. Utahitaji kuhakikisha bodi sahihi imewekwa na kupakiwa kwa mradi wako na vile vile bandari sahihi ya COM iliyochaguliwa (Zana, Bandari). Utahitaji pia maktaba zinazofaa zilizowekwa (PubSubClient, ESP8266Wifi) Ili bodi ya Wemos iwe pamoja na mchoro wako, angalia nakala hii.

Utahitaji kubadilisha mistari ifuatayo ya nambari, na ubadilishe na SSID yako mwenyewe na nywila kwa unganisho lako la waya. Pia, badilisha anwani ya IP kuelekeza kwa broker wako mwenyewe wa MQTT.

// Wifi

const char * ssid = "yako_wifi_ssid_hapa"; const char * password = "yako_wifi_password_hapa"; // MQTT Broker IPAdressress MQTT_SERVER (172, 16, 223, 254)

Mara tu ikibadilishwa, thibitisha nambari yako kisha upakie kwenye bodi ya Wemos kupitia kebo ya USB.

Vidokezo:

  • Ikiwa unatumia bandari tofauti za GPIO, utahitaji kurekebisha nambari. Ikiwa unatumia maeneo mengi au machache kuliko mimi, utahitaji pia kurekebisha nambari na TOTAL_ZONES = 4; mara kwa mara ili kukidhi.
  • Wakati wa kuanza kwa mfumo wangu wa kengele, mfumo wa kengele ungefanya jaribio la nguvu kwa 4 x PIR zote ambazo zilivuta GPIO yote iliyounganishwa chini, na kusababisha Wemos kufikiria kwamba maeneo hayo yalisababishwa. Nambari hiyo itapuuza kutuma ujumbe wa MQTT ikiwa itaona maeneo yote 4 x kwa wakati mmoja, kwani inadhani mfumo wa kengele unakua.

Kiunga mbadala cha kupakua kwa nambari HAPA

Hatua ya 6: Upimaji na Usanidi wa OpenHAB

Upimaji na Usanidi wa OpenHAB
Upimaji na Usanidi wa OpenHAB

Upimaji wa MQTT

MQTT ni mfumo wa "kujisajili / kuchapisha" ujumbe. Kifaa kimoja au zaidi kinaweza kuzungumza na "MQTT broker" na "jiandikishe" kwa mada fulani. Ujumbe wowote unaoingia kutoka kwa kifaa kingine chochote ambacho "umechapishwa" kwa mada hiyo hiyo, utasukumwa nje na broker kwa vifaa vyote ambavyo vimejiunga nayo. Ni nyepesi sana na rahisi kutumia itifaki na kamilifu kama mfumo rahisi wa kuchochea kama hii hapa. Kwa upimaji, unaweza kuona ujumbe unaoingia wa MQTT kutoka kwa Wemos hadi kwa broker wako wa MQTT kwa kutekeleza amri ifuatayo kwenye seva yako ya Mosquitto (Mosquitto ni moja ya programu nyingi za MQTT Broker zinazopatikana). Amri hii inafuatilia ujumbe unaoingia wa kuweka pesa:

mosquitto_sub -v -t openhab / kengele / hadhi

Unapaswa kuona ujumbe ulioingia ukija kutoka kwa Wemos kila sekunde 30 au hivyo na nambari "1" (ikimaanisha "niko hai") Ukiona "0" za kila wakati (au hakuna jibu) basi hakuna mawasiliano. Mara tu unapoona nambari 1 ikiingia, basi inamaanisha Wemos wanawasiliana na broker wa MQTT (tafuta "MQTT Will Will na Testament" kwa habari zaidi juu ya jinsi hii inavyofanya kazi, au angalia blogi hii nzuri sana)

Mara tu unapothibitisha mawasiliano yanafanya kazi, tunaweza kujaribu kwamba hali ya eneo inaripotiwa kupitia MQTT. Jisajili kwa mada ifuatayo (# ni kadi ya mwitu)

mbu_sub -v -t openhab / alarm / #

Ujumbe wa hali ya kawaida unapaswa kuingia, kama vile anwani ya IP ya Wemos yenyewe. Tembea mbele ya PIR, na unapaswa pia kuona habari ya eneo ikija kuonyesha kuwa imefunguliwa, halafu sekunde au baadaye, kwamba imefungwa, sawa na ifuatayo:

openhab / kengele / hadhi 1

openhab / alarm / zone1 OPEN

openhab / alarm / zone1 KUFUNGWA

Mara tu hii inafanya kazi, tunaweza kusanidi OpenHAB ili hii iweze kuwakilishwa vizuri kwenye GUI.

Usanidi wa OpenHAB

Mabadiliko yafuatayo yanahitajika kwa OpenHAB:

'alarm.map' kubadilisha faili: (hiari, kwa upimaji)

KUFUNGWA = UvivuOPEN = TriggeredNULL = Haijulikani- = Haijulikani

'status.map' kubadilisha faili:

0 = Imeshindwa

1 = Mtandaoni - = CHINI! NULL = haijulikani

Faili ya 'vitu':

Kamba ya kengeleMonitorState "Alarm Monitor [MAP (status.map):% s]" {mqtt = "<[mqttbroker: openhab / alarm / status: state: default]"} Kamba ya kengeleMonitorIPAddress "Alarm Monitor IP [% s]" {mqtt = "<[mqttbroker: openhab / alarm / ipaddress: state: default]"} Nambari zone1_Chart_Period "Chati ya 1 Eneo" Wasiliana na alarmZone1State "Zone 1 State [MAP (alarm.map):% s]" {mqtt = "<[mqttbroker: openhab / alarm / zone1: state: default "} Kengele ya kambaZone1Trigger" Lounge PIR [% 1 $ ta% 1 $ tr] "Idadi zone2_Chart_Period" Chati 2 ya Eneo "Wasiliana na alarmZone2State" Eneo la 2 State [MAP (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab / alarm / zone2: state: default "} String alarmZone2Trigger" First Hall PIR [% 1 $ ta% 1 $ tr] "Number zone3_Chart_Period" Eneo la 3 Chati "Wasiliana na alarmZone3State" Zone 3 State [MAP (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab / alarm / zone3: state: default "} Kamba ya kengeleZone3Trigger" Chumba cha kulala PIR [% 1 $ ta% 1 $ tr] "Idadi zone4_Chart_Period "Chati ya 4 ya Eneo" Wasiliana na alarmZone4State "Zone 4 State [MAP (alarm.map):% s]" {mqtt = "<[mqttbroker: openha b / alarm / zone4: state: default "} Kengele ya kambaZone4Trigger" Jumba Kuu PIR [% 1 $ ta% 1 $ tr]"

Faili ya 'sitemap' (pamoja na rrd4j graphing):

Nakala ya bidhaa = alarmZone1Trigger valuecolor = [<= 60 = "# ff0000", <= 300 = "# ffa500", <= 600 = "# 008000", 3600 = "# 000000"] {Fremu {Switch item = zone1_Chart_Period label = "Kipindi" cha ramani = [0 = "Saa", 1 = "Siku", 2 = "Wiki"] Picha url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone1_Chart_Period == 0, zone1_Chart_Period = = Uninitialized] Picha url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone1_Chart_Period == 1] Image url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone1_Chart_Period == 2]}} Nakala ya maandishi = alarmZone2Trigger valuecolor = [<= 60 = "# ff0000", <= 300 = "# ffa500", <= 600 = "# 008000", 3600 = "# 000000"] {Fremu {Switch item = zone2_Chart_Period label = "Period" mappings = [0 = "Saa", 1 = "Siku", 2 = "Wiki"] Image url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone2_Chart_Period == 0, zone2_Chart_Period == Uninitialized] Picha url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone2_Chart_Period == 1] Image url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone2_Chart_Period == 2]}} Kipengee cha maandishi = alarmZone3Trigger rangi ya thamani = [<= 60 = "# ff0000", <= 300 = "# ffa500", <= 600 = "# 008000", 3600 = "# 000000"] {Fremu {Switch item = zone3_Chart_Period label = "Ratiba" = [0 = "Saa", 1 = "Siku", 2 = "Wiki"] Image url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == Uninitialized] Image url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone3_Chart_Period == 1] Image url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone3_Chart_Period == 2]}} Maandishi item = alarmZone4Trigger valuecolor = [<= 60 = "# ff0000", <= 300 = "# ffa500", <= 600 = "# 008000", 3600 = "# 000000"] {Fremu {Switch item = zone4_Chart_Period label = " Kipindi "ramani = [0 =" Saa ", 1 =" Siku ", 2 =" Wiki "] Picha url =" https:// localhost: 8080 / rrdchart.png "visibility = [zone4_Chart_Period == 0, zone4_Chart_Period == Uninitialized] Picha url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone4_Chart_Period == 1] Image url = "https:// localhost: 8080 / rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // KWA hiari lakini ni rahisi kwa kugundua hali na nyongeza ya IP ss Nakala ya kipengee = alarmMonitorState Text item = alarmMonitorIPAddress

faili ya 'sheria':

sheria "Mabadiliko ya hali ya eneo la Alarm 1"

wakati Item alarmZone1State ilibadilishwa kuwa OPEN kisha postUpdate (alarmZone1Trigger, new DateTimeType ()) alarmZone1State.state = CLOSED end

sheria "Mabadiliko ya hali ya eneo la Alarm 2"

wakati Item alarmZone2State ilibadilishwa kuwa OPEN kisha postUpdate (alarmZone2Trigger, new DateTimeType ()) alarmZone2State.state = CLOSED end

sheria "Mabadiliko ya hali ya eneo la Alarm 3"

wakati Item alarmZone3State ilibadilishwa kuwa OPEN kisha postUpdate (alarmZone3Trigger, new DateTimeType ()) alarmZone3State.state = CLOSED end

sheria "Eneo la Alarm 4 mabadiliko ya serikali"

wakati Item alarmZone4State ilibadilishwa kuwa OPEN kisha postUpdate (alarmZone4Trigger, new DateTimeType ()) alarmZone4State.state = CLOSED end

Unaweza kuhitaji kubadilisha usanidi wa hapo juu wa OpenHAB ili kutoshea usanidi wako mwenyewe.

Ikiwa una shida yoyote na PIR zinazosababishwa basi anza kutoka mwanzo, na pima voltages kwa kila sehemu ya mzunguko. Mara tu unapofurahi na hilo, angalia wiring yako, hakikisha kuna msingi wa kawaida, angalia ujumbe kwenye Wemos kupitia dashibodi ya utatuzi ya serial, angalia mawasiliano ya MQTT na uangalie sintaksia ya mageuzi yako, vitu na faili za ramani.

Bahati njema!

Ilipendekeza: