Kazalo:

Alarm PIR do WiFi (in domača avtomatizacija): 7 korakov (s slikami)
Alarm PIR do WiFi (in domača avtomatizacija): 7 korakov (s slikami)

Video: Alarm PIR do WiFi (in domača avtomatizacija): 7 korakov (s slikami)

Video: Alarm PIR do WiFi (in domača avtomatizacija): 7 korakov (s slikami)
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, Oktober
Anonim
Image
Image
Alarm PIR to WiFi (in domača avtomatizacija)
Alarm PIR to WiFi (in domača avtomatizacija)

Pregled

Ta navodila vam bodo v programski opremi za avtomatizacijo doma omogočila ogled zadnjega datuma/časa (in neobvezno zgodovino časov), ko so bili sproženi PIR -ji (pasivni infrardeči senzorji) vašega hišnega alarma. V tem projektu bom razpravljal o uporabi z OpenHAB (brezplačno programsko opremo za avtomatizacijo doma, ki jo osebno uporabljam), čeprav bo delovala s katero koli drugo programsko opremo ali aplikacijo za avtomatizacijo doma, ki podpira MQTT (opisano tudi kasneje v tem članku). Ta navodila vas bodo vodila skozi potrebne korake, kako priključiti vezje in Wemos D1 mini (plošča IOT, ki uporablja čip ESP8266), ki se dotika alarmnih območij v nadzorni omarici za alarm, tako da ko območje (ki vsebuje eden ali več PIR -jev), Wemos brezžično pošlje sporočilo s protokolom MQTT v vašo programsko opremo za avtomatizacijo doma, ki nato prikaže zadnji datum/čas tega sprožilca. Na voljo je tudi koda Arduino za programiranje Wemosa.

Uvod

Zgornja slika je tisto, kar vidim na enem od zaslonov v aplikaciji OpenHAB na svojem iPhoneu. Besedilo datuma/časa je barvno kodirano, da omogoča hitrejšo predstavo, kdaj je bil sprožen PIR - prikazal bo rdečo (sproženo v zadnji 1 minuti), oranžno (sproženo v zadnjih 5 minutah), zeleno (sproženo v zadnjih 30 minutah), modra (sprožena v zadnji uri) ali drugače, črna. Če kliknete datum/čas, se prikaže zgodovinski pogled sprožilcev PIR, kjer 1 pomeni sproženo, 0 pa miruje. Za to obstaja veliko uporab, na primer bi lahko dopolnil vašo rešitev za prisotnost na domu, lahko zazna gibanje, če ste odsotni in prek pravil OpenHAB, pošlje obvestila na vaš telefon, lahko ga uporabite kot jaz, da vidim, če so moji otroci vstajanje sredi noči, ki ga sproži PIR, ki prebiva zunaj njihovih spalnic!

OpenHAB je preprosto programska oprema za domačo avtomatizacijo, ki jo uporabljam, obstaja še veliko drugih - in če podpirajo MQTT, lahko ta projekt preprosto prilagodite programski opremi, ki jo uporabljate.

Predpostavke

Ta navodila zahtevajo, da že imate (ali pa jih boste nastavili):

  • Očitno je domači alarmni sistem s PIR (pasivnimi infrardečimi senzorji) in da imate dostop do nadzorne omarice za alarm, da povežete potrebno ožičenje
  • OpenHAB (brezplačna odprtokodna programska oprema za domačo avtomatizacijo), ki se izvaja, čeprav bi morala, kot je razloženo, delovati s katero koli programsko opremo za avtomatizacijo doma, ki lahko vsebuje vezavo MQTT. Lahko pa tudi sami spremenite kodo, ki ustreza vašim potrebam.
  • Nameščen posrednik Mosquitto MQTT (ali podoben) in vezava konfigurirana z OpenHAB (MQTT je protokol za naročilo/objavo sporočil, ki je lahek in odličen za komunikacijo med napravami)

Če ne uporabljate OpenHAB in posrednika MQTT, si oglejte ta odličen članek na spletnem mestu MakeUseOf

Kaj potrebujem?

Če želite ustvariti brezžični krmilnik, morate pridobiti naslednje dele:

  • Wemos D1 mini V2 (ima vgrajen brezžični CHIP ESP8266)
  • Primerjalnik LM339 (s tem boste preverili stanje prostega teka PIR v primerjavi s sproženim)
  • 5V enosmerni vir napajanja za Wemos (ALI pretvornik DC-DC. Opomba: napetostni regulator LM7805 morda ne bo deloval za to aplikacijo, kot je opisano kasneje v tem projektu)
  • Dva upora za delilec napetosti (velikost bo odvisna od vaših alarmnih napetosti, o katerih bomo razpravljali kasneje v projektu)
  • En 1K ohmski upor, ki deluje kot izvlečni upor za nadzor moči LM339
  • En 2N7000 (ali podoben) MOSFET za logičen vklop LM339 (po možnosti neobvezno, obravnavano kasneje v projektu)
  • Okvir primerne velikosti za nastavitev in preskušanje vezja
  • Kup žic za mizo za povezovanje vsega skupaj
  • Potrebno orodje: stranski rezalniki, enožilna žica
  • DC-multimeter (obvezno!)

1. korak: Nadzorna omarica alarmnega sistema

Nadzorna omarica alarmnega sistema
Nadzorna omarica alarmnega sistema

Najprej nekaj opozoril in zavrnitev odgovornosti

Osebno imam Boschev alarmni sistem. Priporočam, da prenesete ustrezen priročnik za vaš poseben alarmni sistem in se z njim seznanite, preden začnete, saj boste morali alarmni sistem izklopiti, da povežete območja. Priporočam tudi, da pred začetkom preberete ta članek v celoti!

Spodaj je seznam nekaj stvari, ki jih morate vedeti, preden začnete - poskrbite, da boste prebrali in razumeli vsako od njih, preden nadaljujete! Ne prevzemam nobene odgovornosti, če pokvarite alarmni sistem in/ali morate monterju plačati popravilo. Če pa berete in razumete naslednje in sprejmete potrebne varnostne ukrepe, bi morali biti v redu:

1. Moj alarmni sistem je imel v škatli rezervno baterijo, prav tako pa je imel na notranji strani pokrova stikalo za odpiranje (ki omogoča dostop do plošče alarmnega sistema), tako da je pri odstranjevanju sprednje plošče upravljalnika tudi zunanji izklop alarma polje je sprožilo alarm! Da bi se temu izognil, medtem ko sem delal na projektu, sem zaobšel zaščito pred nedovoljenim posegom, tako da sem odklopil in nato kratek stik stikal za vtikanje (debela rdeča žica, kot je prikazano na zgornji fotografiji)

2. Pri ponovnem zagonu alarmnega sistema je po približno 12 urah alarmna nadzorna plošča začela piskati s kodami napak. Ko sem v priročniku določil kode napak, sem ugotovil, da me opozarja:

  • Datum/čas ni bil nastavljen (za ponovno konfiguracijo sem potreboval glavno kodo in zaporedje tipk iz priročnika)
  • Da rezervna baterija ni priključena (enostavno popraviti, pozabil sem ponovno vstaviti baterijo)

3. V mojem alarmu so 4 x conski priključni bloki (z oznako Z1 -Z4), na katere se lahko PIR priključijo na glavni alarmni plošči - moj alarmni sistem je dejansko sposoben 8 con. Vsak blok za povezavo z območjem lahko dejansko izvaja 2 x coni (Z1 naredi Z1 in Z5, Z2 naredi Z2 in Z6 itd.). Alarmni sistem ima vgrajeno zaščito pred nedovoljenim posegom, ki preprečuje, da bi kdo rekel, odpiranje pokrova alarmnega sistema, kot je omenjeno zgoraj, ali prerez žic na PIR. Loči vsako zonsko poseganje prek uporov EOL (konec linije). To so upori posebne velikosti, ki se nahajajo na "koncu vrstice" - z drugimi besedami, znotraj PIR (ali stikala za krmiljenje krmilne omarice ali škatle za sireno ali karkoli je priključeno na to območje) Kot je omenjeno, se ti upori uporabljajo kot "posegi" zaščita ' - tehnično, če nekdo prereže kable na PIR - ker alarmni sistem pričakuje, da bo videl določen upor od tega PIR, potem, če se upor spremeni, predpostavlja, da je nekdo posegal v sistem in bo sprožil alarm.

Na primer:

Na mojem alarmu ima cona "Z4" 2 žici, ena gre na PIR v mojem hodniku, druga pa na stikalo za vklop alarmne omarice. Znotraj hodnika PIR ima upor 3300 ohmov. Druga žica, ki vodi do stikala za krmiljenje krmilne omarice, ima 6800 ohmski upor, ki je zaporedno povezan. Tako alarmni sistem (logično) razlikuje med posegi "Z4" in "Z8". Podobno ima območje "Z3" PIR (z uporom 3300 ohmov) in tudi stikalo za vklop sirene (z uporom 6800 ohmov v njem), ki sestavlja "Z7". Namestitveni program alarma bi vnaprej konfiguriral alarmni sistem, tako da ve, katera naprava je povezana z vsako cono (in spremenil velikost upora EOL, da ustreza, ker je alarmni sistem programiran tako, da ve, kakšne velikosti so različni upori EOL. v nobenem primeru ne smete spremeniti vrednosti teh uporov!)

Na podlagi zgoraj navedenega, ker ima lahko vsako območje priključeno tudi več naprav (z različnimi vrednostmi upora) in zapomniti formulo V = IR (napetost = amperi x upor), potem lahko to pomeni tudi, da ima lahko vsako območje različne napetosti. To nas pripelje do naslednjega koraka, merjenja vsake cone IDLE proti TRIGGERED napetosti …

2. korak: Merjenje napetosti alarmnega območja

Merjenje napetosti alarmnega območja
Merjenje napetosti alarmnega območja
Merjenje napetosti alarmnega območja
Merjenje napetosti alarmnega območja

Ko dobite dostop do glavne plošče v svojem alarmnem sistemu (in zaobidete stikalo za nedovoljeno upravljanje, če ga imate; v skladu s prejšnjim korakom), znova vklopite alarmni sistem. Zdaj moramo izmeriti napetost vsakega območja, ko njegov IDLE (brez premikanja pred PIR) v primerjavi s TRIGGERED (PIR je zaznal gibanje) Vzemite pero in papir, da si lahko zapišete odčitke napetosti.

OPOZORILO: Največji del vašega alarmnega sistema bo najverjetneje deloval na 12V DC, vendar bo imel začetno napajanje pri 220V (ali 110V) AC, transformator pa pretvarja moč iz AC v DC. PREBERITE priročnik in bodite še posebej previdni, saj NE merite nobenih priključkov za izmenični tok !!! Po posnetku zaslona mojega alarmnega sistema na tej strani lahko vidite, da je na samem dnu slike vklopljen izmenični tok, preoblikovan v 12 V DC. Merimo 12V DC v označenih rdečih škatlah. Nikoli se ne dotikajte napajalnika. Bodite izjemno previdni!

Merjenje PIR napetosti

Imam 4 x PIR priključene na Z1 do Z4. Vsako območje izmerite na naslednji način.

  1. Najprej na alarmni plošči določite priključke GND in sponke območja. To sem poudaril na sliki, prikazani v priročniku mojega Boschevega alarma.
  2. Primite multimeter in nastavite merjenje napetosti na 20V DC. Črni (COM) kabel iz multimetra priključite na terminal GND na alarmu. Rdeči (+) kabel iz multimetra postavite na prvo območje - v mojem primeru z oznako "Z1". Zapišite odčitavanje napetosti. Enake korake izvedite za preostala območja. Moje meritve napetosti so naslednje:
  • Z1 = 6,65V
  • Z2 = 6,65V
  • Z3 = 7,92V
  • Z4 = 7,92V

Kot je navedeno zgoraj, imata moja prva dva območja tudi PIR -je. Zadnji dve coni imata pritrjena PIR in zaščito pred nedovoljenim posegom (poseg v krmilno omarico Z3, poseg sirene Z4) Upoštevajte razlike v napetosti.

3. Za naslednji korak boste verjetno potrebovali 2 osebi. Prav tako boste morali vedeti, kateri PIR je v katerem območju. Vrnite se in preberite napetost na prvi coni. Zdaj naj nekdo v vaši hiši hodi pred PIR, napetost bi morala pasti. Upoštevajte novo odčitavanje napetosti. V mojem primeru se napetosti med sprožitvijo PIR -jev odčitajo na naslednji način:

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

Glede na zgoraj navedeno lahko vidim, da ko se sprožita coni 1 in 2, napetost pade s 6,65 V na 0 V. Ko pa se sprožita coni 3 in 4, napetost pade s 7,92 V na 4,30 V.

Merjenje 12V napajanja

Za napajanje našega projekta bomo uporabili 12V DC priključek iz nadzorne omarice za alarm. Na alarmu moramo izmeriti napetost iz 12V DC napajanja. Čeprav že navaja 12V, moramo vedeti natančnejše branje. V mojem primeru dejansko bere 13,15 V. Zapišite to, to vrednost boste potrebovali v naslednjem koraku.

Zakaj merimo napetost?

Razlog, da moramo meriti napetost za vsak PIR, je vezje, ki ga bomo ustvarili. Za osrednjo električno komponento tega projekta bomo uporabili štirikratni diferencialni primerjalni čip LM339 (ali primerjalnik štirikolesnih op-amp). LM339 ima 4 neodvisne primerjalnike napetosti (4 kanale), pri katerih vsak kanal sprejme 2 x vhodne napetosti (en invertirni (-) in en neinvertirni (+) vhod, glej diagram) Če bi morala napetost invertirne vhodne napetosti pasti pod neinvertirajoče napetosti, nato pa se z njim povezan izhod povleče na tla. Podobno, če neinvertirajoča vhodna napetost pade nižje od invertirajočega vhoda, se izhod potegne navzgor do Vcc. Priročno je, da imam v hiši 4 x alarmne PIR/cone - zato bo vsaka cona povezana z vsakim kanalom na primerjalniku. Če imate več kot 4 x PIR -je, boste potrebovali primerjalnik z več kanali ali drug LM339!

Opomba: LM339 porablja energijo v nano-amperih, zato ne bo vplival na odpornost EOL obstoječega alarmnega sistema.

Če je to zmedeno, nadaljujte z naslednjim korakom, vseeno bo bolj smiselno, ko ga povežemo!

3. korak: Ustvarjanje delilnika napetosti

Image
Image

Kaj je delilnik napetosti?

Napetostni delilnik je vezje z 2 x upori (ali več) zaporedno. Prvemu uporu (R1) zagotovimo napetost v (Vin). Druga noga R1 se poveže s prvo nogo drugega upora (R2), drugi konec R2 pa se priključi na GND. Nato vzamemo izhodno napetost (Vout) iz povezave med R1 in R2. Ta napetost bo postala naša referenčna napetost za LM339. Za več informacij o delovanju napetostnih delilnikov si oglejte videoposnetek Adohms na youtube

(Opomba: upori nimajo polarnosti, zato jih je mogoče ožičiti v obe smeri)

Izračun naše referenčne napetosti

Ob predpostavki, da napetost pade, ko se sproži vaš PIR (to bi moralo veljati za večino alarmov), potem poskušamo doseči odčitavanje napetosti, ki je precej na pol poti med najnižjo napetostjo v prostem teku in najvišjo sproženo napetostjo, to bo postala naša referenčna napetost.

Kot primer vzamem alarm…

Napetost v prostem teku v območju je bila Z1 = 6,65 V, Z2 = 6,65 V, Z3 = 7,92 V, Z4 = 7,92 V. Najnižja napetost v prostem teku je torej 6,65V

Zone sprožene napetosti so bile: Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V. Najvišja sprožena napetost je torej 4,30V

Zato moramo izbrati številko na pol poti med 4,30 V in 6,65 V (ni treba biti natančen, samo približno) V mojem primeru mora biti moja referenčna napetost okoli 5,46 V. Opomba: Če sta najnižja prostem teku in najvišja sprožena napetost zelo blizu drug drugemu zaradi več območij, ki povzročajo razpon različnih napetosti, boste morda morali ustvariti 2 ali več delilnikov napetosti.

Izračun vrednosti upora za delilnik napetosti

Zdaj imamo referenčno napetost, izračunati moramo, kakšne velikosti uporov potrebujemo za izdelavo delilnika napetosti, ki bo zagotavljal našo referenčno napetost. Iz alarma bomo uporabljali 12V DC napetostni vir (Vs). V skladu s prejšnjim korakom, ko smo merili 12V DC napajanje, smo dejansko dobili 13.15V. Moramo izračunati delilnik napetosti z uporabo te vrednosti kot vira.

Izračunajte Vout z ohmskim zakonom …

Vout = Vs x R2 / (R1 + R2)

… ali uporabite spletni kalkulator delilnika napetosti:-)

Z vrednostmi upora morate eksperimentirati, dokler ne dosežete želenega izhoda. V mojem primeru je delovalo z R1 = 6,8 k ohma in R2 = 4,7 K ohma, izračunano v dolgi obliki na naslednji način:

Vout = Vs x R2 / (R1 + R2)

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

Vout = 61, 805/11, 500

Vout = 5,37V

4. korak: Povežite LM339

Ožičenje Wemos D1 Mini
Ožičenje Wemos D1 Mini

Razdelilnik napetosti na LM339 obrne vhode

Kot smo že omenili glede primerjalnika LM339, bo potreboval 2 x vhoda. Ena bo napetost od vsakega PIR do neinvertirajočega (+) terminala, druga bo naša referenčna napetost do našega invertirajočega (-) priključka. Referenčna napetost mora napajati vse 4 primerjalne invertirne vhode. Preden izvedete te korake, izklopite alarmni sistem.

  • Napeljite žico od 12V DC bloka na alarmnem sistemu do + tirnice na vaši plošči *
  • Prenesite žico od bloka GND na alarmnem sistemu do - tirnice na vaši plošči **
  • Primerjalec LM339 namestite na sredino mize (zareza označuje najbližje zatiču 1)
  • Namestite 2x upor, da ustvarite vezje delilnika napetosti in žico za ločeno napetost
  • Vodite žice od "napetostno deljenega" Vouta do vsakega obračalnega priključka LM339

* NAMIG: če je mogoče, uporabite napajalno zaponko, saj olajšate vklop/izklop vašega projekta ** POMEMBNO! Morda boste potrebovali MOSFET, če napajate Wemos z alarmne plošče! V mojem primeru vsi LM339, Wemos in Alarm prejemajo napajanje iz istega vira (tj. Samega alarmnega sistema). To mi omogoča, da vklopim napajanje vsega z eno samo napajalno povezavo. Vendar so privzeto zatiči GPIO na Wemosu definirani kot zatiči "INPUT" - kar pomeni, da sprejmejo kakršno koli napetost, ki se vrže nanje, in se zanašajo na ta vir, da zagotovijo ustrezne ravni napetosti (min/max ravni), tako da je Wemos zmagal " t sesuti ali izgoreti. V mojem primeru alarmni sistem dobi moč in začne zelo hitro izvajati zagonski niz - pravzaprav tako hitro, da to naredi, preden se Wemos lahko zažene in razglasi zatiče GPIO kot "INPUT_PULLUP" (napetost se dvigne znotraj čip). To ne pomeni, da bi napetostne razlike povzročile sesutje Wemosa, ko bi celoten sistem dobil napajanje. Edini način za to bi bil ročni izklop in vklop Wemosa. Za rešitev tega je dodan MOSFET, ki deluje kot "logično stikalo" za vklop LM339. To omogoča, da se Wemos zažene, nastavi svoje 4 x primerjalne zatiče GPIO kot "INPUT_PULLUP's", zamudi nekaj sekund in nato (preko drugega zatiča GPIO D5, definiranega kot OUTPUT) pošlje signal "HIGH" preko GPIO pin D5 na MOSFET, ki logično vklopi LM339. Priporočam ožičenje, kot je opisano zgoraj, če pa ugotovite, da se Wemos zruši, kot sem jaz, boste morali vključiti MOSFET z uporovnim uporom 1k ohm. Za več informacij o tem, kako to storiti, glejte konec tega navodila.

Alarmna območja na neinvertirajoče vhode LM339

Zdaj moramo napeljati žice iz vsakega območja na alarmni nadzorni plošči do vhodov primerjalnika LM339. Ko je alarmni sistem še vedno izklopljen, za vsako območje napajajte žico do vsakega neinvertirajočega (+) vhoda na primerjalniku LM339. Na primer v mojem sistemu:

  • Žica iz Z1 gre na vhod LM339 1+
  • Žica iz Z2 gre na vhod LM339 2+
  • Žica iz Z3 gre na vhod LM339 3+
  • Žica iz Z4 gre na vhod LM339 4+

Če želite opomnik (glejte barvno oznako s sliko matične plošče), glejte pin-out LM339 v koraku 3. Ko končate, bi morala biti vaša plošča podobna sliki, prikazani v tem koraku.

Vklopite alarmni sistem in izmerite napetost, ki prihaja iz delilnika napetosti, da zagotovite, da je enaka vaši referenčni napetosti, kot je izračunano prej.

5. korak: Priključite Wemos D1 Mini

Ožičenje Wemos D1 mini

Zdaj imamo poskrbljeno za vse vhode LM339, zdaj moramo priključiti Wemos D1 mini. Vsak izhodni pin LM339 gre na pin Wemos GPIO (splošni vhod/izhod), ki ga bomo s kodo označili kot vhodni izvlečni zatič. Wemos porabi največ 5 V kot napetost Vcc (vhodni vir) (čeprav to notranje regulira do 3,3 V) Uporabili bomo zelo pogost regulator napetosti LM7805 (EDIT: glej spodaj), da spustimo 12V tirnico na mizo navzdol do 5V za napajanje Wemosa. Podatkovni list za LM7805 kaže, da potrebujemo kondenzator, priključen na vsaki strani regulatorja, da izravnamo napajanje, kot je prikazano na sliki. Daljši krak kondenzatorja je pozitiven (+), zato se prepričajte, da je ta pravilno ožičen.

Regulator napetosti sprejema napetost (levi stranski zatič), ozemljitev (srednji zatič) in izhod napetosti (desni stranski zatič) Dvakrat preverite pin-out, če se vaš regulator napetosti razlikuje od LM7805.

(EDIT: Ugotovil sem, da so ojačevalci, ki prihajajo iz alarmne plošče, previsoki, da bi jih lahko upravljal LM7805. To je povzročilo veliko toplote v majhnem hladilniku LM7805 in povzročilo njegovo okvaro ter posledično zaustavitev Wemosa delujoč. Namesto tega sem zamenjal LM7805 in kondenzatorje z pretvornikom enosmernega toka DC in od takrat nisem imel nobenih težav. Te je zelo enostavno povezati. Preprosto priključite vhodno napetost iz alarma, najprej se povežite z multimetrom in uporabite vijak potenciometra in nastavite, dokler izhodna napetost ne bo ~ 5 V)

Vhodni zatiči GPIO

Za ta projekt uporabljamo naslednje zatiče:

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

Izhode iz LM339 povežite z ustreznimi zatiči GPIO na plošči Wemos, kot je prikazano na sliki matične plošče, prikazani v tem koraku. Spet imam barvno označene vhode in ujemajoče se izhode, da lažje vidim, kaj se nanaša na kaj. Vsak zatič GPIO v Arduinu je opredeljen kot 'INPUT_PULLUP', kar pomeni, da se pri normalni uporabi (IDLE) potegnejo do 3,3 V, LM339 pa jih bo, če se sproži PIR, potegnil na tla. Koda zazna spremembo HIGH to LOW in brezžično pošlje sporočilo v vašo programsko opremo za avtomatizacijo doma. Če imate težave s tem delovanjem, je možno, da imate svoje invertirne in neinvertirne vhode napačno (če napetost iz vašega PIR-ja naraste, ko se sproži, kot se to dogaja pri večini hobi PIR-jev, potem želite, da so povezave obratno)

Arduino IDE

Odstranite Wemos s plošče, zdaj moramo vanj naložiti kodo (druga povezava tukaj). Ne bom se podrobno opisal, kako to storiti, saj je v spletu veliko člankov o nalaganju kode v Wemos ali drug ESP8266 tip plošč. Priključite kabel USB na ploščo Wemos in v računalnik ter zaženite Arduino IDE. Prenesite kodo in jo odprite v svojem projektu. Zagotoviti morate, da je za vaš projekt nameščena in naložena pravilna plošča, ter izbrana pravilna vrata COM (Orodja, Vrata). Potrebovali boste tudi nameščene ustrezne knjižnice (PubSubClient, ESP8266Wifi) Če želite ploščo Wemos vključiti v svojo skico, glejte ta članek.

Spremeniti morate naslednje vrstice kode in jih nadomestiti z lastnim SSID in geslom za brezžično povezavo. Spremenite tudi naslov IP tako, da kaže na svojega posrednika MQTT.

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* geslo = "your_wifi_password_ tukaj"; // IP -naslov posrednika MQTT MQTT_SERVER (172, 16, 223, 254)

Ko spremenite, preverite svojo kodo in jo naložite na ploščo Wemos prek kabla USB.

Opombe:

  • Če uporabljate različna vrata GPIO, boste morali kodo prilagoditi. Če uporabljate več ali manj območij kot jaz, boste morali prilagoditi tudi kodo in TOTAL_ZONES = 4; konstantno, da ustreza.
  • Ob zagonu mojega alarmnega sistema bi alarmni sistem naredil preskus moči na vseh 4 x PIR -jih, ki so potegnili vse priključene GPIO na tla, zaradi česar je Wemos mislil, da so območja sprožena. Koda ne bo upoštevala pošiljanja sporočil MQTT, če vidi, da so hkrati aktivna vsa 4 x območja, saj predpostavlja, da se alarmni sistem vklopi.

Nadomestna povezava za prenos do kode TUKAJ

6. korak: Testiranje in konfiguracija OpenHAB

Testiranje in konfiguracija OpenHAB
Testiranje in konfiguracija OpenHAB

Testiranje MQTT

MQTT je sistem za pošiljanje sporočil "naročite se / objavite". Ena ali več naprav se lahko pogovarja z "posrednikom MQTT" in se "naroči" na določeno temo. Vsa posredovana sporočila iz katere koli druge naprave, ki so "objavljena" na isto temo, bo posrednik potisnil na vse naprave, ki so nanjo naročene. To je izredno lahek in enostaven za uporabo protokol in kot nalašč kot preprost sistem za sprožitev, kot je ta tukaj. Za preizkušanje si lahko ogledate dohodna sporočila MQTT iz Wemosa pri svojem posredniku MQTT tako, da na strežniku Mosquitto izvedete naslednji ukaz (Mosquitto je ena izmed mnogih razpoložljivih programov MQTT Broker). Ta ukaz se naroči na dohodna sporočila keepalive:

mosquitto_sub -v -t openhab/alarm/status

Morali bi videti vhodna sporočila, ki prihajajo iz Wemosa vsakih 30 sekund s številko "1" (kar pomeni "živ sem"). Če vidite konstantne "0" (ali brez odgovora), potem komunikacije ni. Ko vidite, da prihaja številka 1, to pomeni, da Wemos komunicira s posrednikom MQTT (poiščite "Zadnja volja in zaveza MQTT" za več informacij o tem, kako to deluje, ali si oglejte ta res dober vnos v blog)

Ko dokažete, da je komunikacija funkcionalna, lahko preizkusimo, da se o stanju območja poroča prek MQTT. Naročite se na naslednjo temo (# je nadomestni znak)

mosquitto_sub -v -t openhab/alarm/#

Običajna sporočila o stanju bi morala priti, prav tako pa tudi naslov IP samega Wemosa. Sprehodite se pred PIR in videli boste tudi podatke o območju, ki označujejo, da je ODPRTO, nato pa kakšno sekundo pozneje, da je ZAPRTO, podobno naslednjim:

odprto stanovanje/alarm/stanje 1

odprto hab/alarm/cona1 ODPRTO

openhab/alarm/zone1 ZAPRTO

Ko to deluje, lahko konfiguriramo OpenHAB, da bo to lepo predstavljeno v grafičnem vmesniku.

Konfiguracija OpenHAB

Za OpenHAB so potrebne naslednje spremembe:

datoteka za pretvorbo 'alarm.map': (neobvezno, za testiranje)

ZAPRTO = IdleOPEN = Sproženo NULL = Neznano- = Neznano

datoteka za pretvorbo 'status.map':

0 = Ni uspelo

1 = Na spletu -= DOL! NULL = neznano

datoteka 'items':

Niz alarmMonitorState "Alarm Monitor [MAP (status.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/status: stanje: privzeto]"} String alarmMonitorIPAddress "Alarm Monitor IP [%s]" {mqtt = "<[mqttbroker: openhab/alarm/ipaddress: stanje: privzeto]"} Številčna cona1_Chart_Period "Tabela cone 1" Kontakt alarmZone1State "Stanje cone 1 [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/zone1: stanje: privzeto "} String alarmZone1Trigger" Lounge PIR [%1 $ ta%1 $ tr] "Number zone2_Chart_Period" Chart 2 Cone "Contact alarmZone2State" Zone 2 State [MAP (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab/alarm/zone2: state: default "} String alarmZone2Trigger" Prva dvorana PIR [%1 $ ta %1 $ tr] "Številčna cona3_Chart_Period" Diagram cone 3 "Kontakt alarmZone3State" Zone 3 Stanje [MAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: state: default "} String alarmZone3Trigger" Spalnica PIR [%1 $ ta%1 $ tr] "Število zone4_Chart_Period "Chart 4 Chart" Contact alarmZone4State "Stanje cone 4 [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: stanje: privzeto "} Niz alarmZone4Trigger" Glavna dvorana PIR [%1 $ ta %1 $ tr]"

datoteka »zemljevid mesta« (vključno z grafikonom rrd4j):

Besedilni element = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Okvir {Switch item = zone1_Chart_Period label = Preslikave "obdobja" = [0 = "ura", 1 = "dan", 2 = "teden"] URL slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone1_Chart_Period == 0, zone1_Chart_Period = = Neinicializirano] URL ur = = https:// localhost: 8080/rrdchart.png]}} Besedilni element = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Okvir {Switch item = zone2_Chart_Period label = "Obdobje" preslikave = [0 = "Ura", 1 = "Dan", 2 = "Teden"] URL slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone2_Chart_Period == 0, zone2_Chart_Period == Neinicializirano] Url slike = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] Url slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone2_Chart_Perd == 2]}} Besedilni element = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Okvir {Switch item = zone3_Chart_Period label = "Obdobje" preslikave = [0 = "Ura", 1 = "Dan", 2 = "Teden"] URL slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone3_Chart_Period == 0, zone3_Chart_Period == Neinicializirano] Slika url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 1] Url slike = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} Besedilo item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Okvir {Switch item = zone4_Chart_Period label = " Obdobje "preslikave = [0 =" Ura ", 1 =" Dan ", 2 =" Teden "] URL slike =" https:// localhost: 8080/rrdchart.png "vidljivost = [zone4_Chart_Period == 0, zone4_Chart_Period == Neinicializirano] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 1] Url slike = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // NEOBVEZNO, vendar priročno za diagnosticiranje statusa in naslova IP ss Besedilni element = alarmMonitorState Besedilni element = alarmMonitorIPAddress

datoteka "pravila":

pravilo "Sprememba stanja alarmnega območja 1"

ko se postavka alarmZone1State spremeni v OPEN, nato postUpdate (alarmZone1Trigger, nov DateTimeType ()) alarmZone1State.state = ZAPRTO konec

pravilo "Sprememba stanja alarmnega območja 2"

ko se element alarmZone2State spremeni v OPEN, nato postUpdate (alarmZone2Trigger, nov DateTimeType ()) alarmZone2State.state = ZAPRTO konec

pravilo "Sprememba stanja alarmnega območja 3"

ko je postavka alarmZone3State spremenjena v OPEN, nato postUpdate (alarmZone3Trigger, nov DateTimeType ()) alarmZone3State.state = ZAPRTO konec

pravilo "Sprememba stanja alarmnega območja 4"

ko je postavka alarmZone4State spremenjena v OPEN, nato postUpdate (alarmZone4Trigger, nov DateTimeType ()) alarmZone4State.state = ZAPRTO konec

Morda boste morali zgornjo konfiguracijo OpenHAB nekoliko spremeniti, da bo ustrezala vaši nastavitvi.

Če imate težave s sprožitvijo PIR, začnite od začetka in izmerite napetosti za vsak del vezja. Ko ste s tem zadovoljni, preverite ožičenje, preverite, ali obstaja skupna osnova, preverite sporočila na Wemosu preko konzole za serijsko odpravljanje napak, preverite komunikacijo MQTT in preverite sintakso datotek za preoblikovanje, elementov in zemljevidov spletnega mesta.

Vso srečo!

Priporočena: