Obsah:

Alarm PIR na WiFi (a domácí automatizace): 7 kroků (s obrázky)
Alarm PIR na WiFi (a domácí automatizace): 7 kroků (s obrázky)

Video: Alarm PIR na WiFi (a domácí automatizace): 7 kroků (s obrázky)

Video: Alarm PIR na WiFi (a domácí automatizace): 7 kroků (s obrázky)
Video: iGET Security: Chytré zabezpečení od české firmy! (RECENZE #1060) 2024, Listopad
Anonim
Image
Image
Alarm PIR na WiFi (a domácí automatizace)
Alarm PIR na WiFi (a domácí automatizace)

Přehled

Tento instruktážní program vám poskytne možnost zobrazit poslední datum/čas (a volitelně historii časů), kdy byly ve vašem softwaru pro domácí automatizaci spuštěny PIR (pasivní infračervené senzory) vašeho domácího alarmu. V tomto projektu budu diskutovat o tom, jak používat OpenHAB (bezplatný software pro domácí automatizaci, který osobně používám), ačkoli bude fungovat s jakýmkoli jiným softwarem nebo aplikací pro domácí automatizaci, která podporuje MQTT (také popsáno dále v tomto článku). Tento návod vás provede nezbytnými kroky, jak zapojit desku s obvody a Wemos D1 mini (deska IOT využívající čip ESP8266), která se zapojí do poplachových zón ve vašem ovládacím panelu alarmu, takže když zóna (která obsahuje jeden nebo více PIR), Wemos odešle zprávu bezdrátově pomocí protokolu MQTT do vašeho softwaru pro domácí automatizaci, který zase zobrazí poslední datum/čas tohoto spouštěče. K dispozici je také kód Arduino pro programování Wemos.

Úvod

Výše uvedený obrázek je to, co vidím prostřednictvím jedné z obrazovek v aplikaci OpenHAB na mém iPhone. Text data/času je barevně kódován, aby poskytl rychlejší představu o tom, kdy byl spuštěn PIR - zobrazí se červená (spuštěna během poslední 1 minuty), oranžová (spuštěna během posledních 5 minut), zelená (spuštěna během posledních 30 minut), modrá (spuštěna během poslední hodiny) nebo jinak, černá. Kliknutím na datum/čas se zobrazí historický pohled na spouštěče PIR, kde 1 znamená spuštění a 0 je nečinný. Existuje mnoho použití, například by to mohlo doplnit řešení vaší přítomnosti v domácnosti, může detekovat pohyb, pokud jste pryč, a prostřednictvím pravidel OpenHAB odesílat oznámení na váš telefon, můžete jej použít jako já a zjistit, zda jsou moje děti vstávání uprostřed noci, vyvolané PIR, který sídlí mimo jejich ložnice!

OpenHAB je jednoduše software pro automatizaci domácnosti, který používám, existuje mnoho dalších - a pokud podporují MQTT, můžete tento projekt snadno přizpůsobit tak, aby vyhovoval softwaru, který používáte.

Předpoklady

Tento pokyn předpokládá, že již máte (nebo budete nastavovat):

  • Evidentně domácí poplašný systém s PIR (pasivní infračervené senzory) a že máte přístup k ovládací skříňce alarmu pro připojení potřebného zapojení
  • OpenHAB (bezplatný open source software pro domácí automatizaci) spuštěný, i když, jak bylo uvedeno, by měl fungovat s jakýmkoli softwarem pro domácí automatizaci, který může obsahovat vazbu MQTT. Alternativně můžete kód sami upravit tak, aby vyhovoval vašim vlastním potřebám.
  • Mosquitto MQTT (nebo podobný) broker nainstalován a vazba nakonfigurována pomocí OpenHAB (MQTT je protokol typu přihlášení k odběru/publikování, který je lehký a skvělý pro komunikaci mezi zařízeními)

Pokud nespouštíte OpenHAB a brokera MQTT, podívejte se na tento vynikající článek na webu MakeUseOf

Co potřebuji?

K vytvoření bezdrátového ovladače budete potřebovat zdroj následujících částí:

  • Wemos D1 mini V2 (má vestavěný bezdrátový čip ESP8266)
  • Komparátor LM339 (provede kontrolu PIR nečinnosti vs. spuštění)
  • Napájecí zdroj 5 V DC pro Wemos (NEBO převodník DC-DC buck. Poznámka: regulátor napětí LM7805 nemusí pro tuto aplikaci fungovat, jak je uvedeno dále v tomto projektu)
  • Dva odpory pro dělič napětí (velikost bude záviset na vašich poplachových napětích, diskutováno dále v projektu)
  • Jeden 1K ohmový odpor, který funguje jako stahovací odpor pro ovládání napájení LM339
  • Jeden 2N7000 (nebo podobný) MOSFET k logickému zapnutí LM339 (možná volitelně, diskutováno dále v projektu)
  • Vhodná velikost prkénka pro nastavení a testování obvodů
  • Spousta drátů na prkénko k propojení všeho dohromady
  • Potřebné nástroje: boční frézy, jednožilový drát
  • Multimetr DC (povinný!)

Krok 1: Ovládací box poplašného systému

Ovládací box poplašného systému
Ovládací box poplašného systému

Nejprve několik varování a zřeknutí se odpovědnosti

Osobně mám poplašný systém Bosch. Vřele doporučuji stáhnout si příslušnou příručku k vašemu konkrétnímu poplašnému systému a seznámit se s ním, než začnete, protože budete muset vypnout poplašný systém pro zapojení zón. Také bych vám doporučil přečíst si tento článek celý, než začnete!

Níže je uveden seznam několika věcí, které byste měli vědět, než začnete - než budete pokračovat, ujistěte se, že jste si je přečetli a porozuměli jim! Nenesu žádnou odpovědnost, pokud zpackáte svůj poplašný systém a/nebo budete muset zaplatit instalačnímu pracovníkovi za opravu. Pokud si však přečtete a porozumíte následujícímu a přijmete nezbytná opatření, měli byste být v pořádku:

1. Můj poplachový systém měl záložní baterii uvnitř krabice a také tamper spínač na vnitřní straně víka (který poskytuje přístup k desce zabezpečovacího systému), takže i externí vypnutí alarmu při sejmutí předního panelu ovládání box spustil poplach! Abych to obešel, když jsem pracoval na projektu, obešel jsem tamper ochranu odpojením a zkratováním tamper spínače (tlustý červený vodič, jak je znázorněno na fotografii výše)

2. Při napájení zabezpečovacího systému po přibližně ~ 12 hodinách začal poplachový ovládací panel pípat s chybovými kódy. Po určení chybových kódů pomocí příručky jsem zjistil, že mě varuje, že:

  • Datum/čas nebylo nastaveno (k překonfigurování jsem potřeboval hlavní kód a sekvenci klíčů z manuálu)
  • Že záložní baterie nebyla připojena (snadná oprava, jen jsem zapomněl baterii znovu zapojit)

3. V mém alarmu jsou však 4 bloky bloků připojení zón (označené Z1 -Z4), do nichž se PIR připojují na hlavní desce poplachu - můj poplachový systém je ve skutečnosti schopen 8 zón. Každý blok připojení zóny může ve skutečnosti provozovat 2 x zóny (Z1 dělá Z1 a Z5, Z2 dělá Z2 a Z6 atd.). Alarmový systém má vestavěnou ochranu proti neoprávněné manipulaci, která zabrání tomu, aby někdo řekl, otevření víka poplašného systému, jak je uvedeno výše, nebo přerušení vodičů na PIR. Rozlišuje mezi každou zónou tamperu pomocí odporů EOL (end of line). Jedná se o rezistory specifické velikosti, které jsou umístěny na „konci linky“- jinými slovy uvnitř PIR (nebo tamper spínače ovládací skříňky nebo sirénové skříně nebo čehokoli, co je k této zóně připojeno) Jak již bylo zmíněno, tyto rezistory se používají jako „tamper“ochrana ' - technicky, pokud někdo přeruší kabely k PIR - protože poplašný systém očekává, že z tohoto PIR uvidí určitý odpor, pak pokud by se odpor změnil, předpokládá, že někdo manipuloval se systémem a spustí poplach.

Například:

Na mém alarmu má zóna „Z4“2 vodiče, jeden se vypíná na PIR v mé chodbě a jeden sepíná tamper spínače ovládací skříňky alarmu. Uvnitř chodby PIR má odpor 3 300 ohmů. Druhý vodič, který vede ke sabotážnímu spínači ovládací skříňky, má odpor 6800 ohmů zapojený do série. Takto poplašný systém (logicky) rozlišuje podbíječe „Z4“a „Z8“. Stejně tak zóna "Z3" má PIR (s odporem 3300 ohmů) a také tamper spínač sirény (s odporem 6800 ohmů v něm), který tvoří "Z7". Instalační program alarmu by předem nakonfiguroval poplašný systém, aby věděl, jaké zařízení je připojeno ke každé zóně (a změnil velikost odporu EOL tak, aby vyhovoval, protože poplašný systém je naprogramován tak, aby věděl, jakou velikost mají různé odpory EOL. za žádných okolností byste neměli měnit hodnotu těchto rezistorů!)

Takže na základě výše uvedeného, protože každá zóna může mít připojeno také více zařízení (s různými hodnotami odporu) a pamatování na vzorec V = IR (napětí = ampéry x odpor), pak to také může znamenat, že každá zóna může mít různá napětí. Což nás přivádí k dalšímu kroku, měření každé zóny IDLE vs TRIGGERED napětí…

Krok 2: Měření napětí zóny alarmu

Měření napětí zóny alarmu
Měření napětí zóny alarmu
Měření napětí zóny alarmu
Měření napětí zóny alarmu

Jakmile získáte přístup k základní desce vašeho poplachového systému (a obejdete tamper spínač, pokud jej máte; podle předchozího kroku), zapněte svůj poplašný systém zpět. Nyní potřebujeme změřit napětí každé zóny, když je její IDLE (žádný pohyb před PIR) vs TRIGGERED (PIR detekoval pohyb) Popadněte tužku a papír, abyste si mohli zapisovat hodnoty napětí.

UPOZORNĚNÍ: Převážná část vašeho poplachového systému pravděpodobně pracuje na 12 V DC, ale bude mít svůj počáteční napájecí zdroj při 220 V (nebo 110 V) střídavého proudu s transformátorem, který převádí energii ze střídavého proudu na stejnosměrný. PŘEČTĚTE si manuál a udělejte mimořádná opatření, abyste zajistili, že NEMĚŘÍTE žádné AC terminály !!! Podle snímku obrazovky mého poplašného systému na této stránce vidíte, že úplně dole na obrázku je střídavé napájení, transformované na 12V DC. Měříme 12V DC ve zvýrazněných červených polích. Nikdy se nedotýkejte síťového napájení. Buďte extrémně opatrní!

Měření PIR napětí

Mám 4 x PIR připojené k Z1 až k Z4. Změřte každou ze zón následujícím způsobem.

  1. Nejprve identifikujte terminál GND a zónové terminály na zabezpečovacím panelu. Zvýraznil jsem je na obrázku uvedeném v manuálu k alarmu Bosch.
  2. Popadněte multimetr a nastavte měření napětí na 20 V DC. Připojte černý (COM) kabel z multimetru ke svorce GND na alarmu. Umístěte červený (+) vodič z multimetru do první zóny - v mém případě označené „Z1“. Zapište si odečet napětí. Proveďte stejné kroky pro zbývající zóny. Moje měření napětí jsou následující:
  • Z1 = 6,65V
  • Z2 = 6,65V
  • Z3 = 7,92V
  • Z4 = 7,92V

Podle výše uvedeného jsou moje první dvě zóny připojeny pouze k PIR. Poslední dvě zóny mají zapojeny jak PIR, tak sabotážní ochranu (tamper ovládací skříňky Z3, tamper sirény Z4) Všimněte si rozdílů napětí.

3. K tomuto dalšímu kroku budete pravděpodobně potřebovat 2 lidi. Budete také potřebovat vědět, který PIR je v jaké zóně. Vraťte se a přečtěte si napětí v první zóně. Nyní někoho ve svém domě projděte před PIR, napětí by mělo klesnout. Všimněte si nového odečtu napětí. V mém případě se napětí při spuštění PIR čtou následovně:

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

Podle výše uvedeného vidím, že když jsou spuštěny zóny 1 a 2, napětí klesne z 6,65 V na 0 V. Když jsou však spuštěny zóny 3 a 4, napětí klesne ze 7,92 V na 4,30 V.

Měření napájení 12V

K napájení našeho projektu použijeme svorku 12V DC z ovládací skříňky alarmu. Potřebujeme změřit napětí ze zdroje 12 V DC na alarmu. Přestože již uvádí 12V, potřebujeme znát přesnější čtení. V mém případě skutečně čte 13,15V. Zapište si to, tuto hodnotu budete potřebovat v dalším kroku.

Proč měříme napětí?

Důvod, proč potřebujeme měřit napětí pro každý PIR, je kvůli obvodu, který budeme vytvářet. Jako hlavní elektrickou součást tohoto projektu použijeme čtyřnásobný diferenciální komparátorový čip LM339 (nebo komparátor se čtyřmi operačními zesilovači). LM339 má 4 nezávislé komparátory napětí (4 kanály), kde každý kanál odebírá 2 x vstupní napětí (jeden invertující (-) a jeden neinvertující (+) vstup, viz diagram) Pokud by napětí invertujícího vstupního napětí mělo klesnout níže než neinvertujícího napětí, pak bude jeho související výstup přitažen k zemi. Podobně, pokud neinvertující vstupní napětí klesne níže než invertující vstup, pak je výstup vytažen do Vcc. Pohodlně mám ve svém domě 4 x poplachové PIR/zóny - každá zóna bude proto připojena ke každému kanálu na komparátoru. Pokud máte více než 4 x PIR, budete potřebovat komparátor s více kanály nebo jiný LM339!

Poznámka: LM339 spotřebovává energii v nano-zesilovačích, takže neovlivní odpor EOL stávajícího poplašného systému.

Pokud je to matoucí, pokračujte dalším krokem, stejně to začne dávat větší smysl, jakmile to zapojíme!

Krok 3: Vytvoření děliče napětí

Image
Image

Co je dělič napětí?

Dělič napětí je obvod se 2 x odpory (nebo více) v sérii. Prvnímu rezistoru (R1) poskytujeme napětí v (Vin). Druhá část R1 se připojuje k prvnímu rameni druhého rezistoru (R2) a druhý konec R2 se připojuje k GND. Poté odebereme výstupní napětí (Vout) ze spojení mezi R1 a R2. Toto napětí se stane naším referenčním napětím pro LM339. Další informace o tom, jak děliče napětí fungují, najdete na videu Adohms youtube

(Poznámka: odpory nemají polaritu, takže je lze zapojit oběma způsoby)

Výpočet našeho referenčního napětí

Za předpokladu, že napětí klesne, když je spuštěn váš PIR (mělo by to být případ většiny alarmů), pak se snažíme dosáhnout napětí, které je do značné míry na půli cesty mezi naším nejnižším volnoběžným napětím a nejvyšším spuštěným napětím, toto se stane naším referenčním napětím.

Beru si jako příklad můj alarm…

Napětí naprázdno zóny bylo Z1 = 6,65V, Z2 = 6,65V, Z3 = 7,92V, Z4 = 7,92V. Nejnižší volnoběžné napětí je tedy 6,65V

Napětí spouštěná zónou byla: Z1 = 0V, Z2 = 0V, Z3 = 4,30V, Z4 = 4,30V. Nejvyšší spouštěné napětí je tedy 4,30V

Musíme tedy vybrat číslo v polovině mezi 4,30 V a 6,65 V (nemusí být přesné, jen zhruba) V mém případě musí být moje referenční napětí kolem 5,46 V. Poznámka: Pokud jsou nejnižší volnoběh a nejvyšší spouštěné napětí velmi blízko sebe kvůli více zónám způsobujícím rozsah různých napětí, budete možná muset vytvořit 2 nebo více děličů napětí.

Výpočet našich hodnot odporu pro dělič napětí

Nyní máme referenční napětí, musíme vypočítat, jakou velikost rezistorů potřebujeme k vytvoření děliče napětí, který poskytne naše referenční napětí. Budeme používat zdroj 12 V DC napětí (Vs) z alarmu. Ale podle předchozího kroku, když jsme měřili napájení 12 V DC, jsme ve skutečnosti dostali 13,15 V. Musíme vypočítat dělič napětí pomocí této hodnoty jako zdroje.

Vypočítejte Vout pomocí ohmového zákona…

Vout = Vs x R2 / (R1 + R2)

… nebo použijte online kalkulačku děliče napětí:-)

Budete muset experimentovat s hodnotami odporu, dokud nedosáhnete požadovaného výkonu. V mém případě to fungovalo s R1 = 6,8 k ohm a R2 = 4,7 K ohm, vypočteno v dlouhé formě následovně:

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

Zapojení Wemos D1 Mini
Zapojení Wemos D1 Mini

Dělič napětí na invertující vstupy LM339

Jak již bylo zmíněno dříve ohledně komparátoru LM339, bude to vyžadovat 2 x vstupy. Jeden bude napětí z každého PIR na každý kanál neinvertujícího (+) terminálu, druhý bude naším referenčním napětím na náš invertující (-) terminál. Referenční napětí musí napájet všechny 4 invertující vstupy komparátoru. Před provedením těchto kroků vypněte zabezpečovací systém.

  • Veďte vodič z bloku 12 V DC poplašného systému na kolejnici + na prkénku *
  • Veďte vodič z bloku GND na zabezpečovacím systému na kolejnici na prkénku **
  • Nainstalujte komparátor LM339 doprostřed prkénka (zářez označuje nejblíže kolíku 1)
  • Nainstalujte 2 x odpory a vytvořte obvod děliče napětí a vodič pro dělený výstup napětí
  • Veďte vodiče z Vout „děleného napětí“na každý invertující terminál LM339

* TIP: pokud je to možné, použijte k napájení svorku aligátora, protože to usnadňuje napájení vašeho projektu zapnutím/vypnutím ** DŮLEŽITÉ! MOSFET může být vyžadován, pokud Wemos napájíte z panelu Alarm! V mém případě všechny LM339, Wemos a Alarm přijímají energii ze stejného zdroje (tj.: samotný poplašný systém) To mi umožňuje zapnout napájení všeho pomocí jediného napájecího připojení. Standardně jsou však piny GPIO na Wemosech definovány jako piny „INPUT“- což znamená, že odebírají jakékoli napětí, které je na ně vrhnuto, a spoléhají na to, že tento zdroj poskytne správné úrovně napětí (minimální/maximální úrovně), aby Wemos vyhrál ' t havarovat nebo vyhořet. V mém případě se poplašný systém nabije energií a začne velmi rychle spouštět spouštěcí sekvenci - ve skutečnosti tak rychle, že to udělá dříve, než se Wemos může spustit a prohlásit piny GPIO za „INPUT_PULLUP“(napětí nataženo uvnitř čip). To neznamená, že by rozdíly napětí způsobily zhroucení Wemos, když se celý systém dostal k napájení. Jediným způsobem, jak to obejít, by bylo ruční vypnutí a zapnutí Wemosu. K vyřešení tohoto problému je přidán MOSFET a funguje jako „logický přepínač“pro napájení LM339. To umožňuje Wemos nastartovat, nastavit 4 x srovnávací GPIO piny jako „INPUT_PULLUP“, několik sekund zdržet a PAK (přes další GPIO pin D5 definovaný jako OUTPUT) poslat signál „HIGH“přes GPIO pin D5 na MOSFET, který logicky zapíná LM339. Doporučil bych zapojení, jak je uvedeno výše, ale pokud zjistíte, že Wemos havaruje jako já, budete muset zahrnout MOSFET s 1k ohmovým stahovacím odporem. Další informace o tom, jak to provést, najdete na konci tohoto pokynu.

Alarmové zóny pro neinvertující vstupy LM339

Nyní musíme přivést vodiče z každé zóny na ovládacím panelu alarmu ke vstupům komparátoru LM339. Když je poplašný systém stále vypnutý, pro každou zónu přiveďte vodič ke každému neinvertujícímu (+) vstupu na komparátoru LM339. Například v mém systému:

  • Vodič ze Z1 jde na vstup LM339 1+
  • Vodič ze Z2 jde na vstup LM339 2+
  • Vodič ze Z3 jde na vstup LM339 3+
  • Vodič ze Z4 jde na vstup LM339 4+

Pokud si připomenete, podívejte se na pin LM339 v kroku 3 (je barevně odlišený od obrázku na desce). Po dokončení by se měl váš prkénko podobat obrázku uvedenému v tomto kroku.

Zapněte poplašný systém a změřte napětí vycházející z děliče napětí, abyste se ujistili, že se rovná vašemu referenčnímu napětí, jak bylo vypočítáno dříve.

Krok 5: Zapojení Wemos D1 Mini

Zapojení Wemos D1 mini

Nyní máme o všechny vstupy LM339 postaráno, nyní potřebujeme zapojit Wemos D1 mini. Každý výstupní pin LM339 jde na pin Wemos GPIO (vstup/výstup pro obecné účely), který označíme pomocí kódu jako vstupní výsuvný pin. Wemos trvá až 5 V jako napětí Vcc (vstupní zdroj) (i když to interně reguluje až na 3,3 V) Použijeme velmi běžný regulátor napětí LM7805 (EDIT: viz níže), abychom shodili 12V lištu na desce 5V k napájení Wemos. Datový list pro LM7805 naznačuje, že potřebujeme kondenzátor zapojený na každé straně regulátoru, aby se vyhladilo napájení, jak je znázorněno na obrázku na desce. Delší část kondenzátoru je kladná (+), takže zajistěte, aby byla zapojena správným způsobem.

Regulátor napětí odebírá napětí (kolík na levé straně), uzemnění (prostřední kolík) a napětí na výstupu (kolík na pravé straně) Pokud se váš regulátor napětí liší od LM7805, dvakrát zkontrolujte vývod.

(EDIT: Zjistil jsem, že zesilovače vycházející z poplašného panelu jsou příliš vysoké na to, aby je LM7805 zvládl. To způsobovalo velké teplo v malém chladiči LM7805, což způsobilo jeho selhání a následně způsobilo zastavení Wemosu fungující. Místo toho jsem nahradil LM7805 a kondenzátory konvertorem DC-DC buck a od té doby nemám žádné problémy. Ty je velmi snadné zapojit. Jednoduše připojte vstupní napětí z alarmu, nejprve připojte multimetr a použijte šroub potenciometru a upravte, dokud nebude výstupní napětí ~ 5V)

Vstupní piny GPIO

Pro tento projekt používáme následující 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 příslušných GPIO pinů na desce Wemos, podle obrázku v tomto kroku. Opět jsem barevně označil vstupy a odpovídající výstupy, abych lépe viděl, co na co odkazuje. Každý GPIO pin v Arduinu je definován jako 'INPUT_PULLUP', což znamená, že budou při normálním používání (IDLE) přitaženy až na 3,3 V a LM339 je stáhne na zem, pokud se spustí PIR. Kód detekuje změnu VYSOKÉ až NÍZKÉ a bezdrátově odešle zprávu do vašeho softwaru pro domácí automatizaci. Pokud máte problémy s touto prací, je možné, že máte invertující a neinvertující vstupy nesprávně (pokud napětí z vašeho PIR jde při spuštění vysoko, jako se to děje u většiny hobby PIR, pak budete chtít připojení obráceně)

Arduino IDE

Odstraňte Wemos z prkénka, nyní do něj musíme nahrát kód (alternativní odkaz zde) Nebudu se podrobně zabývat tím, jak to udělat, protože na webu je spousta článků o nahrávání kódu do Wemosu nebo jiného ESP8266 typové desky. Zapojte kabel USB do desky Wemos a do počítače a spusťte Arduino IDE. Stáhněte si kód a otevřete jej ve svém projektu. Budete muset zajistit, aby byla pro váš projekt nainstalována a načtena správná deska a také zvolen správný port COM (Nástroje, Port). Budete také potřebovat nainstalované příslušné knihovny (PubSubClient, ESP8266Wifi) Chcete -li do svého náčrtu zahrnout desku Wemos, podívejte se na tento článek.

Následující řádky kódu budete muset změnit a nahradit je vlastním SSID a heslem pro bezdrátové připojení. Také změňte IP adresu tak, aby odkazovala na vašeho vlastního makléře MQTT.

// Wifi

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

Po změně ověřte svůj kód a poté jej nahrajte na desku Wemos pomocí kabelu USB.

Poznámky:

  • Pokud používáte různé porty GPIO, budete muset kód upravit. Pokud používáte více nebo méně zón, než mám já, budete také muset upravit kód a TOTAL_ZONES = 4; konstantní, aby vyhovovaly.
  • Po spuštění mého poplašného systému by poplašný systém provedl test napájení všech 4 x PIR, které stáhly všechny připojené GPIO k zemi, což způsobilo, že si Wemos myslel, že zóny byly spuštěny. Kód bude ignorovat odesílání zpráv MQTT, pokud vidí všechny 4 x zóny aktivní současně, protože předpokládá, že se poplašný systém zapíná.

Alternativní odkaz ke stažení ke kódu ZDE

Krok 6: Testování a konfigurace OpenHAB

Testování a konfigurace OpenHAB
Testování a konfigurace OpenHAB

Testování MQTT

MQTT je systém zasílání zpráv „přihlásit se k odběru / publikovat“. Jedno nebo více zařízení může mluvit s „makléřem MQTT“a „přihlásit se k odběru“určitého tématu. Veškeré příchozí zprávy z jakéhokoli jiného zařízení, které jsou „publikovány“na stejné téma, budou brokerem vytlačeny do všech zařízení, která se k němu přihlásila. Je to extrémně lehký a snadno použitelný protokol a perfektní jako jednoduchý spouštěcí systém, jako je ten zde. Pro testování si můžete zobrazit příchozí zprávy MQTT od Wemos vašemu brokerovi MQTT spuštěním následujícího příkazu na vašem serveru Mosquitto (Mosquitto je jedním z mnoha dostupných softwarů MQTT Broker). Tento příkaz se přihlašuje k příchozím udržovacím zprávám:

mosquitto_sub -v -t openhab/alarm/status

Měli byste vidět příchozí zprávy přicházející od Wemos přibližně každých 30 sekund s číslem „1“(což znamená „jsem naživu“) Pokud vidíte konstantní „0“(nebo žádná odpověď), pak neprobíhá žádná komunikace. Jakmile uvidíte číslo 1, které přichází, pak to znamená, že Wemos komunikuje s makléřem MQTT (další informace o tom, jak to funguje, hledejte „Poslední vůle a svědectví MQTT“, nebo se podívejte na tento opravdu dobrý příspěvek na blog)

Jakmile prokážete, že je komunikace funkční, můžeme otestovat, že se stav zóny hlásí prostřednictvím MQTT. Přihlaste se k odběru následujícího tématu (# je zástupný znak)

mosquitto_sub -v -t openhab/alarm/#

Měly by přijít obvyklé stavové zprávy, stejně jako IP adresa samotného Wemosu. Projděte se před PIR a měli byste také vidět informace o zóně, které indikují, že je OTEVŘENO, nebo o sekundu později, že je ZAVŘENO, podobně jako následující:

openhab/alarm/stav 1

openhab/alarm/zóna1 OTEVŘENO

openhab/alarm/zóna1 ZAVŘENO

Jakmile to funguje, můžeme nakonfigurovat OpenHAB tak, aby to bylo hezky zastoupeno v GUI.

Konfigurace OpenHAB

Pro OpenHAB jsou vyžadovány následující změny:

Transformační soubor 'alarm.map': (volitelný, pro testování)

CLOSED = IdleOPEN = TriggeredNULL = Neznámý- = Neznámý

Transformační soubor 'status.map':

0 = Selhalo

1 = online -= DOLŮ! NULL = neznámý

soubor '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 "} String alarmZone3Trigger" Ložnice PIR [%1 $ ta%1 $ tr] "Číslo zone4_Chart_Period "Zone 4 Chart" Contact alarmZone4State "State 4 State [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: stav: výchozí "} String alarmZone4Trigger" PIR hlavní haly [%1 $ ta %1 $ tr]"

soubor „mapa webu“(včetně grafů rrd4j):

Textová položka = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Rámeček {Přepnout položku = zone1_Chart_Period label = Mapování "Period" = [0 = "Hodina", 1 = "Den", 2 = "Týden"] Adresa URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 0, zone1_Chart_Period = = Neinicializováno] 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ámeček {Přepnout položku = zone2_Chart_Period label = "Období" mapování = [0 = "Hodina", 1 = "Den", 2 = "Týden"] URL adresy = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 0, zone2_Chart_Period == Neinicializováno] URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] 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 = "Period" mappings = [0 = "Hodina", 1 = "Den", 2 = "Týden"] Adresa URL obrázku = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == Neinicializovaný] Obrázek 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"] {Rámeček {Přepnout položku = zone4_Chart_Period label = " Období "mapování = [0 =" Hodina ", 1 =" Den ", 2 =" Týden "] Adresa URL obrázku =" https:// localhost: 8080/rrdchart.png "visibility = [zone4_Chart_Period == 0, zone4_Chart_Period == Neinicializováno] 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é pro diagnostiku stavu a IP addre ss Textová položka = alarmMonitorState Textová položka = alarmMonitorIPAddress

soubor 'rules':

pravidlo „Změna stavu poplachové zóny 1“

když se položka alarmZone1State změní na OTEVŘENO, pak postUpdate (alarmZone1Trigger, nový DateTimeType ()) alarmZone1State.state = ZAVŘENO konec

pravidlo „Změna stavu poplachové zóny 2“

když se položka alarmZone2State změní na OTEVŘENO, pak postUpdate (alarmZone2Trigger, nový DateTimeType ()) alarmZone2State.state = ZAVŘENO konec

pravidlo „Změna stavu poplachové zóny 3“

když se položka alarmZone3State změní na OTEVŘENO, pak postUpdate (alarmZone3Trigger, nový DateTimeType ()) alarmZone3State.state = ZAVŘENO konec

pravidlo „Změna stavu poplachové zóny 4“

když se položka alarmZone4State změní na OTEVŘENO, pak postUpdate (alarmZone4Trigger, nový DateTimeType ()) alarmZone4State.state = ZAVŘENO konec

Možná budete muset výše uvedenou konfiguraci OpenHAB mírně změnit, aby vyhovovala vašemu vlastnímu nastavení.

Pokud máte problémy se spuštěním PIR, začněte od začátku a změřte napětí pro každou část obvodu. Jakmile jste s tím spokojeni, zkontrolujte zapojení, ujistěte se, že existuje společný základ, kontrolujte zprávy na Wemos prostřednictvím konzoly pro sériové ladění, zkontrolujte komunikaci MQTT a zkontrolujte syntaxi vaší transformace, položek a souborů mapy webu.

Hodně štěstí!

Doporučuje: