Përmbajtje:

PIR i alarmit në WiFi (dhe automatizimi i shtëpisë): 7 hapa (me fotografi)
PIR i alarmit në WiFi (dhe automatizimi i shtëpisë): 7 hapa (me fotografi)

Video: PIR i alarmit në WiFi (dhe automatizimi i shtëpisë): 7 hapa (me fotografi)

Video: PIR i alarmit në WiFi (dhe automatizimi i shtëpisë): 7 hapa (me fotografi)
Video: AUTONOMIA E ENERGJISË ËSHTË E MUNDSHME në rast të ndërprerjes së energjisë 2024, Korrik
Anonim
Image
Image
PIR i alarmit në WiFi (dhe automatizimi i shtëpisë)
PIR i alarmit në WiFi (dhe automatizimi i shtëpisë)

Vështrim i përgjithshëm

Ky udhëzues do t'ju japë mundësinë për të parë datën/kohën e fundit (dhe sipas dëshirës një histori kohësh) të kohës kur janë aktivizuar PIR -të e Alarmit të Shtëpisë tuaj (sensorë pasivë me rreze infra të kuqe), në programin tuaj të automatizimit të shtëpisë. Në këtë projekt, unë do të diskutoj se si të përdoret me OpenHAB (softuer falas për automatizimin e shtëpisë, të cilin unë personalisht e përdor) edhe pse do të punojë me çdo softuer ose aplikacion tjetër të automatizimit të shtëpisë që mbështet MQTT (përshkruar gjithashtu më vonë në këtë artikull). Ky udhëzues do t'ju drejtojë përmes hapave të nevojshëm se si të lidhni një tabelë qarku dhe Wemos D1 mini (një bord IOT që përdor një çip ESP8266) që futet në zonat e alarmit në kutinë tuaj të kontrollit të alarmit në mënyrë që kur një zonë (që përmbajnë një ose më shumë PIR) aktivizohet, Wemos dërgon një mesazh pa tel duke përdorur protokollin MQTT në softuerin tuaj të automatizimit të shtëpisë i cili nga ana tjetër, shfaq datën/kohën e fundit të atij shkaktari. Gjithashtu ofrohet kodi Arduino për të programuar Wemos.

Prezantimi

Imazhi i mësipërm është ajo që shoh përmes njërit prej ekraneve në aplikacionin OpenHAB në iPhone tim. Teksti i datës/kohës është i koduar me ngjyra për të siguruar një paraqitje më të shpejtë se kur është aktivizuar PIR - do të shfaqet e kuqe (e aktivizuar brenda 1 minutës së fundit), portokalli (e aktivizuar brenda 5 minutave të fundit), e gjelbër (e aktivizuar brenda 30 minutave të fundit), blu (e aktivizuar brenda orës së fundit) ose ndryshe, e zezë. Duke klikuar datën/kohën, do të shfaqet një pamje historike e shkaktuesve të PIR -it, ku një mesatare 1 është shkaktuar dhe 0 është e papunë. Ka shumë përdorime për këtë, për shembull mund të plotësojë zgjidhjen tuaj të pranisë në shtëpi, mund të zbulojë lëvizjen nëse jeni larg dhe përmes rregullave të OpenHAB, dërgoni njoftime në telefonin tuaj, ju mund ta përdorni atë si unë për të parë nëse fëmijët e mi janë duke u ngritur në mes të natës, të nxitur nga një PIR që banon jashtë dhomave të tyre të gjumit!

OpenHAB është thjesht softueri i automatizimit të shtëpisë që përdor, ka shumë të tjerë - dhe nëse ata mbështesin MQTT atëherë ju lehtë mund ta përshtatni këtë projekt për t’iu përshtatur softverit që përdorni.

Supozimet

Ky udhëzues supozon që ju tashmë keni (ose do të konfiguroni):

  • Padyshim që një sistem alarmi në shtëpi me PIR (sensorë pasivë me rreze infra të kuqe) dhe që ju keni qasje në kutinë e kontrollit të alarmit për të lidhur telat e nevojshëm
  • OpenHAB (softuer falas për automatizimin e shtëpisë me burim të hapur) funksionon, megjithëse siç u diskutua duhet të funksionojë me çdo softuer të automatizimit të shtëpisë që mund të përfshijë një lidhje MQTT. Përndryshe, ju mund ta ndryshoni vetë kodin për t'iu përshtatur nevojave tuaja.
  • Ndërmjetësi Mosquitto MQTT (ose i ngjashëm) i instaluar dhe i lidhur me konfigurim me OpenHAB (MQTT është një protokoll i llojit të abonimit/publikimit të mesazheve që është i lehtë dhe i shkëlqyeshëm për komunikimin midis pajisjeve)

Nëse nuk drejtoni OpenHAB dhe një ndërmjetës MQTT, shihni këtë artikull të shkëlqyer në faqen e internetit të MakeUseOf

Çfarë më duhet mua?

Për të krijuar kontrolluesin pa tel, do t'ju duhet të buroni pjesët e mëposhtme:

  • Wemos D1 mini V2 (ka një CHIP pa tel ESP8266 të integruar)
  • Një krahasues LM339 (kjo do të bëjë kontrollimin e PIR të papunë vs të aktivizuar)
  • Një burim energjie 5V DC për Wemos (OR, një konvertues i dollarit DC-DC. Shënim: një rregullator i tensionit LM7805 mund të mos funksionojë për këtë aplikim siç u diskutua më vonë në këtë projekt)
  • Dy rezistorë për një ndarës të tensionit (madhësia do të varet nga tensionet tuaja të alarmit, të diskutuara më vonë në projekt)
  • Një rezistencë 1K ohm për të vepruar si një rezistencë tërheqëse për kontrollin e fuqisë LM339
  • Një MOSFET 2N7000 (ose i ngjashëm) për të ndezur logjikisht LM339 (ndoshta opsionale, diskutuar më vonë në projekt)
  • Një bukë me madhësi të përshtatshme për konfigurimin dhe testimin e qarkut
  • Një tufë me tela dërrasë për të lidhur gjithçka së bashku
  • Mjetet e nevojshme: hapëse anësore, tela me një bërthamë
  • Një metër DC (i detyrueshëm!)

Hapi 1: Kutia e Kontrollit të Sistemit të Alarmit

Kutia e Kontrollit të Sistemit të Alarmit
Kutia e Kontrollit të Sistemit të Alarmit

Së pari disa paralajmërime dhe mohime

Personalisht, unë kam një sistem alarmi Bosch. Unë do t'ju rekomandoja shumë që të shkarkoni manualin përkatës për sistemin tuaj të veçantë të alarmit dhe të njiheni me të para se të filloni pasi do t'ju duhet të fikni sistemin e alarmit për të lidhur zonat. Unë gjithashtu do t'ju rekomandoja ta lexoni këtë artikull në tërësi para se të filloni!

Më poshtë është një listë e disa gjërave që duhet të dini para se të filloni - sigurohuni që të lexoni dhe kuptoni secilën prej tyre para se të vazhdoni! Unë nuk marr asnjë përgjegjësi nëse vidhosni sistemin tuaj të alarmit dhe/ose duhet të paguani instaluesin tuaj për ta rregulluar atë. Nëse lexoni dhe kuptoni sa vijon megjithatë dhe merrni masat e nevojshme, duhet të jeni mirë:

1. Sistemi im i alarmit kishte një bateri rezervë brenda kutisë dhe gjithashtu kishte një çelës ndërhyrjeje në pjesën e brendshme të kapakut (që siguron qasje në tabelën e sistemit të alarmit) kështu që edhe fikjen e alarmit nga jashtë, kur hiqni panelin e përparmë të kontrollit kuti ajo shkaktoi alarmin! Për ta kapërcyer këtë ndërsa punoja në projekt, unë anashkalova mbrojtjen nga ngacmimet duke shkëputur nga priza pastaj lidhjen e shkurtër të ndërprerësit (tela e trashë e kuqe siç tregohet në foton më lart)

2. Kur aktivizoni sistemin e alarmit, pas afro 12 orësh paneli i kontrollit të alarmit filloi të bip me kode defekti. Pasi përcaktova kodet e defektit përmes manualit, zbulova se po më paralajmëronte se:

  • Data/ora nuk u caktua (më duhej kodi kryesor dhe sekuenca kryesore nga manuali për të rikonfiguruar)
  • Se bateria rezervë nuk ishte e lidhur (rregullim i lehtë, thjesht kisha harruar ta fus përsëri baterinë)

3. Në alarmin tim, ka 4 blloqe lidhëse të zonës x (të etiketuara Z1 -Z4) që PIR -të të futen në tabelën kryesore të alarmit, megjithatë - sistemi im i alarmit është në të vërtetë i aftë për 8 zona. Çdo bllok i lidhjes së zonës mund të ekzekutojë 2 x zona secila (Z1 bën Z1 dhe Z5, Z2 bën Z2 dhe Z6 dhe kështu me radhë). Sistemi i alarmit ka mbrojtje të integruar të ngatërrimit për të ndaluar dikë të thotë, duke hapur kapakun e sistemit të alarmit siç u përmend më lart, ose duke prerë telat në një PIR. Ai bën dallimin midis çdo ngacmimi të zonës përmes rezistencave EOL (fundi i vijës). Këto janë rezistencë me madhësi të veçantë që banojnë në "fundin e linjës" - me fjalë të tjera, brenda PIR (ose ndërprerës i ndërhyrjes së kutisë së kontrollit, ose kuti sirena ose çfarëdo që është lidhur me atë zonë) Siç u përmend, këta rezistorë përdoren si "manipulues" mbrojtje ' - teknikisht, nëse dikush i pret kabllot në një PIR - sepse sistemi i alarmit pret të shohë një rezistencë të caktuar nga ai PIR, atëherë nëse rezistenca ndryshon, ai supozon se dikush ka ndërhyrë në sistem dhe do të shkaktojë alarmin.

Për shembull:

Në alarmin tim, Zona "Z4" ka 2 tela në të, një shkon në PIR në korridorin tim dhe një shkon në kalimin e ndërhyrjes në kutinë e kontrollit të alarmit. Brenda korridorit PIR, ka një rezistencë 3300 ohm. Teli tjetër që kalon në ndërprerësin e kutisë së kontrollit, ka një rezistencë 6800 ohm të lidhur në seri. Kjo është mënyra se si sistemi i alarmit (logjikisht) bën dallimin midis manipuluesve "Z4" dhe "Z8". Po kështu, zona "Z3" ka një PIR (me rezistencë 3300 Ohm në të) dhe gjithashtu ndërprerës të ndërhyrjes së sirenës (me rezistencë 6800 ohm në të) që përbën "Z7". Instaluesi i alarmit do të kishte konfiguruar paraprakisht sistemin e alarmit në mënyrë që të dinë se çfarë pajisje është e lidhur me secilën zonë (dhe të ndryshojë madhësinë e rezistencës EOL që i përshtatet, sepse sistemi i alarmit është programuar të dijë se çfarë madhësie janë rezistorët e ndryshëm EOL. Nën në asnjë rrethanë nuk duhet të ndryshoni vlerën e këtyre rezistorëve!)

Pra, bazuar në sa më sipër, sepse çdo zonë mund të ketë pajisje të shumta të lidhura gjithashtu (me vlera të ndryshme rezistence), dhe duke kujtuar formulën V = IR (tension = amps x rezistencë) atëherë kjo mund të nënkuptojë gjithashtu që çdo zonë mund të ketë tensione të ndryshme. E cila na çon në hapin tjetër, duke matur secilën zonë IDLE vs tension të shkaktuar …

Hapi 2: Matja e Tensionit të Zonës së Alarmit

Matja e Tensionit të Zonës së Alarmit
Matja e Tensionit të Zonës së Alarmit
Matja e Tensionit të Zonës së Alarmit
Matja e Tensionit të Zonës së Alarmit

Pasi të keni marrë qasje në tabelën kryesore në sistemin tuaj të alarmit (dhe të keni anashkaluar çelësin e manipulimit nëse keni një të tillë; sipas hapit të mëparshëm) ndizni përsëri sistemin tuaj të alarmit. Tani duhet të matim tensionin e secilës zonë kur IDLE e tij (pa lëvizje para PIR) vs TRIGGERED (PIR ka zbuluar lëvizje) Merrni një stilolaps dhe letër në mënyrë që të shkruani leximet tuaja të tensionit.

KUJDES: Pjesa më e madhe e sistemit tuaj të alarmit ka shumë të ngjarë të funksionojë në 12V DC, megjithatë ai do të ketë furnizimin e tij fillestar të energjisë në 220V (ose 110V) AC, me një transformator që konverton fuqinë nga AC në DC. LEXONI manualin dhe merrni masa paraprake shtesë duke siguruar që NUK po matni asnjë terminal AC !!! Sipas pamjes së ekranit të sistemit tim të alarmit në këtë faqe, mund të shihni që fundi i figurës është fuqia AC, e transformuar në 12V DC. Ne po matim 12V DC në kutitë e kuqe të theksuara. Asnjëherë mos prekni fuqinë AC. Kini kujdes ekstrem!

Matja e Tensionit PIR

Unë kam 4 x PIR të lidhur me Z1 deri në Z4. Matni secilën nga zonat tuaja si më poshtë.

  1. Së pari, identifikoni terminalin GND dhe terminalet e zonës në panelin e alarmit. I kam theksuar këto në imazhin e treguar nga manuali i alarmit tim Bosch.
  2. Merrni multimetrin tuaj dhe vendosni matjen e tensionit tuaj në 20V DC. Lidhni kabllon e zi (COM) nga multimetri juaj në terminalin GND në alarm. Vendosni plumbin e kuq (+) nga multimetri juaj në zonën e parë - në rastin tim të etiketuar "Z1". Shkruani leximin e tensionit. Kryeni të njëjtat hapa për zonat e mbetura. Matjet e mia të tensionit janë si më poshtë:
  • Z1 = 6.65V
  • Z2 = 6.65V
  • Z3 = 7.92V
  • Z4 = 7.92V

Siç u tha më sipër, dy zonat e mia të para i kanë bashkangjitur vetëm PIR -et. Dy zonat e fundit kanë të dy PIR -të dhe mbrojtjen nga ngacmimi të lidhur në to (ngacmimi i kutisë së kontrollit Z3, ndërhyrja e sirenës Z4) Vini re dallimet e tensionit.

3. Me shumë mundësi do të keni nevojë për 2 persona për këtë hap tjetër. Ju gjithashtu do të duhet të dini se cili PIR është në cilën zonë. Kthehuni dhe lexoni tensionin në zonën e parë. Tani merrni dikë në shtëpinë tuaj të ecë para PIR, tensioni duhet të bjerë. Merrni parasysh leximin e ri të tensionit. Në rastin tim, tensionet lexohen si më poshtë kur ndizen PIR -et:

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

Siç u tha më lart, unë mund të shoh se kur aktivizohen zonat 1 dhe 2, tensioni bie nga 6.65V në 0V. Megjithatë kur aktivizohen zonat 3 dhe 4, tensioni bie nga 7.92V në 4.30V.

Matja e furnizimit me energji 12V

Ne do të përdorim terminalin 12V DC nga kutia e kontrollit të alarmit për të fuqizuar projektin tonë. Ne duhet të matim tensionin nga alarmi 12V DC në alarm. Edhe pse tashmë thotë 12V, ne duhet të dimë një lexim më të saktë. Në rastin tim, ai në fakt lexon 13.15V. Shkruani këtë, do t'ju duhet kjo vlerë në hapin tjetër.

Pse po matim tensionin?

Arsyeja që ne kemi nevojë për të matur tensionin për secilin PIR është për shkak të qarkut që do të krijojmë. Ne do të përdorim një çip krahasues katër-diferencial LM339 (ose krahasues quad op-amp) si komponenti kryesor elektrik për këtë projekt. LM339 ka 4 krahasues të pavarur të tensionit (4 kanale) ku secili kanal merr 2 x tensione hyrëse (një hyrje përmbysëse (-) dhe një hyrje jo-përmbysëse (+), shihni diagramin) Nëse tensioni i tensionit hyrës përmbysës duhet të bjerë më i ulët se tensioni jo-përmbysës, atëherë prodhimi i tij përkatës do të tërhiqet në tokë. Po kështu, nëse tensioni hyrës jo përmbysës bie më poshtë se hyrja përmbysëse, atëherë dalja tërhiqet deri në Vcc. Në mënyrë të përshtatshme, në shtëpinë time kam 4 x PIR/zona alarmi - prandaj secila zonë do të lidhet me çdo kanal në krahasues. Nëse keni më shumë se 4 x PIR, do t'ju duhet një krahasues me më shumë kanale, ose një LM339 tjetër!

Shënim: LM339 konsumon energji në nano-amps, kështu që nuk do të ndikojë në rezistencën EOL të sistemit ekzistues të alarmit.

Nëse kjo është konfuze, vazhdoni në hapin tjetër gjithsesi do të fillojë të ketë më shumë kuptim pasi ta lidhim!

Hapi 3: Krijimi i një ndarësi të tensionit

Image
Image

Çfarë është një ndarës i tensionit?

Ndarësi i tensionit është një qark me 2 rezistenca x (ose më shumë) në seri. Ne sigurojmë tension në (Vin) në rezistencën e parë (R1) Këmba tjetër e R1 lidhet me këmbën e parë të rezistencës së dytë (R2), dhe skaji tjetër i R2 lidhet me GND. Ne pastaj marrim një tension dalës (Vout) nga lidhja midis R1 dhe R2. Ky tension do të bëhet tensioni ynë referues për LM339. Për më shumë informacion se si funksionojnë ndarësit e tensionit, shihni videon e Adohms në youtube

(Shënim: rezistorët nuk kanë polaritet, kështu që ato mund të lidhen në të dyja anët)

Llogaritja e tensionit tonë të referencës

Duke supozuar se voltazhi bie kur aktivizohet PIR -i juaj (ky duhet të jetë rasti për shumicën e alarmeve) atëherë ajo që ne po përpiqemi të arrijmë, është të marrim një lexim të tensionit që është pothuajse në gjysmë të rrugës midis tensionit tonë më të ulët boshe dhe tensionit tonë më të lartë të shkaktuar, kjo do të bëhet tensioni ynë referues.

Duke marrë alarmin tim si shembull…

Tensionet boshe të zonës ishin Z1 = 6.65V, Z2 = 6.65V, Z3 = 7.92V, Z4 = 7.92V. Tensioni më i ulët boshe është pra 6.65V

Tensionet e shkaktuara nga zona ishin: Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V. Prandaj tensioni më i lartë i shkaktuar është 4.30V

Pra, ne duhet të zgjedhim një numër në gjysmë të rrugës midis 4.30V dhe 6.65V (nuk duhet të jetë i saktë, vetëm përafërsisht) Në rastin tim, tensioni im referues duhet të jetë rreth 5.46V. Shënim: Nëse voltazhi më i ulët boshe dhe më i lartë i shkaktuar janë shumë afër njëri -tjetrit për shkak të zonave të shumta që shkaktojnë një sërë tensionesh të ndryshme, mund t'ju duhet të krijoni 2 ose më shumë ndarës të tensionit.

Llogaritja e vlerave tona të rezistencës për ndarësin e tensionit

Tani kemi një tension referimi, duhet të llogarisim se çfarë madhësie të rezistorëve na duhen për të krijuar një ndarës të tensionit që do të sigurojë tensionin tonë të referencës. Ne do të përdorim burimin e tensionit 12V DC (Vs) nga alarmi. Sidoqoftë, sipas hapit të mëparshëm kur matëm ushqimin DC 12V, në të vërtetë morëm 13.15V. Ne duhet të llogarisim ndarësin e tensionit duke përdorur këtë vlerë si burim.

Llogaritni Vout duke përdorur ligjin e ohms…

Vout = Vs x R2 / (R1 + R2)

… Ose përdorni një llogaritës të ndarësit të tensionit në internet:-)

Ju do të duhet të eksperimentoni me vlerat e rezistencës derisa të arrini daljen tuaj të dëshiruar. Në rastin tim, ai funksionoi me R1 = 6.8k ohm dhe R2 = 4.7K ohm, të llogaritur në formë të gjatë si më poshtë:

Vout = Vs x R2 / (R1 + R2)

Vout = 13.15 x 4700 / (6800 + 4700)

Vout = 61, 805 /11, 500

Vout = 5.37V

Hapi 4: Lidhni LM339

Instalimi i Wemos D1 Mini
Instalimi i Wemos D1 Mini

Ndarësi i Tensionit në hyrjet përmbysëse LM339

Siç u diskutua më parë në lidhje me krahasuesin LM339, do të duhen 2 x hyrje. Njëra do të jetë një tension nga çdo PIR në çdo kanal jo-përmbysës (+) terminal, tjetri do të jetë tensioni ynë referent në terminalin tonë përmbysës (-). Tensioni i referencës duhet të ushqejë të 4 hyrjet përmbysëse të krahasuesit. Fikni sistemin tuaj të alarmit para se të kryeni këto hapa.

  • Drejtoni një tel nga blloku 12V DC në sistemin e alarmit në hekurudhën + në tabelën tuaj të bukës *
  • Drejtoni një tel nga blloku GND në sistemin e alarmit në - hekurudhën në tryezën tuaj të bukës **
  • Instaloni krahasuesin LM339 në mes të tabelës së bukës (niveli tregon më të afërt me pin 1)
  • Instaloni rezistencat 2 x për të krijuar një qark ndarës të tensionit dhe tela për daljen e tensionit të ndarë
  • Drejtoni telat nga "tensioni i ndarë" Vout në secilin terminal përmbysës LM339

* K TSHILL: përdorni një kapëse aligatori për fuqinë nëse është e mundur, pasi kjo e bën më të lehtë sigurimin e energjisë ON/OFF për projektin tuaj ** E RORTNDANTSISHME! Mund të kërkohet një MOSFET NFSE po i aktivizoni Wemos nga paneli i Alarmit! Në rastin tim, LM339, Wemos dhe Alarm të gjithë marrin energji nga i njëjti burim (dmth: vetë sistemi i alarmit) Kjo më lejon të ndez fuqinë për gjithçka me një lidhje të vetme të energjisë. Sidoqoftë, si parazgjedhje kunjat GPIO në Wemos përcaktohen si kunja "INPUT" - që do të thotë se ata marrin çfarëdo tensioni që u hidhet dhe mbështeten në atë burim për të siguruar nivelet e sakta të tensionit (nivelet min/max) në mënyrë që Wemos të fitojë " t rrëzohet ose digjet. Në rastin tim, sistemi i alarmit merr fuqinë e tij dhe fillon të bëjë sekuencën e tij të nisjes shumë shpejt - aq shpejt në fakt, saqë e bën këtë para se Wemos të fillojë dhe të deklarojë kunjat e GPIO si "INPUT_PULLUP" (tensioni i tërhequr brenda brenda çip). Kjo nuk do të thotë se dallimet e tensionit do të bënin që Wemos të rrëzohej kur i gjithë sistemi të merrte energji. Mënyra e vetme për ta zgjidhur atë do të ishte fikja dhe aktivizimi manual i Wemos. Për të zgjidhur këtë, shtohet një MOSFET dhe vepron si një "ndërprerës logjik" për të ndezur LM339. Kjo i lejon Wemos të nisë, të vendosë kunjat e tij 4 x GPIO krahasues si "INPUT_PULLUP's", të vonojë disa sekonda dhe PASTAJ (përmes një kunje tjetër GPIO D5 të përcaktuar si një dalje) të dërgojë sinjal "HIGH" përmes GPIO pin D5 në MOSFET, i cili logjikisht ndez LM339. Unë do të rekomandoja instalime elektrike si më lart, por NFSE ju gjeni se Wemos rrëzohet si unë, atëherë ju do të duhet të përfshini MOSFET me një rezistencë tërheqëse 1 ohm poshtë. Për më shumë informacion se si ta bëni këtë, shihni fundin e këtij udhëzuesi.

Zonat e alarmit për hyrjet jo-përmbysëse LM339

Tani duhet të kalojmë telat nga secila zonë në panelin e kontrollit të alarmit në hyrjet e krahasuesit LM339. Me sistemin e alarmit ende të fikur, për secilën zonë futni një tel në çdo hyrje jo-përmbysëse (+) në krahasuesin LM339. Për shembull, në sistemin tim:

  • Tela nga Z1 shkon në hyrjen LM339 1+
  • Tela nga Z2 shkon në hyrjen LM339 2+
  • Teli nga Z3 shkon në hyrjen LM339 3+
  • Tela nga Z4 shkon në hyrjen LM339 4+

Referojuni pin-out-it të LM339 nën hapin 3 nëse keni një kujtesë (është e koduar me ngjyra me imazhin e pjatës së bukës). Pasi të keni mbaruar, paneli juaj i bukës duhet të duket i ngjashëm me imazhin e treguar në këtë hap.

Ndizni sistemin e alarmit dhe matni tensionin që del nga ndarësi i tensionit për të siguruar që ai të jetë i barabartë me tensionin tuaj të referencës siç është llogaritur më parë.

Hapi 5: Instalimi i Wemos D1 Mini

Lidhni mini Wemos D1

Tani ne kemi marrë të gjitha hyrjet LM339 të kujdesura, tani duhet të lidhim Wemos D1 mini. Çdo pin dalës LM339 shkon në një Wemos GPIO (hyrje/dalje për qëllime të përgjithshme) që ne do ta caktojmë përmes kodit si një kunj tërheqës hyrës. Wemos merr deri në 5V maksimumin si tensionin e tij Vcc (burimi i hyrjes) (megjithëse e rregullon këtë brenda në 3.3V) Ne do të përdorim një rregullator shumë të zakonshëm të tensionit LM7805 (EDIT: shiko më poshtë) për të rënë hekurudhën 12V në pjatën e bukës deri në 5V për të fuqizuar Wemos. Fleta e të dhënave për LM7805 tregon se ne kemi nevojë për një kondensator të lidhur në secilën anë të rregullatorit për të zbutur fuqinë, siç tregohet në imazhin e bukës. Këmba më e gjatë e kondensatorit është pozitive (+), kështu që sigurohuni që kjo të jetë lidhur në mënyrën e duhur.

Rregullatori i tensionit merr tensionin (kunja e majtë), tokëzimin (kunjin e mesëm) dhe tensionin jashtë (kunja e djathtë) Kontrolloni dy herë daljen nëse rregullatori juaj i tensionit ndryshon nga LM7805.

(EDIT: Kam gjetur se amperët që vijnë nga paneli i alarmit ishin shumë të lartë për LM7805. Kjo po shkaktonte shumë nxehtësi në lavamanin e vogël të LM7805 dhe duke shkaktuar dështimin e tij, dhe nga ana tjetër duke bërë që Wemos të ndalonin po punoj. Zëvendësova LM7805 dhe kondensatorët me një konvertues DC-DC në vend të tyre dhe nuk kam pasur probleme që atëherë. Këto janë shumë të lehta për t'u lidhur. Thjesht lidhni tensionin e hyrjes nga Alarmi, lidheni së pari me një multimetër dhe përdorni vidën e potenciometrit dhe rregulloni derisa tensioni i daljes të jetë V 5V)

Kunjat e hyrjes GPIO

Për këtë projekt, ne po përdorim kunjat e mëposhtëm:

  • zona Z1 => pin D1
  • zona Z2 => pin D2
  • zona Z3 => pin D3
  • zona Z4 => pin D5

Lidhni daljet nga LM339, në kunjat e lidhura GPIO në tabelën Wemos, sipas imazhit të bordit të bukës të treguar në këtë hap. Përsëri, unë kam koduar me ngjyra hyrjet dhe daljet që përputhen, për ta bërë më të lehtë për të parë se çfarë i referohet çfarë. Çdo pin GPIO në Arduino përcaktohet si një 'INPUT_PULLUP', që do të thotë se ato do të tërhiqen deri në 3.3V nën përdorim normal (IDLE) dhe LM339 do t'i tërheqë ato në tokë nëse PIR -i ndizet. Kodi zbulon ndryshimin HIGH në LOW dhe dërgon një mesazh me valë në softuerin tuaj të automatizimit në shtëpi. Nëse keni probleme me këtë punë, është e mundur që të keni inputet tuaja përmbysëse kundrejt jo-përmbysëse në mënyrë të gabuar (nëse voltazhi nga PIR-i juaj shkon i lartë kur aktivizohet, siç ndodh me shumicën e PIR-ve të hobi, atëherë do të dëshironi lidhjet anasjelltas)

Arduino IDE

Hiqni Wemos nga paneli, tani duhet të ngarkojmë kodin në të (lidhja alternative këtu) Unë nuk do të hyj në detaje se si ta bëjmë këtë, pasi ka shumë artikuj në internet për ngarkimin e kodit në Wemos ose ESP8266 të tjerë bordet e tipit. Lidheni kabllon tuaj USB në bordin Wemos dhe në kompjuterin tuaj dhe ndizni Arduino IDE. Shkarkoni kodin dhe hapeni atë në projektin tuaj. Ju do të duhet të siguroheni që tabela e saktë është instaluar dhe ngarkuar për projektin tuaj, si dhe portin e duhur COM të zgjedhur (Tools, Port). Ju gjithashtu do të keni nevojë për bibliotekat e duhura të instaluara (PubSubClient, ESP8266Wifi) Për të përfshirë bordin Wemos të përfshirë në skicën tuaj, shihni këtë artikull.

Ju do të duhet të ndryshoni linjat e mëposhtme të kodit dhe të zëvendësoni me SSID -in tuaj dhe fjalëkalimin për lidhjen tuaj pa tel. Gjithashtu, ndryshoni adresën IP për të treguar ndërmjetësin tuaj MQTT.

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* fjalëkalim = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (172, 16, 223, 254)

Pasi të ndryshohet, verifikoni kodin tuaj dhe pastaj ngarkoni në tabelën Wemos përmes një kabllo USB.

Shënime:

  • Nëse përdorni porte të ndryshme GPIO, do t'ju duhet të rregulloni kodin. Nëse jeni duke përdorur më shumë ose më pak zona sesa unë, do t'ju duhet gjithashtu të rregulloni kodin dhe TOTAL_ZONES = 4; konstante për t'iu përshtatur.
  • Me fillimin e sistemit tim të alarmit, sistemi i alarmit do të bënte një provë të energjisë për të 4 x PIR -të të cilët tërhoqën të gjithë GPIO -në e lidhur në tokë, duke bërë që Wemos të mendojë se zonat ishin duke u aktivizuar. Kodi do të injorojë dërgimin e mesazheve MQTT nëse i sheh të 4 zonat x aktive në të njëjtën kohë, pasi supozon se sistemi i alarmit po fuqizohet.

Lidhja alternative e shkarkimit për kodin K HTU

Hapi 6: Testimi dhe Konfigurimi OpenHAB

Testimi dhe Konfigurimi OpenHAB
Testimi dhe Konfigurimi OpenHAB

Testimi MQTT

MQTT është një sistem mesazhesh "abonohu / publiko". Një ose më shumë pajisje mund të flasin me një "ndërmjetës MQTT" dhe "të regjistrohen" në një temë të caktuar. Çdo mesazh në hyrje nga çdo pajisje tjetër që "publikohet" në të njëjtën temë, do të shtyhet nga ndërmjetësi në të gjitha pajisjet që janë pajtuar në të. Protocolshtë një protokoll jashtëzakonisht i lehtë dhe i thjeshtë për t’u përdorur dhe i përsosur si një sistem i thjeshtë nxitës siç është ai këtu. Për testim, mund të shikoni mesazhet hyrëse MQTT nga Wemos tek ndërmjetësi juaj MQTT duke ekzekutuar komandën e mëposhtme në serverin tuaj Mosquitto (Mosquitto është një nga shumë programet e ndërmjetësit MQTT në dispozicion). Kjo komandë pajtohet me mesazhet e ardhshme ruajtëse:

mosquitto_sub -v -t openhab/alarm/status

Ju duhet të shihni mesazhe hyrëse që vijnë nga Wemos çdo 30 sekonda ose më shumë me numrin "1" (që do të thotë "Unë jam gjallë") Nëse shihni "0" të vazhdueshëm (ose asnjë përgjigje) atëherë nuk ka komunikim. Pasi të shihni numrin 1 që vjen, atëherë kjo do të thotë që Wemos po komunikon me ndërmjetësin MQTT (kërkoni "MQTT Vullneti dhe Testamenti i Fundit" për më shumë informacion se si funksionon kjo, ose shihni këtë hyrje vërtet të mirë në blog)

Pasi të keni vërtetuar se komunikimi është funksional, ne mund të testojmë që një gjendje e zonës po raportohet përmes MQTT. Regjistrohuni në temën e mëposhtme (# është një wildcard)

mosquitto_sub -v -t openhab/alarm/#

Mesazhet e zakonshme të statusit duhet të vijnë, si dhe adresa IP e vetë Wemos. Ecni para një PIR, dhe gjithashtu duhet të shihni që informacioni i zonës të hyjë duke treguar se është I HAPUR, pastaj një sekondë apo më vonë, që është Mbyllur, i ngjashëm me sa vijon:

hapje/alarm/status 1

openhab/alarm/zone1 HAPUR

openhab/alarm/zone1 Mbyllur

Pasi të funksionojë, ne mund të konfigurojmë OpenHAB që ta ketë këtë të përfaqësuar bukur në GUI.

Konfigurimi OpenHAB

Ndryshimet e mëposhtme kërkohen në OpenHAB:

skedari i transformimit 'alarm.map': (opsional, për testim)

Mbyllur = IdleOPEN = E aktivizuarNULL = E panjohur- = E panjohur

skedari i transformimit 'status.map':

0 = Dështoi

1 = Online -= POSHT! NULL = e panjohur

skedari 'artikuj':

String alarmMonitorState "Alarm Monitor [MAP (status.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/status: state: default]"} String alarmMonitorIPAdresa "IP alarm alarmi [%s]" {mqtt = "<[mqttbroker: openhab/alarm/ipaddress: state: default]"} Numri zone1_Chart_Period "Zona 1 Grafik" Kontaktoni alarmZone1State "Zona 1 Gjendja [HAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/zone1: gjendja: e parazgjedhur "} String alarmZone1Trigger" PIR i sallës [%1 $ ta%1 $ tr] "Numri zone2_Chart_Periudha" Grafiku i Zonës 2 "Kontaktoni alarmZone2State" Gjendja 2 e Zonës [HARTA (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab/alarm/zone2: gjendja: e parazgjedhur "} String alarmZone2Trigger" Salla e parë PIR [%1 $ ta %1 $ tr] "Numri zone3_Chart_Periudha" Zona 3 Grafiku "Kontakt alarmiZone3State" Zonë 3 Gjendja [HAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: state: default "} String alarmZone3Trigger" PIR gjumi [%1 $ ta%1 $ tr] "Numri zone4_Chart_Periudha "Grafiku i Zonës 4" Kontaktoni alarmZone4State "Zona 4 Gjendja [HARTA (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: gjendja: e parazgjedhur "} String alarmZone4Trigger" PIR i sallës kryesore [%1 $ ta %1 $ tr]"

skedari 'sitemap' (përfshirë grafikimin rrd4j):

Artikulli i tekstit = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone1_Chart_Periodë etiketë = "Periudha" mappings = [0 = "Ora", 1 = "Dita", 2 = "Java"] Imazhi url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 0, zone1_Chart_Period = = Uninitialized] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 1] Url imazhi = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 2]}} Artikulli i tekstit = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Korniza {Ndrysho artikullin = zone2_Chart_Periodë label = "Periudha" mappings = [0 = "Ora", 1 = "Dita", 2 = "Java"] Imazhi url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 0, zone2_Chart_Period == Uninitialized] Imazhi url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] Imazhi url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 2]}} Artikulli i tekstit = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Korniza {Kalo artikullin = zone3_Chart_Periodika etiketë = "Periudha" = [0 = "Ora", 1 = "Dita", 2 = "Java"] Imazhi url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == Uninitialized] Imazh url = "https:// localhost: 8080/rrdchart.png" shikueshmëria = [zone3_Chart_Period == 1] Imazhi url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} Tekst item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Ndërro artikullin = zone4_Chart_Periodën etiketë = " Periudha "mappings = [0 =" Ora ", 1 =" Dita ", 2 =" Java "] Imazhi url =" https:// localhost: 8080/rrdchart.png "visibility = [zone4_Chart_Period == 0, zone4_Chart_Period == Uninitialized] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 1] Url imazhi = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // OPSIONALE por i përshtatshëm për diagnostikimin e statusit dhe adresës IP ss Artikull teksti = alarmMonitorState Artikull teksti = alarmMonitorIPAdresa

dosja 'rregulla':

rregulli "Ndryshimi i gjendjes së Zonës së Alarmit 1"

kur Artikulli alarmZone1State ndryshoi në OPEN atëherë postUpdate (alarmZone1Trigger, DataTimeType i ri ()) alarmZone1State.state = Fund i Mbyllur

rregulli "Ndryshimi i gjendjes së Zonës së Alarmit 2"

kur Artikulli alarmZone2State ndryshoi në OPEN atëherë postUpdate (alarmZone2Trigger, DataTimeType i ri ()) alarmZone2State.state = Fund i Mbyllur

rregulli "Ndryshimi i gjendjes së Zonës së Alarmit 3"

kur Artikulli alarmZone3State ndryshoi në OPEN atëherë postUpdate (alarmZone3Trigger, DateTimeType i ri ()) alarmZone3State.state = Fund i Mbyllur

rregulli "Ndryshimi i gjendjes së Zonës së Alarmit 4"

kur Artikulli alarmZone4State ndryshoi në OPEN atëherë postUpdate (alarmZone4Trigger, DateTimeType i ri ()) alarmZone4State.state = Mbyllur fundi

Ju mund të keni nevojë të ndryshoni konfigurimin e mësipërm të OpenHAB për t'iu përshtatur konfigurimit tuaj.

Nëse keni ndonjë problem me nxitjen e PIR -ve atëherë filloni nga fillimi dhe matni tensionet për secilën pjesë të qarkut. Pasi të jeni të kënaqur me këtë, kontrolloni instalimet tuaja elektrike, sigurohuni që ka një bazë të përbashkët, kontrolloni mesazhet në Wemos përmes një tastiere serike të korrigjimit, kontrolloni komunikimin MQTT dhe kontrolloni sintaksën e transformimit tuaj, artikujve dhe skedarëve të faqeve të internetit.

Paç fat!

Recommended: