Sisukord:

Alarm PIR WiFi -le (ja koduautomaatikale): 7 sammu (koos piltidega)
Alarm PIR WiFi -le (ja koduautomaatikale): 7 sammu (koos piltidega)

Video: Alarm PIR WiFi -le (ja koduautomaatikale): 7 sammu (koos piltidega)

Video: Alarm PIR WiFi -le (ja koduautomaatikale): 7 sammu (koos piltidega)
Video: fire alarm using IR sensor without Arduino🔥🔥#arduino #science 2024, Juuli
Anonim
Image
Image
Alarm PIR WiFi -le (ja koduautomaatikale)
Alarm PIR WiFi -le (ja koduautomaatikale)

Ülevaade

See juhend annab teile võimaluse vaadata oma koduautomaatika tarkvaras viimast kuupäeva/kellaaega (ja valikuliselt kordade ajalugu), millal teie majaalarmi PIR -id (passiivsed infrapunaandurid) käivitati. Selles projektis arutlen, kuidas kasutada koos OpenHAB -iga (tasuta koduautomaatikatarkvara, mida ma isiklikult kasutan), kuigi see töötab mis tahes muu koduautomaatika tarkvara või rakendusega, mis toetab MQTT -d (kirjeldatud ka selles artiklis hiljem). See juhend juhendab teid vajalike toimingute tegemisel, kuidas ühendada trükkplaat ja Wemos D1 mini (IOT -plaat, mis kasutab ESP8266 kiipi), mis puudutab teie häirejuhtimiskasti häiretsooni, nii et kui tsoon (mis sisaldab üks või mitu PIR -i), saadab Wemos juhtmeta sõnumi, kasutades MQTT -protokolli, teie koduautomaatika tarkvarale, mis omakorda kuvab selle päästiku viimase kuupäeva/kellaaja. Samuti pakutakse Wemode programmeerimiseks Arduino koodi.

Sissejuhatus

Ülaltoodud pilt on see, mida näen oma iPhone'i rakenduse OpenHAB ühe ekraani kaudu. Kuupäeva/kellaaja tekst on värvikoodiga, et kiiremini kuvada, millal PIR käivitati - see näitab punast (käivitatud viimase 1 minuti jooksul), oranži (käivitatud viimase 5 minuti jooksul), rohelist (käivitatud viimase 30 minuti jooksul), sinine (aktiveeritud viimase tunni jooksul) või muul juhul must. Kui klõpsate kuupäeval/kellaajal, kuvatakse ajalooline vaade PIR -päästikutele, kus 1 tähendab käivitatud ja 0 on jõude. Sellel on palju kasutusvõimalusi, näiteks võib see täiendada teie koduse kohaloleku lahendust, see võib tuvastada liikumist, kui olete eemal ja OpenHAB -i reeglite kaudu, saata märguandeid oma telefoni, saate seda kasutada nagu mina, et näha, kas mu lapsed on ärkamine keset ööd, mille käivitab PIR, mis asub väljaspool nende magamistuba!

OpenHAB on lihtsalt minu kasutatav koduautomaatika tarkvara, seal on palju teisi - ja kui nad toetavad MQTT -d, saate seda projekti hõlpsasti kohandada vastavalt teie kasutatavale tarkvarale.

Eeldused

See õpetatav eeldab, et teil on juba olemas (või seadistate):

  • Ilmselgelt kodune häiresüsteem koos PIR -idega (passiivsed infrapunaandurid) ja teil on juurdepääs häiresüsteemi juhtpaneelile vajaliku juhtmestiku ühendamiseks
  • OpenHAB (tasuta avatud lähtekoodiga koduautomaatikatarkvara) töötab, kuigi nagu arutatud, peaks see töötama iga koduautomaatika tarkvaraga, mis võib sisaldada MQTT -sidumist. Teise võimalusena saate koodi ise muuta, et see vastaks teie vajadustele.
  • Mosquitto MQTT (või sarnane) maakler on installitud ja sidumine on konfigureeritud OpenHAB -iga (MQTT on sõnumite tellimise/avaldamise tüüpi protokoll, mis on kerge ja sobib suurepäraselt seadmete vaheliseks suhtlemiseks)

Kui te ei käita OpenHABi ja MQTT maaklerit, vaadake seda suurepärast artiklit veebisaidil MakeUseOf

Mida mul vaja on?

Juhtmeta kontrolleri loomiseks peate hankima järgmised osad:

  • Wemos D1 mini V2 (ESP8266 traadita CHIP sisseehitatud)
  • LM339 võrdlus (see kontrollib PIR jõudeolekut ja käivitatud)
  • 5 V alalisvoolu toiteallikas Wemose jaoks (VÕI alalisvoolu alalisvoolu muundur. Märkus. LM7805 pingeregulaator ei pruugi selle rakenduse jaoks töötada, nagu hiljem selles projektis arutati)
  • Kaks takisti pingejaguri jaoks (suurus sõltub teie häirepingetest, mida arutatakse hiljem projektis)
  • Üks 1K oomi takisti, mis toimib LM339 toite juhtimiseks tõmbetakistina
  • Üks 2N7000 (või sarnane) MOSFET LM339 loogiliseks sisselülitamiseks (võib -olla valikuline, arutatakse hiljem projektis)
  • Sobiva suurusega leivaplaat vooluringi seadistamiseks ja testimiseks
  • Hunnik leivaplaadi juhtmeid, et kõik omavahel ühendada
  • Vajalikud tööriistad: külgmised lõikurid, ühe südamikuga traat
  • Alalisvoolu multimeeter (kohustuslik!)

1. samm: häiresüsteemi juhtkast

Häiresüsteemi juhtkast
Häiresüsteemi juhtkast

Kõigepealt mõned hoiatused ja lahtiütlused

Isiklikult on mul Boschi signalisatsioon. Soovitan tungivalt alla laadida oma alarmsüsteemi jaoks vastav juhend ja tutvuda sellega enne alustamist, kuna peate tsoonide ühendamiseks häiresüsteemi välja lülitama. Samuti soovitan teil enne selle alustamist lugeda see artikkel tervikuna!

Allpool on loetelu mõnest asjast, mida peaksite enne alustamist teadma - enne jätkamist veenduge, et loete ja mõistate neid kõiki! Ma ei võta endale vastutust, kui rikute oma häiresüsteemi ja/või peate selle paigaldamise eest oma paigaldajale maksma. Kui aga loete ja mõistate järgmist ning võtate vajalikke ettevaatusabinõusid, siis peaks kõik korras olema:

1. Minu häiresüsteemil oli karbis varupatarei ja kaane siseküljel oli avamislüliti (mis võimaldab juurdepääsu häiresüsteemiplaadile), nii et isegi häiresüsteem lülitatakse väliselt välja, kui eemaldate juhtpaneeli esipaneeli kast käivitas häire! Selle vältimiseks, kui ma projektiga töötasin, möödusin võltsimiskaitsest, eemaldades pistikupesa pistikupesast ja seejärel lühise lühiselt (paks punane juhe, nagu on näidatud ülaltoodud fotol)

2. Alarmsüsteemi taaskäivitamisel hakkas umbes 12 tunni pärast häirejuhtimispult veakoodidega piiksuma. Pärast veakoodide määramist käsiraamatu kaudu avastasin, et see hoiatab mind, et:

  • Kuupäeva/kellaaega ei määratud (mul oli vaja ümberkorraldamiseks juhendist pärit põhikoodi ja võtmejärjestust)
  • Et varuaku ei olnud ühendatud (lihtne parandada, unustasin aku uuesti sisse ühendada)

3. Minu häireseadmes on 4 x tsooni ühendusplokki (märgistusega Z1 -Z4) PIR -de ühendamiseks põhialarmi pardal, kuid minu häiresüsteem on tegelikult võimeline 8 tsooni. Iga tsooniühenduse plokk võib tegelikult käitada 2 x tsooni (Z1 teeb Z1 ja Z5, Z2 teeb Z2 ja Z6 jne). Häiresüsteemil on sisseehitatud võltsimiskaitse, mis peatab kellegi ütlemise, avab häiresüsteemi kaane, nagu eespool mainitud, või katkestab juhtmed PIR-i külge. See eristab iga tsooni võltsimist EOL (rea lõpp) takistite kaudu. Need on konkreetse suurusega takistid, mis asuvad "liini lõpus" - teisisõnu PIR -i (või juhtkasti tamperlüliti või sireenikarbi või mis iganes selle tsooni külge on ühendatud) sees kaitse” - tehniliselt, kui keegi katkestab kaablid PIR -i külge - kuna häiresüsteem ootab sellest PIR -ist teatud takistust, siis kui takistus peaks muutuma, eeldab ta, et keegi on süsteemi rikkunud ja käivitab häire.

Näiteks:

Minu alarmil on tsoonis "Z4" 2 juhtmest, üks lülitub välja minu koridoris asuva PIR -i juurde ja teine lülitub häirejuhtimiskasti rikkimislüliti juurde. Koridori PIR sees on sellel 3300 oomi takisti. Teisel juhtmel, mis liigub juhtploki tamperlüliti juurde, on jadaühendusega 6800 oomi takisti. Nii eristab häiresüsteem (loogiliselt) tampereid "Z4" ja "Z8". Samamoodi on tsoonis "Z3" PIR (3300 oomi takisti sees) ja ka sireeni tamperlüliti (6800 oomise takistiga), mis moodustab "Z7". Häirete paigaldaja oleks häiresüsteemi eelnevalt konfigureerinud, et ta teaks, milline seade on iga tsooniga ühendatud (ja muutis EOL-takisti suurust sobivaks, kuna häiresüsteem on programmeeritud teadma, kui suured on erinevad EOL-takistid.) mingil juhul ei tohiks nende takistite väärtust muuta!)

Seega, tuginedes ülaltoodule, kuna igasse tsooni võib olla ühendatud ka mitu seadet (erinevate takistuste väärtustega) ja mäletades valemit V = IR (pinge = amprit x takistus), võib see tähendada ka seda, et igal tsoonil võib olla erinev pinge. Mis viib meid järgmisele sammule, mõõtes iga tsooni tühikäigul vs käivitatud pinge …

2. samm: häiretsooni pinge mõõtmine

Häiretsooni pinge mõõtmine
Häiretsooni pinge mõõtmine
Häiretsooni pinge mõõtmine
Häiretsooni pinge mõõtmine

Kui olete oma häiresüsteemi põhiplaadile juurde pääsenud (ja avasite kaitselüliti, kui see on olemas; vastavalt eelmisele sammule), lülitage oma alarmsüsteem uuesti sisse. Nüüd peame mõõtma iga tsooni pinget, kui selle tühikäik (PIR -i ees pole liikumist) vs TRIGGERED (PIR on tuvastanud liikumise) Haarake pliiats ja paber, et saaksite oma pingenäidud kirja panna.

HOIATUS: Suurem osa teie häiresüsteemist töötab suure tõenäosusega 12 V alalisvoolul, kuid selle esialgne toide on 220 V (või 110 V) vahelduvvoolul, muundur muundab toite vahelduvvoolust alalisvooluks. LUGEGE kasutusjuhendit ja võtke täiendavaid ettevaatusabinõusid, veendudes, et te ei mõõda vahelduvvoolu klemme !!! Minu siinse häiresüsteemi ekraanipildi järgi näete, et pildi allosas on vahelduvvool, mis on muundatud 12 V alalisvooluks. Mõõdame esiletõstetud punastes kastides 12 V alalisvoolu. Ärge kunagi puudutage vahelduvvoolu. Olge äärmiselt ettevaatlik!

PIR pinge mõõtmine

Mul on 4 x PIR -i ühendatud Z1 kuni Z4. Mõõtke iga oma tsooni järgmiselt.

  1. Esiteks tuvastage häirepaneelil GND terminal ja tsooniklemmid. Olen need esile toonud oma Boschi häire käsiraamatust näidatud pildil.
  2. Haarake oma multimeeter ja seadke oma pinge mõõtmiseks 20V DC. Ühendage oma multimeetri must (COM) kaabel alarmi GND -klemmiga. Asetage oma multimeetri punane (+) juhe esimesele tsoonile - minu puhul silt "Z1". Kirjutage üles pinge näit. Tehke samad toimingud ülejäänud tsoonide puhul. Minu pinge mõõtmised on järgmised:
  • Z1 = 6,65 V
  • Z2 = 6,65 V.
  • Z3 = 7,92V
  • Z4 = 7,92V

Nagu ülaltoodud, on minu kahel esimesel tsoonil ka ainult PIR -id. Kahel viimasel tsoonil on ühendatud nii PIR -id kui ka võltsimiskaitse (Z3 juhtimiskasti tamper, Z4 sireeni tamper) Pange tähele pinge erinevusi.

3. Selle järgmise sammu jaoks vajate tõenäoliselt 2 inimest. Samuti peate teadma, milline PIR millises tsoonis asub. Minge tagasi ja lugege esimese tsooni pinget. Nüüd kutsuge keegi oma majast PIR -i ette jalutama, pinge peaks langema. Võtke teadmiseks uus pinge näit. Minu puhul loevad pinged PIR -ide käivitamisel järgmiselt:

  • Z1 = 0V
  • Z2 = 0V
  • Z3 = 4,30 V.
  • Z4 = 4,30 V.

Nagu ülaltoodud, näen, et tsoonide 1 ja 2 käivitamisel langeb pinge 6,65 V -lt 0 V -le. Kuid tsoonide 3 ja 4 käivitamisel langeb pinge 7,92 V -lt 4,30 V -le.

12V toiteallika mõõtmine

Oma projekti toiteks kasutame häirejuhtimiskastist 12V alalisvoolu terminali. Peame mõõtma häire pinget 12V alalisvoolu toiteallikast. Kuigi see näitab juba 12 V, peame teadma täpsemat näitu. Minu puhul näitab see tegelikult 13.15V. Kirjutage see üles, vajate seda väärtust järgmises etapis.

Miks me pinget mõõdame?

Põhjus, miks peame iga PIR -i jaoks pinget mõõtma, on meie loodud ahela tõttu. Selle projekti põhilise elektrilise komponendina kasutame LM339 nelja diferentsiaali võrdluskiipi (või nelja op-võimendi võrdlust). LM339-l on 4 sõltumatut pingevõrdlust (4 kanalit), kus iga kanal võtab 2 x sisendpinget (üks inverteeriv (-) ja üks mitte-inverteeriv (+) sisend, vt skeemi) Kui inverteeriva sisendpinge pinge peaks langema alla mitteinverteeriv pinge, tõmmatakse sellega seotud väljund maapinnale. Samamoodi, kui mitteinverteeriv sisendpinge langeb inverteerivast sisendist madalamale, tõmmatakse väljund kuni Vcc. Mugavalt on minu majas 4 korda PIR -häireid/tsoone - seega ühendatakse iga tsoon võrdlusseadme iga kanaliga. Kui teil on rohkem kui 4 x PIR -i, vajate rohkemate kanalitega võrdlust või mõnda muud LM339!

Märkus: LM339 tarbib energiat nanoamplites, seega ei mõjuta see olemasoleva häiresüsteemi EOL-takistust.

Kui see tekitab segadust, jätkake igal juhul järgmise sammuga, kui see on ühendatud, hakkab see mõistlikumaks muutuma!

3. samm: pingejaguri loomine

Image
Image

Mis on pingejagur?

Pingejagur on vooluahel, millel on 2 x takisti (või rohkem) järjestikku. Pakume pinget (Vin) esimesele takistile (R1) R1 teine jalg ühendub teise takisti (R2) esimese jalaga ja R2 teine ots ühendub GND -ga. Seejärel võtame R1 ja R2 vahelisest ühendusest väljundpinge (Vout). Sellest pingest saab meie võrdluspinge LM339 jaoks. Pingejagurite töö kohta lisateabe saamiseks vaadake Adohmsi YouTube'i videot

(Märkus: takistitel pole polaarsust, nii et neid saab ühendada mõlemal viisil)

Meie võrdluspinge arvutamine

Eeldades, et pinge langeb teie PIR -i käivitamisel (see peaks olema enamiku häirete puhul), siis püüame saavutada pinge, mis on peaaegu poolel teel meie madalaima jõudepinge ja kõrgeima käivitatud pinge vahel, sellest saab meie võrdluspinge.

Võttes näiteks minu äratuse…

Tsooni tühikäigu pinged olid Z1 = 6,65 V, Z2 = 6,65 V, Z3 = 7,92 V, Z4 = 7,92 V. Madalaim tühikäigupinge on seega 6,65 V.

Tsooni käivitatud pinged olid: Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V. Seetõttu on kõrgeim käivitatud pinge 4,30 V.

Seega peame valima numbri poolel teel vahemikus 4.30V kuni 6.65V (ei pea olema täpne, vaid ligikaudne). Minu puhul peab minu võrdluspinge olema umbes 5.46V. Märkus. Kui madalaim tühikäigul ja kõrgeim käivitatud pinge on üksteisele väga lähedal mitme tsooni tõttu, mis põhjustavad erinevaid pingeid, peate võib -olla looma 2 või enam pingejaoturit.

Pingejaguri takisti väärtuste arvutamine

Nüüd on meil võrdluspinge, peame arvutama, millise suurusega takistid on vajalikud pingejaguri loomiseks, mis tagab meie võrdluspinge. Me kasutame häire 12 V alalisvoolu pingeallikat (Vs). Kuid nagu eelmises etapis 12 V alalisvoolu mõõtmisel, saime tegelikult 13,15 V. Peame arvutama pingejaguri, kasutades seda väärtust allikana.

Arvutage Vout, kasutades oomi seadust …

Vout = Vs x R2 / (R1 + R2)

… või kasutage võrgupinge jagaja kalkulaatorit:-)

Peate takistite väärtustega katsetama, kuni saavutate soovitud väljundi. Minu puhul õnnestus see R1 = 6,8 k oomi ja R2 = 4,7 K oomi puhul, mis on arvutatud pikas vormis järgmiselt:

Vout = Vs x R2 / (R1 + R2)

Vout = 13,15 x 4700 / (6800 + 4700)

Vout = 61, 805/11, 500

Vout = 5,37 V

Samm: ühendage LM339 juhtmega

Wemos D1 Mini ühendamine
Wemos D1 Mini ühendamine

Pingejagur LM339 inverteerivatele sisenditele

Nagu varem LM339 võrdluse kohta arutatud, võtab see 2 korda sisendit. Üks on pinge igast PIR-ist igale kanalile, mis ei pööra ümber (+), teine on meie võrdluspinge meie inverteerivale (-) klemmile. Võrdluspinge peab toitma kõiki 4 võrdlevat inverteerivat sisendit. Enne nende toimingute tegemist lülitage alarmsüsteem välja.

  • Viige traat signalisatsiooni 12 V alalisvoolu plokist kuni leivaplaadil asuva + rööpani *
  • Viige traat signalisatsiooni GND plokist leivaplaadi rööpani **
  • Paigaldage võrdlusmasin LM339 leivalaua keskele (sälk näitab tihvti 1 lähimat)
  • Paigaldage 2 x takistit, et luua pingejaotusahel ja jagatud pinge väljundjuhtmed
  • Viige juhtmed pingest jagatud Vout -ist iga LM339 inverterklemmiga

* NÕUANNE: kasutage toiteallikaks võimaluse korral alligaatoriklambrit, kuna see hõlbustab teie projekti ON/OFF toite pakkumist ** TÄHTIS! MOSFET võib olla vajalik, kui lülitate Wemos sisse häirepaneelilt! Minu puhul saavad LM339, Wemos ja Alarm kõik toite samast allikast (st: häiresüsteem ise). See võimaldab mul ühe toiteühendusega sisse lülitada kõik. Vaikimisi on Wemose GPIO -tihvtid määratletud kui "INPUT" -nööpnõelad - see tähendab, et nad võtavad vastu ükskõik millise pinge ja neile tugineda, et Wemos võitis õige pinge (min/max). t kokku kukkuda või läbi põleda. Minu puhul saab häiresüsteem oma jõu ja hakkab oma käivitusjärjestust tegema väga kiiresti - tegelikult nii kiiresti, et teeb seda enne, kui Wemos saab käivitada ja kuulutada GPIO -nööpnõelad kui "INPUT_PULLUP" (pinge tõuseb sisemiselt kiip). See ei tähenda, et pingeerinevused põhjustaksid Wemose krahhi, kui kogu süsteem toite saab. Ainus võimalus sellest oleks Wemos käsitsi välja ja sisse lülitada. Selle lahendamiseks lisatakse MOSFET ja see toimib "loogilise lülitina" LM339 sisselülitamiseks. See võimaldab Wemodel käivituda, seada oma 4 x võrdlus GPIO tihvtidele "INPUT_PULLUP's", viivitada paar sekundit ja seejärel saata (teise GPIO pin D5 kaudu, mis on määratletud väljundina) "HIGH" signaali GPIO pin D5 kaudu MOSFETile, mis lülitab loogiliselt LM339 sisse. Ma soovitaksin ühendada nii nagu eespool, kuid KUI leiate, et Wemos jookseb kokku nagu mina, siis peate lisama MOSFET -i koos 1k oomise tõmbetakistiga. Lisateavet selle kohta, kuidas seda teha, leiate selle juhendi lõpust.

Häiretsoonid LM339 mitteinverteerivatele sisenditele

Nüüd peame juhtima häirekeskuse igast tsoonist juhtmeid LM339 võrdlussisenditesse. Kui häiresüsteem on endiselt välja lülitatud, toite iga tsooni jaoks traat LM339 võrdlusseadme igasse inverteerimata (+) sisendisse. Näiteks minu süsteemis:

  • Juhe Z1 -st läheb LM339 sisendisse 1+
  • Juhe Z2 -st läheb LM339 sisendisse 2+
  • Juhe Z3 -st läheb LM339 sisendisse 3+
  • Juhe Z4 -st läheb LM339 sisendisse 4+

Kui soovite meelde tuletada, vaadake 3. sammu LM339 pistikut (see on värvitud leivalaua kujutisega). Kui see on tehtud, peaks teie leivalaud tunduma selles etapis näidatud pildile sarnane.

Lülitage häiresüsteem sisse ja mõõtke pingejagurist väljuv pinge, et veenduda, et see võrdub teie varem arvutatud võrdluspingega.

Samm: Wemos D1 Mini ühendamine

Wemos D1 mini juhtmestik

Nüüd oleme hoolitsenud kõigi LM339 sisendite eest, nüüd peame ühendama Wemos D1 mini. Iga LM339 väljundnõel läheb Wemos GPIO (üldotstarbeline sisend/väljund) tihvti juurde, mille määrame koodi kaudu sisendtõmbeks. Wemose Vcc (sisendallika) pinge on kuni 5 V. (kuigi see reguleerib seda sisemiselt kuni 3,3 V). Me kasutame väga tavalist LM7805 pingeregulaatorit (EDIT: vt allpool), et langetada leivaplaadi 12 V rööp alla. 5 V Wemose toiteks. LM7805 andmeleht näitab, et vajame võimsuse silumiseks kondensaatorit, mis on ühendatud regulaatori mõlemale küljele, nagu on näidatud leivalaua pildil. Kondensaatori pikem jalg on positiivne (+), nii et veenduge, et see oleks õigesti ühendatud.

Pingeregulaator võtab pinge sisse (vasakpoolne tihvt), maandus (keskmine tihvt) ja pinge välja (parempoolne tihvt) Kontrollige veel kord, kui teie pingeregulaator erineb LM7805-st.

(EDIT: Leidsin, et häirepaneelilt tulevad võimendid olid LM7805 käsitsemiseks liiga kõrged. See põhjustas LM7805 väikeses jahutusradiaatoris palju soojust ja põhjustas selle rikke ning omakorda Wemose seiskumise töökorras. Asendasin LM7805 ja kondensaatorid alalisvoolu alalisvoolu muunduriga ja pärast seda pole probleeme olnud. Neid on väga lihtne ühendada. Lihtsalt ühendage häire sisendpinge, ühendage kõigepealt multimeetriga ja kasutage potentsiomeetri kruvi ja reguleerige, kuni väljundpinge on ~ 5V)

GPIO sisendpoldid

Selle projekti jaoks kasutame järgmisi tihvte:

  • tsoon Z1 => tihvt D1
  • tsoon Z2 => tihvt D2
  • tsoon Z3 => tihvt D3
  • tsoon Z4 => tihvt D5

Ühendage väljundid LM339 -st Wemose tahvlil olevate GPIO -tihvtidega vastavalt selles etapis näidatud leivaplaadi pildile. Jällegi on mul sisendid ja vastavad väljundid värvikoodiga, et oleks lihtsam näha, mis millele viitab. Iga Arduino GPIO -tihvt on määratletud kui „INPUT_PULLUP”, mis tähendab, et neid tõmmatakse tavalise kasutamise korral (IDLE) kuni 3,3 V -ni ja LM339 tõmbab need PIR -i käivitamisel maapinnale. Kood tuvastab HIGH to LOW muutuse ja saadab juhtmeta sõnumi teie koduautomaatika tarkvarale. Kui teil on selle tööga probleeme, on võimalik, et teie inverteerivad ja mitte-inverteerivad sisendid on valesti (kui teie PIR-i pinge läheb käivitamisel kõrgeks, nagu juhtub enamiku hobi-PIR-ide puhul, siis soovite ühendusi vastupidi)

Arduino IDE

Eemaldage Wemos leivaplaadilt, peame nüüd sellele koodi üles laadima (alternatiivne link siin). Ma ei hakka selle üksikasju üksikasjalikult kirjeldama, kuna veebis on palju artikleid koodi üleslaadimise kohta Wemosse või muusse ESP8266 -sse tüüpi lauad. Ühendage oma USB -kaabel Wemose plaadiga ja oma arvutisse ning lülitage Arduino IDE sisse. Laadige kood alla ja avage see oma projektis. Peate veenduma, et teie projekti jaoks on paigaldatud ja laaditud õige plaat ning valitud on õige COM -port (Tööriistad, port). Samuti peate installima sobivad teegid (PubSubClient, ESP8266Wifi) Wemose tahvli eskiisi lisamiseks lugege seda artiklit.

Peate muutma järgmisi koodiridu ja asendama oma traadita ühenduse SSID ja parooliga. Muutke ka IP -aadress, et osutada oma MQTT maaklerile.

// Wifi

const char* ssid = "sinu_wifi_asja_siin"; const char* parool = "sinu_wifi_parool_siin"; // MQTT maakleri IPAddress MQTT_SERVER (172, 16, 223, 254)

Pärast muutmist kontrollige oma koodi ja laadige see USB -kaabli kaudu Wemose tahvlile üles.

Märkused:

  • Kui kasutate erinevaid GPIO -porte, peate koodi kohandama. Kui kasutate rohkem või vähem tsoone kui mina, peate ka koodi kohandama ja TOTAL_ZONES = 4; pidevalt sobiv.
  • Minu häiresüsteemi käivitamisel teeks häiresüsteem kõigi 4 x PIR -i võimsustesti, mis tõmbas kõik ühendatud GPIO -d maasse, mistõttu Wemos arvas, et tsoonid käivitatakse. Kood ignoreerib MQTT -sõnumite saatmist, kui see näeb kõiki 4 x tsooni korraga aktiivseid, kuna eeldab, et häiresüsteem lülitub sisse.

Alternatiivne allalaadimislink koodile SIIN

6. samm: testimine ja OpenHAB -i konfigureerimine

Testimine ja OpenHAB -i konfigureerimine
Testimine ja OpenHAB -i konfigureerimine

MQTT testimine

MQTT on sõnumite tellimise / avaldamise süsteem. Üks või mitu seadet saavad rääkida "MQTT maakleriga" ja "tellida" teatud teema. Kõik sissetulevad sõnumid mis tahes muult seadmelt, mis on "avaldatud" samal teemal, lükatakse maakleri kaudu välja kõikidele seda tellinud seadmetele. See on äärmiselt kerge ja hõlpsasti kasutatav protokoll ning sobib ideaalselt lihtsaks käivitussüsteemiks, nagu siin. Testimiseks saate vaadata sissetulevaid MQTT -sõnumeid Wemost oma MQTT -vahendajale, käivitades oma Mosquitto serveris järgmise käsu (Mosquitto on üks paljudest saadaval olevatest MQTT Brokeri tarkvaradest). See käsk tellib sissetulevad hoiatussõnumid:

mosquitto_sub -v -t openhab/alarm/status

Peaksite nägema Wemoselt saabuvaid sissetulevaid sõnumeid iga 30 sekundi tagant ja numbriga "1" (see tähendab "ma olen elus"). Kui näete numbrit 1 tulemas, tähendab see, et Wemos suhtleb MQTT maakleriga (lisateabe saamiseks selle toimimise kohta otsige "MQTT Last Will and Testament" või vaadake seda tõeliselt head ajaveebi kirjet)

Kui olete tõestanud, et side on funktsionaalne, saame testida, kas tsooni olekust teatatakse MQTT kaudu. Telli järgmine teema (# on metamärk)

mosquitto_sub -v -t openhab/alarm/#

Tavalised olekusõnumid peaksid tulema, nagu ka Wemose enda IP -aadress. Kõndige PIR -i ees ja näete ka tsooniteavet, mis näitab, et see on AVATUD, siis sekund või hiljem, et see on SULETUD, sarnaselt järgmisega:

openhab/alarm/olek 1

openhab/alarm/zone1 OPEN

openhab/alarm/zone1 SULETUD

Kui see töötab, saame konfigureerida OpenHAB -i nii, et see oleks GUI -s kenasti esindatud.

OpenHABi konfiguratsioon

OpenHAB -i jaoks on vajalikud järgmised muudatused:

'alarm.map' teisendusfail: (valikuline, testimiseks)

SULETUD = IdleOPEN = KäivitatudNULL = Teadmata- = Teadmata

'status.map' teisendusfail:

0 = ebaõnnestus

1 = Internetis -= ALLA! NULL = teadmata

fail „üksused”:

String alarmMonitorState "Alarm Monitor [MAP (status.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/status: state: default]"} String alarmMonitorIPAddress "Alarm Monitor IP [%s]" {mqtt = "<[mqttbroker: openhab/alarm/ipaddress: state: default]"} Number zone1_Chart_Period "Zone 1 Chart" Kontakt alarmZone1State "1. tsooni olek [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/zone1: olek: vaikimisi "} String alarmZone1Trigger" Lounge PIR [%1 $ ta%1 $ tr] "Number zone2_Chart_Period" Zone 2 Chart "Kontakt alarmZone2State" Zone 2 State [MAP (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab/alarm/zone2: state: default "} String alarmZone2Trigger" Esimene saal PIR [%1 $ ta %1 $ tr] "Number zone3_Chart_Period" 3. tsooni diagramm "Kontakt alarmZone3State" Zone 3 Olek [MAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: state: default "} String alarmZone3Trigger" Magamistoa PIR [%1 $ ta%1 $ tr] "Number zone4_Chart_Period "Zone 4 Chart" Kontakt alarmZone4State "Zone 4 State [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: olek: vaikimisi "} String alarmZone4Trigger" Peasaal PIR [%1 $ ta %1 $ tr]"

"saidiplaani" fail (sh rrd4j graafik):

Tekstiüksus = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Raam {Switch item = zone1_Chart_Period label = "Perioodi" kaardistused = [0 = "Tund", 1 = "Päev", 2 = "Nädal"] Pildi URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 0, zone1_Chart_Period = = Alustamata] Pildi URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 1] Pildi URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 2]}} Tekstiüksus = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Raam {Switch item = zone2_Chart_Period label = "Periood" kaardistused = [0 = "Tund", 1 = "Päev", 2 = "Nädal"] Pildi URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 0, zone2_Chart_Period == Alustamata] Pildi URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] Pildi URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 2]}} Tekstiüksus = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Raam {Switch item = zone3_Chart_Period label = "Periood" = [0 = "Tund", 1 = "Päev", 2 = "Nädal"] Pildi URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == Alustamata] Pilt url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 1] Pildi URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} Tekst item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Raam {Switch item = zone4_Chart_Period label = " Periood "kaardistused = [0 =" Tund ", 1 =" Päev ", 2 =" Nädal "] Pildi URL =" https:// localhost: 8080/rrdchart.png "visibility = [zone4_Chart_Period == 0, zone4_Chart_Period == Alustamata] Pildi URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 1] Pildi URL = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // VALIKULINE, kuid mugav oleku ja IP -aadressi diagnoosimiseks ss Tekstiüksus = alarmMonitorState Tekstielement = alarmMonitorIPAddress

fail "reeglid":

reegel "Alarm Zone 1 oleku muutmine"

kui üksus alarmZone1State muutus OPEN ja postUpdate (alarmZone1Trigger, new DateTimeType ()) alarmZone1State.state = SULETUD lõpp

reegel "Alarm Zone 2 oleku muutmine"

kui üksus alarmZone2State muudeti OPEN ja postUpdate (alarmZone2Trigger, new DateTimeType ()) alarmZone2State.state = SULETUD lõpp

reegel "Alarm Zone 3 oleku muutmine"

kui üksus alarmZone3State muutus OPEN ja postUpdate (alarmZone3Trigger, new DateTimeType ()) alarmZone3State.state = SULETUD lõpp

reegel "Alarm Zone 4 oleku muutmine"

kui üksus alarmZone4State muudeti OPEN ja postUpdate (alarmZone4Trigger, new DateTimeType ()) alarmZone4State.state = SULETUD lõpp

Võimalik, et peate ülaltoodud OpenHAB -i konfiguratsiooni veidi muutma, et see sobiks teie seadistusega.

Kui teil on probleeme PIR -ide käivitamisega, alustage algusest ja mõõtke vooluahela iga osa pingeid. Kui olete sellega rahul, kontrollige oma juhtmestikku, veenduge, et on olemas ühine alus, kontrollige Wemos sõnumeid jadamisi silumiskonsooli kaudu, kontrollige MQTT -ühendust ja kontrollige teisenduse, üksuste ja saidikaardi failide süntaksit.

Edu!

Soovitan: