Obsah:

Alarm PIR na WiFi (a domáca automatizácia): 7 krokov (s obrázkami)
Alarm PIR na WiFi (a domáca automatizácia): 7 krokov (s obrázkami)

Video: Alarm PIR na WiFi (a domáca automatizácia): 7 krokov (s obrázkami)

Video: Alarm PIR na WiFi (a domáca automatizácia): 7 krokov (s obrázkami)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Image
Image
Alarm PIR na WiFi (a domáca automatizácia)
Alarm PIR na WiFi (a domáca automatizácia)

Prehľad

Tento návod vám poskytne možnosť zobraziť posledný dátum/čas (a voliteľne históriu časov), kedy boli vo vašom domácom automatizačnom softvéri spustené PIR (pasívne infračervené senzory) vášho domáceho alarmu. V tomto projekte budem diskutovať o použití s OpenHAB (bezplatný softvér pre domácu automatizáciu, ktorý osobne používam), aj keď bude fungovať s akýmkoľvek iným softvérom alebo aplikáciou pre domácu automatizáciu, ktorá podporuje MQTT (popísané aj ďalej v tomto článku). Tento návod vás prevedie potrebnými krokmi k zapojeniu dosky plošných spojov a dosky Wemos D1 mini (doska IOT, ktorá využíva čip ESP8266), ktorá sa zapojí do poplachových zón vo vašej riadiacej jednotke alarmov, aby keď zóna (ktorá obsahuje jeden alebo viac PIR), Wemos odošle správu bezdrôtovo pomocou protokolu MQTT do vášho softvéru pre domácu automatizáciu, ktorý zase zobrazí posledný dátum/čas tohto spúšťača. K dispozícii je tiež kód Arduino na programovanie Wemosu.

Úvod

Vyššie uvedený obrázok je to, čo vidím prostredníctvom jednej z obrazoviek v aplikácii OpenHAB v mojom iPhone. Text dátumu/času je farebne označený, aby poskytol rýchlejšie znázornenie toho, kedy bol PIR spustený - zobrazí sa červená (spustená za poslednú 1 minútu), oranžová (spustená za posledných 5 minút), zelená (spustená za posledných 30 minút), modrá (spustená počas poslednej hodiny) alebo inak, čierna. Po kliknutí na dátum/čas sa zobrazí historický prehľad spúšťačov PIR, kde 1 znamená spustené a 0 je nečinné. Existuje na to mnoho použití, napríklad by to mohlo doplniť riešenie vašej prítomnosti v domácnosti, môže detekovať pohyb, ak ste preč, a prostredníctvom pravidiel OpenHAB odosielať upozornenia na váš telefón, môžete ho použiť ako ja a zistiť, či sú moje deti vstávanie uprostred noci, vyvolané PIR, ktorý sídli mimo ich spální!

OpenHAB je jednoducho softvér na automatizáciu domácnosti, ktorý používam, existuje mnoho ďalších - a ak podporujú MQTT, môžete tento projekt ľahko prispôsobiť tak, aby vyhovoval softvéru, ktorý používate.

Predpoklady

Tento návod predpokladá, že už máte (alebo nastavíte):

  • Očividne domáci poplašný systém s PIR (pasívne infračervené senzory) a s prístupom k ovládaciemu boxu alarmu na pripojenie potrebného vedenia
  • OpenHAB (bezplatný softvér pre domácu automatizáciu s otvoreným zdrojovým kódom) spustený, aj keď, ako už bolo uvedené, by mal fungovať s akýmkoľvek softvérom pre domácu automatizáciu, ktorý môže obsahovať väzbu MQTT. Alternatívne môžete kód zmeniť sami, aby vyhovoval vašim vlastným potrebám.
  • Mosquitto MQTT (alebo podobný) broker je nainštalovaný a väzba je nakonfigurovaná pomocou OpenHAB (MQTT je protokol typu na prihlásenie sa na odber/publikovanie, ktorý je ľahký a je vhodný na komunikáciu medzi zariadeniami)

Ak nespúšťate OpenHAB a brokera MQTT, prečítajte si tento vynikajúci článok na webovej stránke MakeUseOf

Čo potrebujem?

Na vytvorenie bezdrôtového ovládača budete potrebovať zdroj nasledujúcich častí:

  • Wemos D1 mini V2 (má vstavaný bezdrôtový čip ESP8266)
  • Komparátor LM339 (vykoná kontrolu nečinnosti PIR a spustenia)
  • Zdroj 5 V DC pre Wemos (ALEBO, menič DC-DC. Poznámka: Regulátor napätia LM7805 nemusí pre túto aplikáciu fungovať, ako je uvedené ďalej v tomto projekte)
  • Dva odpory pre delič napätia (veľkosť bude závisieť od vašich poplachových napätí, diskutované ďalej v projekte)
  • Jeden 1K ohmový odpor, ktorý funguje ako sťahovací odpor pre ovládanie výkonu LM339
  • Jeden 2N7000 (alebo podobný) MOSFET na logické zapnutie LM339 (možno voliteľné, prediskutované neskôr v projekte)
  • Doska vhodnej veľkosti na nastavenie a testovanie obvodov
  • Veľa drôtov na chlieb, ktoré všetko spájajú
  • Potrebné nástroje: bočné frézy, jednožilový drôt
  • Multimeter DC (povinný!)

Krok 1: Riadiaci box poplachového systému

Riadiaci box poplachového systému
Riadiaci box poplachového systému

Najprv niekoľko varovaní a zrieknutie sa zodpovednosti

Osobne mám poplašný systém Bosch. Dôrazne vám odporúčam, aby ste si stiahli príslušnú príručku pre svoj konkrétny poplachový systém a oboznámili sa s ním skôr, ako začnete, pretože na zapojenie zón budete musieť vypnúť poplašný systém. Tiež by som vám odporučil prečítať si tento článok celý, než začnete!

Nasleduje zoznam niekoľkých vecí, ktoré by ste mali vedieť, než začnete - pred pokračovaním sa uistite, že si každú z nich prečítate a porozumiete im! Nezodpovedám za to, ak pokazíte poplašný systém a/alebo zaplatíte svojmu inštalátorovi za opravu. Ak si však prečítate nasledujúce položky a porozumiete im a urobíte potrebné opatrenia, mali by ste byť v poriadku:

1. Môj poplachový systém mal vo vnútri škatule záložnú batériu a na vnútornej strane veka mal tiež sabotážny spínač (ktorý poskytuje prístup k doske poplachového systému), takže pri odstraňovaní predného panela ovládača sa budík môže vypínať aj zvonku. box spustil alarm! Aby som to obišiel, keď som pracoval na projekte, obišiel som sabotážnu ochranu odpojením a skratovaním sabotážneho spínača (hrubý červený vodič, ako je znázornené na fotografii vyššie)

2. Pri napájaní zabezpečovacieho systému zhruba po 12 hodinách začal poplachový ovládací panel pípať s chybovými kódmi. Po určení chybových kódov pomocou manuálu som zistil, že ma to varuje, že:

  • Dátum/čas nebol nastavený (na rekonfiguráciu som potreboval hlavný kód a postupnosť kľúčov z manuálu)
  • Že záložná batéria nebola pripojená (jednoduchá oprava, len som zabudol batériu znova zapojiť)

3. V mojom poplachu sú však 4 bloky zónových prepojovacích blokov (označené Z1 -Z4), do ktorých sa môžu zapojiť PIR na hlavnej doske poplachu - môj poplašný systém je v skutočnosti schopný mať 8 zón. Každý blok pripojenia zóny môže v skutočnosti prevádzkovať 2 x zóny (Z1 robí Z1 a Z5, Z2 robí Z2 a Z6 atď.). Poplachový systém má vstavanú ochranu proti neoprávnenému zásahu, ktorá zabráni niekomu povedať, otvorením veka poplachového systému, ako je uvedené vyššie, alebo prerušením drôtov na PIR. Rozlišuje medzi každou sabotážnou zónou pomocou rezistorov EOL (end of line). Ide o odpory špecifickej veľkosti, ktoré sú umiestnené na „konci linky“- inými slovami, vo vnútri PIR (alebo sabotážneho spínača ovládacej skrinky alebo skrinky sirény alebo čohokoľvek iného, čo je k tejto zóne zapojené) Ako bolo uvedené, tieto odpory sa používajú ako „sabotáž“ochrana “- technicky, ak niekto preruší káble k PIR - pretože poplachový systém očakáva, že z tohto PIR uvidí určitý odpor, potom by sa mal odpor zmeniť, predpokladá, že niekto manipuloval so systémom a spustí alarm.

Napríklad:

V mojom alarme má zóna „Z4“2 vodiče, jeden prechádza do PIR v mojej chodbe a druhý smeruje k sabotážnemu spínaču ovládacej skrine alarmu. Vo vnútri chodby PIR má odpor 3 300 ohmov. Druhý vodič, ktorý vedie k sabotážnemu spínaču riadiacej skrinky, má odpor 6800 ohmov zapojený do série. Takto poplašný systém (logicky) rozlišuje podbíjače „Z4“a „Z8“. Podobne zóna „Z3“má PIR (s odporom 3 300 ohmov) a tiež sabotážny spínač sirény (s odporom 6 800 ohmov v ňom), ktorý tvorí „Z7“. Inštalátor alarmu by vopred nakonfiguroval poplašný systém, aby vedel, aké zariadenie je pripojené k jednotlivým zónam (a zmenil veľkosť odporu EOL tak, aby vyhovoval, pretože poplašný systém je naprogramovaný tak, aby vedel, akú veľkosť majú rôzne odpory EOL. za žiadnych okolností by ste nemali meniť hodnotu týchto odporov!)

Takže na základe vyššie uvedeného, pretože každá zóna môže mať pripojených aj viac zariadení (s rôznymi hodnotami odporu) a pamätanie na vzorec V = IR (napätie = ampéry x odpor), potom to môže tiež znamenať, že každá zóna môže mať rôzne napätia. Čo nás privádza k ďalšiemu kroku, meraniu každej zóny IDLE vs TRIGGERED napätie …

Krok 2: Meranie napätia poplachovej zóny

Meranie napätia poplachovej zóny
Meranie napätia poplachovej zóny
Meranie napätia poplachovej zóny
Meranie napätia poplachovej zóny

Akonáhle získate prístup k základnej doske vášho poplachového systému (a obídete tamper spínač, ak ho máte; ako v predchádzajúcom kroku), zapnite svoj poplachový systém. Teraz musíme zmerať napätie v každej zóne, keď je IDLE (bez pohybu pred PIR) vs SPUŠTENÉ (PIR zistil pohyb) Zoberte pero a papier, aby ste si mohli zapísať údaje o napätí.

UPOZORNENIE: Väčšina vášho poplachového systému pravdepodobne pracuje s napájaním 12 V DC, počiatočný napájací zdroj však bude mať striedavé napätie 220 V (alebo 110 V) s transformátorom prevádzajúcim energiu zo striedavého prúdu na jednosmerný prúd. PREČÍTAJTE si manuál a urobte mimoriadne opatrnosť, aby ste sa uistili, že nemeriate žiadne AC svorky !!! Podľa snímky obrazovky môjho poplachového systému na tejto stránke vidíte, že v spodnej časti obrázku je napájanie striedavým prúdom transformované na 12 V DC. Meriame 12 V DC vo zvýraznených červených poliach. Nikdy sa nedotýkajte sieťového napájania. Buďte veľmi opatrní!

Meranie PIR napätia

Mám 4 x PIR zapojené do Z1 až do Z4. Zmerajte každú zo svojich zón nasledovne.

  1. Najprv identifikujte terminál GND a zónové terminály na zabezpečovacom paneli. Zvýraznil som ich na obrázku uvedenom v príručke k môjmu alarmu Bosch.
  2. Vezmite multimetr a nastavte meranie napätia na 20 V DC. Pripojte čierny (COM) kábel z multimetra k terminálu GND na alarme. Umiestnite červený (+) kábel z multimetra do prvej zóny - v mojom prípade s označením „Z1“. Zapíšte si údaj o napätí. Vykonajte rovnaké kroky pre zostávajúce zóny. Moje merania napätia sú nasledujúce:
  • Z1 = 6,65V
  • Z2 = 6,65V
  • Z3 = 7,92V
  • Z4 = 7,92V

Ako je uvedené vyššie, moje prvé dve zóny majú tiež pripojené iba PIR. Posledné dve zóny majú zapojené PIR aj ochranu pred sabotážou (tamper ovládacej skrinky Z3, tamper sirény Z4) Všimnite si rozdielov napätia.

3. Na tento ďalší krok budete pravdepodobne potrebovať 2 ľudí. Budete tiež musieť vedieť, ktorý PIR sa nachádza v ktorej zóne. Vráťte sa a prečítajte si napätie v prvej zóne. Teraz dajte niekomu do svojho domu prejsť sa pred PIR, napätie by malo klesnúť. Vezmite na vedomie nové čítanie napätia. V mojom prípade sa napätia pri spustení PIR čítajú nasledovne:

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

Podľa vyššie uvedeného vidím, že keď sú spustené zóny 1 a 2, napätie klesne z 6,65 V na 0 V. Keď sa však spustia zóny 3 a 4, napätie klesne zo 7,92 V na 4,30 V.

Meranie napájania 12V

Na napájanie nášho projektu použijeme terminál 12V DC z ovládacej skrinky alarmu. Na alarme musíme zmerať napätie z napájania 12 V DC. Aj keď už uvádza 12 V, potrebujeme vedieť presnejšie čítanie. V mojom prípade to skutočne číta 13,15V. Napíšte to, túto hodnotu budete potrebovať v nasledujúcom kroku.

Prečo meriame napätie?

Dôvod, prečo potrebujeme merať napätie pre každý PIR, je kvôli obvodu, ktorý vytvoríme. Ako hlavný elektrický komponent tohto projektu použijeme štvornásobný diferenciálny komparátorový čip LM339 (alebo komparátor so štyrmi operačnými zosilňovačmi). LM339 má 4 nezávislé komparátory napätia (4 kanály), kde každý kanál má 2 x vstupné napätie (jeden invertujúci (-) a jeden neinvertujúci (+) vstup, pozri diagram) Ak by napätie invertujúceho vstupného napätia malo klesnúť nižšie ako neinvertujúceho napätia, potom bude jeho príslušný výstup pritiahnutý k zemi. Rovnako tak, ak neinvertujúce vstupné napätie klesne nižšie ako invertujúci vstup, potom je výstup vytiahnutý až do Vcc. Pohodlne mám vo svojom dome 4 x poplachové PIR/zóny - preto bude každá zóna zapojená do každého kanála na komparátore. Ak máte viac ako 4 x PIR, budete potrebovať komparátor s viacerými kanálmi alebo iný LM339!

Poznámka: LM339 spotrebúva energiu v nano-ampéroch, takže neovplyvní odpor EOL existujúceho poplachového systému.

Ak je to mätúce, pokračujte ďalším krokom, napriek tomu to začne dávať väčší zmysel, keď to zapojíme!

Krok 3: Vytvorenie deliča napätia

Image
Image

Čo je delič napätia?

Delič napätia je obvod so 2 x odpormi (alebo viacerými) v sérii. Prvému odporu (R1) poskytujeme napätie v (Vin). Druhá časť R1 sa pripája k prvému ramenu druhého odporu (R2) a druhý koniec R2 sa pripája k GND. Potom odoberieme výstupné napätie (Vout) zo spojenia medzi R1 a R2. Toto napätie sa stane naším referenčným napätím pre LM339. Ďalšie informácie o tom, ako rozdeľovače napätia fungujú, nájdete na videu Adohms youtube

(Poznámka: odpory nemajú polaritu, takže ich možno zapojiť akýmkoľvek spôsobom)

Výpočet nášho referenčného napätia

Za predpokladu, že napätie klesne, keď sa spustí váš PIR (to by malo platiť pre väčšinu alarmov), potom sa snažíme dosiahnuť napätie, ktoré je do značnej miery na polceste medzi našim najnižším voľnobežným napätím a najvyšším spusteným napätím, toto sa stane naším referenčným napätím.

Ako príklad beriem môj alarm …

Napätie v nečinnosti zóny bolo Z1 = 6,65V, Z2 = 6,65V, Z3 = 7,92V, Z4 = 7,92V. Najnižšie voľnobežné napätie je teda 6,65V

Napätie vyvolané zónou bolo: Z1 = 0V, Z2 = 0V, Z3 = 4,30V, Z4 = 4,30V. Najvyššie spustené napätie je teda 4,30V

Musíme teda vybrať číslo na polceste medzi 4,30 V a 6,65 V (nemusí byť presné, len zhruba) V mojom prípade musí byť moje referenčné napätie okolo 5,46 V. Poznámka: Ak sú najnižšie voľnobežné a najvyššie spúšťané napätie veľmi blízko seba v dôsledku viacerých zón spôsobujúcich rozsah rôznych napätí, možno budete musieť vytvoriť 2 alebo viac deličov napätia.

Výpočet hodnôt nášho odporu pre delič napätia

Teraz máme referenčné napätie, musíme vypočítať, akú veľkosť rezistorov potrebujeme na vytvorenie deliča napätia, ktorý poskytne naše referenčné napätie. Z alarmu budeme používať zdroj 12 V DC (Vs). Avšak podľa predchádzajúceho kroku, keď sme merali napájanie 12 V DC, sme v skutočnosti dostali 13,15 V. Musíme vypočítať delič napätia pomocou tejto hodnoty ako zdroja.

Vypočítajte Vout pomocou zákona ohmov …

Vout = Vs x R2 / (R1 + R2)

… alebo použite online kalkulačku deliča napätia:-)

Budete musieť experimentovať s hodnotami odporu, kým nedosiahnete požadovaný výkon. V mojom prípade to fungovalo s R1 = 6,8 k ohm a R2 = 4,7 K ohm, vypočítané v dlhej forme nasledovne:

Vout = Vs x R2 / (R1 + R2)

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

Vout = 61, 805 /11, 500

Vout = 5,37V

Krok 4: Zapojte LM339

Zapojenie Wemos D1 Mini
Zapojenie Wemos D1 Mini

Delič napätia na invertujúce vstupy LM339

Ako už bolo uvedené vyššie, pokiaľ ide o komparátor LM339, bude potrebovať 2 x vstupy. Jeden bude napätie z každého PIR na každý kanál neinvertujúceho (+) terminálu, druhý bude naším referenčným napätím k invertujúcemu (-) terminálu. Referenčné napätie musí napájať všetky 4 invertujúce vstupy komparátora. Pred vykonaním týchto krokov vypnite alarm.

  • Veďte drôt z bloku 12 V DC poplašného systému na koľajnicu + na vašom doske *
  • Veďte drôt z bloku GND poplašného systému na - koľajnicu na vašom doske **
  • Nainštalujte komparátor LM339 do stredu dosky (zárez označuje najbližšie ku kolíku 1)
  • Nainštalujte 2 x odpory, aby ste vytvorili obvod deliča napätia a vodič na rozdelené napätie
  • Veďte vodiče z Vout „rozdeleného na napätie“na každý invertujúci terminál LM339

* TIP: Ak je to možné, použite na napájanie aligátorovú svorku, pretože to uľahčuje dodávku energie do vášho projektu ** DÔLEŽITÉ! MOSFET môže byť potrebný, AK napájate Wemos z poplachového panelu! V mojom prípade všetky LM339, Wemos a Alarm dostávajú energiu z rovnakého zdroja (tj: samotný poplašný systém) To mi umožňuje zapnúť napájanie všetkého pomocou jediného napájacieho pripojenia. Štandardne sú však piny GPIO na Wemose definované ako piny „INPUT“- to znamená, že odoberajú akékoľvek napätie, ktoré je na ne vrhnuté, a spoliehajú sa na to, že tento zdroj poskytne správne úrovne napätia (minimálne/maximálne úrovne), aby Wemos vyhral. t havarovať alebo vyhorieť. V mojom prípade sa poplašný systém napája a začne veľmi rýchlo vykonávať svoju bootovaciu sekvenciu - v skutočnosti tak rýchlo, že to robí skôr, ako sa Wemos môže spustiť a vyhlásiť kolíky GPIO za „INPUT_PULLUP“(napätie natiahnuté interne v čip). To však neznamená, že rozdiely v napätí spôsobia poruchu Wemosu, keď sa napája celý systém. Jediným spôsobom, ako to obísť, by bolo manuálne vypnutie a zapnutie Wemosu. Na vyriešenie tohto problému je pridaný MOSFET a slúži ako „logický prepínač“na napájanie LM339. To umožňuje Wemos naštartovať, nastaviť svoje 4 x porovnávacie GPIO piny ako „INPUT_PULLUP“, niekoľko sekúnd zdržať a POTOM (cez ďalší GPIO pin D5 definovaný ako VÝSTUP) poslať signál „HIGH“cez GPIO pin D5 na MOSFET, čím sa logicky zapne LM339. Odporučil by som zapojenie ako vyššie, ale AK zistíte, že Wemos havaruje rovnako ako ja, potom budete musieť zahrnúť MOSFET s 1k ohmovým sťahovacím odporom. Ďalšie informácie o tom, ako to urobiť, nájdete na konci tohto návodu.

Alarmové zóny na neinvertujúcich vstupoch LM339

Teraz musíme viesť káble z každej zóny na ústredni alarmu na vstupy komparátora LM339. Keď je poplašný systém stále vypnutý, pre každú zónu zapojte vodič do každého neinvertujúceho (+) vstupu na komparátore LM339. Napríklad v mojom systéme:

  • Vodič zo Z1 prechádza na vstup LM339 1+
  • Vodič zo Z2 prechádza na vstup LM339 2+
  • Vodič zo Z3 prechádza na vstup LM339 3+
  • Vodič zo Z4 prechádza na vstup LM339 4+

Ak máte pripomienku, pozrite sa na pin LM339 v kroku 3 (je farebne označený s obrázkom breadboardu). Po dokončení by mal váš doska na pečenie vyzerať podobne ako obrázok zobrazený v tomto kroku.

Zapnite poplašný systém a zmerajte napätie vychádzajúce z deliča napätia, aby ste sa uistili, že sa zhoduje s vašim referenčným napätím, ako bolo vypočítané skôr.

Krok 5: Zapojenie Wemos D1 Mini

Zapojenie Wemos D1 mini

Teraz máme o všetky vstupy LM339 postarané, teraz potrebujeme zapojiť Wemos D1 mini. Každý výstupný kolík LM339 smeruje na pin Wemos GPIO (vstup/výstup na všeobecné účely), ktorý označíme prostredníctvom kódu ako vstupný výsuvný kolík. Wemos potrebuje až 5 V ako napätie Vcc (vstupný zdroj) (aj keď to vnútorne reguluje na 3,3 V) Na spustenie 12V koľajnice na doske použijeme veľmi bežný regulátor napätia LM7805 (EDIT: pozri nižšie). 5 V na napájanie Wemos. Dátový list pre LM7805 naznačuje, že na vyrovnanie napájania potrebujeme kondenzátor zapojený na každej strane regulátora, ako je to znázornené na obrázku na lište. Dlhšia noha kondenzátora je kladná (+), preto zaistite, aby bola zapojená správnym spôsobom.

Regulátor napätia odoberá napätie (kolík na ľavej strane), uzemnenie (stredný kolík) a napätie (kolík na pravej strane) Dvakrát skontrolujte vývod, ak sa váš regulátor napätia líši od LM7805.

(EDIT: Zistil som, že zosilňovače vychádzajúce z poplachového panelu sú príliš vysoké na to, aby ich LM7805 zvládol. To spôsobilo veľa tepla v malom chladiči LM7805 a spôsobilo to jeho poruchu, čo následne viedlo k zastaveniu Wemosu. funguje. Namiesto toho som vymenil LM7805 a kondenzátory za konvertor DC-DC a odvtedy som nemal žiadne problémy. Odvtedy sa dajú veľmi ľahko zapojiť. Jednoducho pripojte vstupné napätie z alarmu, najskôr ho pripojte k multimetru a použite skrutku potenciometra. a upravte, kým nebude výstupné napätie ~ 5V)

Vstupné piny GPIO

Na tento projekt používame nasledujúce piny:

  • zóna Z1 => pin D1
  • zóna Z2 => pin D2
  • zóna Z3 => pin D3
  • zóna Z4 => pin D5

Zapojte výstupy z LM339 do príslušných pinov GPIO na doske Wemos podľa obrázka breadboard zobrazeného v tomto kroku. Opäť som farebne odlíšil vstupy a zodpovedajúce výstupy, aby bolo jednoduchšie vidieť, čo na čo odkazuje. Každý GPIO pin v Arduine je definovaný ako „INPUT_PULLUP“, čo znamená, že pri normálnom použití (IDLE) budú vytiahnuté až na 3,3 V a LM339 ich stiahne na zem, ak sa spustí PIR. Kód detekuje zmenu HIGH až LOW a odošle správu bezdrôtovo do vášho softvéru pre domácu automatizáciu. Ak máte problémy s touto prácou, je možné, že máte invertujúce a neinvertujúce vstupy nesprávnym spôsobom (ak napätie z vášho PIR pri spustení stúpne, ako sa to stáva pri väčšine hobby PIR, potom budete chcieť pripojenia naopak)

Arduino IDE

Odstráňte Wemos z nepájivej tabule, teraz doň musíme nahrať kód (alternatívny odkaz tu) Nebudem sa podrobne zaoberať tým, ako to urobiť, pretože na internete je veľa článkov o nahrávaní kódu na server Wemos alebo iný ESP8266. typové dosky. Pripojte kábel USB k doske Wemos a k počítaču a spustite Arduino IDE. Stiahnite si kód a otvorte ho vo svojom projekte. Budete musieť zaistiť, aby bola pre váš projekt nainštalovaná a načítaná správna doska, ako aj vybratý správny port COM (Nástroje, Port). Budete tiež potrebovať nainštalované príslušné knižnice (PubSubClient, ESP8266Wifi) Ak chcete, aby bola doska Wemos zahrnutá do vášho náčrtu, pozrite si tento článok.

Nasledujúce riadky kódu budete musieť zmeniť a nahradiť novým SSID a heslom pre bezdrôtové pripojenie. Zmeňte tiež adresu IP tak, aby smerovala na vášho vlastného makléra MQTT.

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* heslo = "vaše_wifi_password_here"; // Adresa IP makléra MQTT MQTT_SERVER (172, 16, 223, 254)

Po zmene overte svoj kód a potom ho nahrajte na dosku Wemos pomocou kábla USB.

Poznámky:

  • Ak používate rôzne porty GPIO, budete musieť kód upraviť. Ak používate viac alebo menej zón ako ja, budete tiež musieť upraviť kód a TOTAL_ZONES = 4; konštantný, aby vyhovoval.
  • Po spustení môjho poplachového systému poplašný systém vykoná test napájania všetkých 4 x PIR, ktoré stiahli všetky pripojené GPIO na zem, čo spôsobilo, že Wemos si myslel, že zóny sú spustené. Kód bude ignorovať odosielanie správ MQTT, ak vidí všetky 4 x zóny aktívne súčasne, pretože predpokladá, že sa poplašný systém zapína.

Alternatívny odkaz na stiahnutie ku kódu TU

Krok 6: Testovanie a konfigurácia OpenHAB

Testovanie a konfigurácia OpenHAB
Testovanie a konfigurácia OpenHAB

Testovanie MQTT

MQTT je systém zasielania správ „predplatné / zverejnenie“. Jedno alebo viac zariadení môže hovoriť s „maklérom MQTT“a „prihlásiť sa na odber“určitej témy. Všetky prichádzajúce správy z akéhokoľvek iného zariadenia, ktoré sú „publikované“na rovnakú tému, budú sprostredkovateľom vytlačené do všetkých zariadení, ktoré sa k nemu prihlásili. Je to extrémne ľahký a ľahko použiteľný protokol a je perfektný ako jednoduchý spúšťací systém, akým je napríklad tento. Na testovanie si môžete prezerať prichádzajúce správy MQTT od Wemos svojmu maklérovi MQTT spustením nasledujúceho príkazu na serveri Mosquitto (Mosquitto je jedným z mnohých dostupných softvérov MQTT Broker). Tento príkaz sa prihlási k odberu prichádzajúcich udržiavacích správ:

mosquitto_sub -v -t openhab/alarm/stav

Prichádzajúce správy prichádzajúce od Wemos by ste mali vidieť každých 30 sekúnd s číslom „1“(čo znamená „žijem“) Ak vidíte konštantné „0“(alebo žiadna odpoveď), potom neexistuje žiadna komunikácia. Akonáhle uvidíte prichádzať číslo 1, znamená to, že Wemos komunikuje s maklérom MQTT (ďalšie informácie o tom, ako to funguje, hľadajte v „MQTT Last Will and Testament“, alebo si pozrite tento skutočne dobrý článok na blogu)

Keď ste dokázali, že komunikácia je funkčná, môžeme otestovať, či sa stav zóny hlási prostredníctvom MQTT. Prihláste sa na odber nasledujúcej témy (# je zástupný znak)

mosquitto_sub -v -t openhab/alarm/#

Mali by prísť obvyklé stavové správy, rovnako ako IP adresa samotného Wemosu. Kráčajte pred PIR a mali by ste tiež vidieť, ako prichádzajú informácie o zóne, ktoré naznačujú, že sú OTVORENÉ, potom zhruba o sekundu neskôr, že sú ZATVORENÉ, podobne ako nasledujúce:

openhab/alarm/stav 1

openhab/alarm/zóna1 OTVORENÉ

openhab/alarm/zóna1 ZATVORENÉ

Akonáhle to funguje, môžeme nakonfigurovať OpenHAB tak, aby to bolo pekne reprezentované v GUI.

Konfigurácia OpenHAB

Pre OpenHAB sú potrebné nasledujúce zmeny:

Transformačný súbor „alarm.map“: (voliteľné, na testovanie)

CLOSED = IdleOPEN = TriggeredNULL = Neznáme- = Neznáme

Transformačný súbor 'status.map':

0 = zlyhalo

1 = online -= DOLE! NULL = neznáme

súbor 'items':

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 "Chart 1 Zone" Contact alarmZone1State "State 1 State [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/zone1: state: default "} String alarmZone1Trigger" Lounge PIR [%1 $ ta%1 $ tr] "Number zone2_Chart_Period" Zone 2 Chart "Contact alarmZone2State" Zone 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" Zone 3 Chart "Contact alarmZone3State" Zone 3 Stav [MAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: state: default "} Reťazec alarmZone3Trigger" Spálňa PIR [%1 $ ta%1 $ tr] "číslo zone4_Chart_Period "Mapa zóny 4" Kontakt alarmZone4State "Stav zóny 4 [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: state: default "} String alarmZone4Trigger" Main Hall PIR [%1 $ ta %1 $ tr]"

súbor „mapa webu“(vrátane grafov rrd4j):

Textová položka = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Rámček {Prepnúť položku = zone1_Chart_Period label = Mapovanie „Obdobia“= [0 = „Hodina“, 1 = „Deň“, 2 = „Týždeň“] Adresa URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 0, zone1_Chart_Period = = Neinicializovaný] Adresa URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 1] Adresa URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 2]}} Textová položka = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Rámček {Prepnúť položku = zone2_Chart_Period label = "Obdobie" mapovania = [0 = "Hodina", 1 = "Deň", 2 = "Týždeň"] URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 0, zone2_Chart_Period == Neinicializovaný] Adresa URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] Adresa URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 2]}} Textová položka = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone3_Chart_Period label = mapovanie "Obdobia" = [0 = "Hodina", 1 = "Deň", 2 = "Týždeň"] Adresa URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == Neinicializovaný] obrázok url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 1] URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} Text item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone4_Chart_Period label = " Obdobie "mapovania = [0 =" Hodina ", 1 =" Deň ", 2 =" Týždeň "] Adresa URL obrázku =" https:// localhost: 8080/rrdchart.png "visibility = [zone4_Chart_Period == 0, zone4_Chart_Period == Neinicializovaný] Adresa URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 1] Adresa URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // VOLITELNÉ, ale praktické na diagnostiku stavu a zvýšenia IP ss Textová položka = alarmMonitorState Textová položka = alarmMonitorIPAddress

súbor „rules“:

pravidlo „Zmena stavu poplachovej zóny 1“

keď sa položka alarmZone1State zmení na OTVORENÚ, potom postUpdate (alarmZone1Trigger, nový DateTimeType ()) alarmZone1State.state = ZATVORENÝ koniec

pravidlo „Zmena stavu poplachovej zóny 2“

keď sa položka alarmZone2State zmení na OTVORENÚ, potom postUpdate (alarmZone2Trigger, nový DateTimeType ()) alarmZone2State.state = ZATVORENÝ koniec

pravidlo „Zmena stavu poplachovej zóny 3“

keď sa položka alarmZone3State zmení na OTVORENÚ, potom postUpdate (alarmZone3Trigger, nový DateTimeType ()) alarmZone3State.state = ZATVORENÝ koniec

pravidlo „Zmena stavu poplachovej zóny 4“

keď sa položka alarmZone4State zmení na OTVORENÚ, potom postUpdate (alarmZone4Trigger, nový DateTimeType ()) alarmZone4State.state = ZATVORENÝ koniec

Možno budete musieť vyššie uvedenú konfiguráciu OpenHAB mierne zmeniť, aby vyhovovala vášmu vlastnému nastaveniu.

Ak máte problémy so spustením PIR, začnite od začiatku a zmerajte napätie pre každú časť obvodu. Akonáhle ste s tým spokojní, skontrolujte svoje zapojenie, zaistite, aby existoval spoločný základ, kontrolujte správy na serveri Wemos prostredníctvom konzoly na sériové ladenie, skontrolujte komunikáciu MQTT a skontrolujte syntax svojej transformácie, položiek a súborov mapy webu.

Veľa štastia!

Odporúča: