Tartalomjegyzék:

Riasztás PIR a WiFi -hez (és otthoni automatizáláshoz): 7 lépés (képekkel)
Riasztás PIR a WiFi -hez (és otthoni automatizáláshoz): 7 lépés (képekkel)

Videó: Riasztás PIR a WiFi -hez (és otthoni automatizáláshoz): 7 lépés (képekkel)

Videó: Riasztás PIR a WiFi -hez (és otthoni automatizáláshoz): 7 lépés (képekkel)
Videó: PTZ ПОВОРОТНАЯ IP КАМЕРА с 30X ZOOM - ОБЗОР и ТЕСТЫ 2024, Július
Anonim
Image
Image
PIR riasztás a WiFi -hez (és az otthoni automatizáláshoz)
PIR riasztás a WiFi -hez (és az otthoni automatizáláshoz)

Áttekintés

Ez az utasítás lehetővé teszi, hogy az otthoni automatizálási szoftverben megtekinthesse a házriasztó PIR -jeinek (passzív infravörös érzékelői) aktiválásának utolsó dátumát/idejét (és opcionálisan az idők történetét). Ebben a projektben megvitatom az OpenHAB (ingyenes otthoni automatizálási szoftver, amelyet én személyesen használok) használatát, bár minden más otthoni automatizálási szoftverrel vagy alkalmazással, amely támogatja az MQTT -t (szintén ismertetjük ebben a cikkben). Ez az utasítás végigvezeti Önt a szükséges lépéseken az áramköri kártya és a Wemos D1 mini (egy IOT -kártya, amely ESP8266 chipet használ) bekötésére, amely a riasztó vezérlő doboz riasztási zónáiba csapódik be, így amikor egy zóna (amely egy vagy több PIR) aktiválódik, a Wemos vezeték nélküli üzenetet küld az MQTT protokoll használatával az otthoni automatizáló szoftverének, amely megjeleníti az aktiválás utolsó dátumát/idejét. Arduino kód is rendelkezésre áll a Wemos programozásához.

Bevezetés

A fenti képet látom az iPhone -om OpenHAB alkalmazásának egyik képernyőjén keresztül. A dátum/idő szöveg színkóddal van ellátva, hogy gyorsabban ábrázolja a PIR aktiválásának idejét - piros lesz (az utolsó 1 percben aktiválódott), narancssárga (az utolsó 5 percben aktiválódott), zöld (az utolsó 30 percben aktiválódott), kék (az elmúlt egy órán belül aktiválódott) vagy más módon, fekete. A dátumra/időre kattintva megjelenik a PIR -aktiválók előzményképe, ahol az 1 azt jelenti, hogy aktivált, a 0 pedig tétlen. Ennek sokféle felhasználási módja van, például kiegészítheti az otthoni jelenléti megoldást, képes észlelni a mozgást, ha távol vagy, és az OpenHAB szabályokon keresztül, értesítéseket küld a telefonodra, használhatod, mint én, hogy lássam, a gyerekeim felkelés az éjszaka közepén, a hálószobájukon kívül található PIR által kiváltva!

Az OpenHAB egyszerűen az általam használt otthoni automatizálási szoftver, sok más is létezik - és ha támogatják az MQTT -t, akkor könnyen adaptálhatja ezt a projektet az Ön által használt szoftverhez.

Feltételezések

Ez az utasítás azt feltételezi, hogy már rendelkezik (vagy beállít):

  • Nyilvánvalóan otthoni riasztórendszer PIR -ekkel (passzív infravörös érzékelők), és hozzáfér a riasztó vezérlő dobozhoz a szükséges vezetékek csatlakoztatásához
  • Az OpenHAB (ingyenes nyílt forráskódú otthoni automatizálási szoftver) fut, bár a megbeszéltek szerint minden olyan otthoni automatizálási szoftverrel együtt kell működnie, amely tartalmazhat MQTT kötést. Alternatív megoldásként saját maga is módosíthatja a kódot, hogy megfeleljen saját igényeinek.
  • Mosquitto MQTT (vagy hasonló) közvetítő telepítve és kötve OpenHAB -val konfigurálva (az MQTT egy üzenetküldési előfizetés/közzététel típusú protokoll, amely könnyű és kiváló az eszközök közötti kommunikációhoz)

Ha nem futtatja az OpenHAB -ot és egy MQTT -brókert, tekintse meg ezt a kiváló cikket a MakeUseOf webhelyen

Mire van szükségem?

A vezeték nélküli vezérlő létrehozásához a következő részeket kell beszereznie:

  • Wemos D1 mini V2 (beépített ESP8266 vezeték nélküli CHIP)
  • LM339 összehasonlító (ez ellenőrzi a PIR tétlen és kiváltott állapotát)
  • 5 V egyenáramú áramforrás a Wemos számára (VAGY DC-DC buck konverter. Megjegyzés: előfordulhat, hogy az LM7805 feszültségszabályozó nem működik ebben az alkalmazásban, amint ezt a projekt később tárgyalja)
  • Két ellenállás egy feszültségosztóhoz (mérete a riasztási feszültségtől függ, a projekt későbbi részében tárgyaljuk)
  • Egy 1K ohmos ellenállás, amely lehúzható ellenállóként működik az LM339 teljesítmény szabályozására
  • Egy 2N7000 (vagy hasonló) MOSFET az LM339 logikai bekapcsolásához (esetleg opcionális, a projekt későbbi részében tárgyaljuk)
  • Megfelelő méretű kenyérlap az áramkör beállításához és teszteléséhez
  • Egy csomó kenyeretábla -vezeték, hogy mindent össze lehessen kötni
  • Szükséges eszközök: oldalsó vágók, egymagos huzal
  • DC multiméter (kötelező!)

1. lépés: A riasztórendszer vezérlő doboza

A riasztórendszer vezérlő doboza
A riasztórendszer vezérlő doboza

Először néhány figyelmeztetés és lemondás

Személy szerint Bosch riasztórendszerem van. Nagyon javaslom, hogy töltse le a megfelelő kézikönyvet az adott riasztórendszeréhez, és mielőtt elkezdi, ismerkedjen meg vele, mivel a zónák bekötéséhez le kell kapcsolnia a riasztórendszert. Azt is javaslom, hogy mielőtt elkezdené, olvassa el teljes egészében ezt a cikket!

Az alábbiakban felsorolunk néhány dolgot, amelyeket tudnia kell, mielőtt elkezdené - mindenképpen olvassa el és értse meg mindegyiket, mielőtt folytatja! Nem vállalok felelősséget, ha elrontja a riasztórendszert, és/vagy fizetnie kell a szerelőnek a javításért. Ha azonban elolvassa és megérti az alábbiakat, és megteszi a szükséges óvintézkedéseket, akkor rendben kell lennie:

1. A riasztórendszeremben volt egy tartalék akkumulátor a dobozban, és a fedél belsejében szabotázskapcsoló is volt (amely hozzáférést biztosít a riasztórendszerhez), így a riasztó külső kikapcsolása is, amikor eltávolítja a vezérlő előlapját doboz riasztást váltott ki! Ennek elkerülése érdekében, miközben a projekten dolgoztam, megkerültem a szabotázsvédelmet, kihúzva, majd rövidre zárva a szabotázskapcsolót (a vastag piros huzal, ahogy a fenti képen látható)

2. A riasztórendszer visszakapcsolásakor körülbelül 12 óra elteltével a riasztóközpont sípolni kezdett a hibakódokkal. Miután a hibakódokat a kézikönyvben meghatározta, rájöttem, hogy figyelmeztet, hogy:

  • A dátum/idő nincs beállítva (a mester kódra és a kulcsok sorrendjére szükségem volt a kézikönyvből az újrakonfiguráláshoz)
  • Hogy a tartalék akkumulátor nem volt csatlakoztatva (egyszerű javítás, csak elfelejtettem visszahelyezni az akkumulátort)

3. A riasztásomban 4 x zóna csatlakozóblokk (Z1 -Z4 jelzéssel) van a PIR -ek számára a fő riasztótáblán, de a riasztórendszerem valójában 8 zónára képes. Minden zónacsatlakozó blokk egyenként 2 x zónát tud futtatni (Z1 Z1 és Z5, Z2 Z2 és Z6 stb.). A riasztórendszer beépített szabotázsvédelemmel megakadályozza, hogy valaki szóljon, felnyitja a riasztórendszer fedelét a fent említett módon, vagy elvágja a vezetékeket a PIR-hez. Megkülönbözteti az egyes zóna szabotázsokat az EOL (sorvég) ellenállásokon keresztül. Ezek kifejezetten méretezett ellenállások, amelyek a "vonal végén" találhatók - más szóval a PIR -ben (vagy a vezérlődoboz szabotázskapcsolójában, vagy sziréna dobozában, vagy bármi, ami ehhez a zónához van kötve). Amint említettük, ezeket az ellenállásokat szabotázsként használják védelem” - technikailag, ha valaki elvágja a kábeleket egy PIR -hez - mivel a riasztórendszer bizonyos ellenállást vár el ettől a PIR -től, akkor ha az ellenállás megváltozik, feltételezi, hogy valaki beavatkozott a rendszerbe, és elindítja a riasztást.

Például:

A riasztómon a "Z4" zónában 2 vezeték van, az egyik a folyosón lévő PIR -hez, a másik pedig a riasztó vezérlő doboz szabotázskapcsolójához. A folyosó PIR belsejében 3300 ohmos ellenállás található. A másik vezeték, amely a vezérlődoboz szabotázskapcsolójához vezet, egy 6800 ohmos soros ellenállással rendelkezik. A riasztórendszer (logikusan) így különbözteti meg a "Z4" és a "Z8" szabotázsokat. Hasonlóképpen, a "Z3" zónában van egy PIR (3300 ohmos ellenállással), valamint a sziréna szabotázs kapcsoló (6800 ohmos ellenállással), amely a "Z7" -t alkotja. A riasztótelepítő előre konfigurálta volna a riasztórendszert, hogy tudja, melyik eszköz van csatlakoztatva az egyes zónákhoz (és módosítsa az EOL ellenállás méretét, hogy megfeleljen, mert a riasztórendszer úgy van programozva, hogy tudja, milyen méretűek a különböző EOL ellenállások.) semmilyen körülmények között ne módosítsa ezen ellenállások értékét!)

Tehát a fentiek alapján, mivel minden zónához több eszköz is csatlakoztatható (különböző ellenállási értékekkel), és emlékezve a V = IR képletre (feszültség = amper x ellenállás), ez azt is jelentheti, hogy minden zóna eltérő feszültségű lehet. Ez elvezet minket a következő lépéshez, az egyes zónák IDLE és TRIGGERED feszültségének méréséhez …

2. lépés: A riasztási zóna feszültségének mérése

Riasztási zóna feszültségének mérése
Riasztási zóna feszültségének mérése
A riasztási zóna feszültségének mérése
A riasztási zóna feszültségének mérése

Miután hozzáfér a riasztórendszer alaplapjához (és megkerüli a szabotázskapcsolót, ha rendelkezik ilyennel; az előző lépés szerint), kapcsolja be újra a riasztórendszert. Most meg kell mérnünk minden zóna feszültségét, amikor az alapjárat (nincs mozgás a PIR előtt) vs TRIGGERED (A PIR mozgást észlelt) Fogjon egy tollat és papírt, hogy leírhassa a feszültségértékeket.

FIGYELMEZTETÉS: A riasztórendszer nagy része nagy valószínűséggel 12 V egyenárammal működik, azonban kezdeti tápellátása 220 V (vagy 110 V) váltakozó áramú lesz, és a transzformátor átalakítja az áramot egyenáramra. OLVASSA EL a kézikönyvet, és tegyen fokozott elővigyázatosságot annak biztosítására, hogy NEM mérjen váltakozó áramú csatlakozókat !!! A riasztórendszerem képernyőképén látható, hogy ezen az oldalon látható, hogy a kép legalja a hálózati feszültség, 12V DC -re átalakítva. A 12 V egyenáramot a kiemelt piros dobozokban mérjük. Soha ne érintse meg a hálózati tápegységet. Rendkívül óvatosan!

PIR feszültség mérése

4 x PIR -em van a Z1 -től a Z4 -ig. Mérje meg az egyes zónákat az alábbiak szerint.

  1. Először azonosítsa a GND terminált és a zóna terminálokat a riasztó panelen. Ezeket kiemeltem a Bosch riasztó kézikönyvében látható képen.
  2. Fogja meg a multimétert, és állítsa a feszültségmérést 20V DC -re. Csatlakoztassa a multiméter fekete (COM) kábelét a riasztó GND termináljához. Helyezze a multiméter piros (+) vezetékét az első zónába - esetemben "Z1" felirattal. Írja le a feszültség leolvasását. Végezze el ugyanezeket a lépéseket a többi zónához. A feszültségmérésem a következő:
  • Z1 = 6,65 V
  • Z2 = 6,65V
  • Z3 = 7,92V
  • Z4 = 7,92V

A fentiek szerint az első két zónámhoz csak PIR -ek vannak csatlakoztatva. Az utóbbi két zónába PIR és szabotázsvédelem is be van kötve (Z3 vezérlőszekrény szabotázs, Z4 sziréna szabotázs) Vegye figyelembe a feszültségkülönbségeket.

3. Valószínűleg 2 emberre lesz szüksége a következő lépéshez. Azt is tudnia kell, hogy melyik PIR melyik zónában van. Menjen vissza, és olvassa le az első zóna feszültségét. Most vegyen valakit a házába, hogy sétáljon a PIR előtt, a feszültségnek le kell esnie. Vegye figyelembe az új feszültségleolvasást. Esetemben a feszültségek a következőképpen olvashatók, amikor a PIR -ek aktiválódnak:

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

A fentiek szerint látom, hogy az 1. és 2. zóna aktiválásakor a feszültség 6.65V -ról 0V -ra csökken. A 3. és 4. zóna aktiválásakor azonban a feszültség 7,92 V -ról 4,30 V -ra csökken.

12V -os tápegység mérése

A 12V egyenáramú terminált fogjuk használni a riasztó vezérlő dobozból a projektünk áramellátásához. Meg kell mérnünk a feszültséget a riasztó 12 V egyenáramú táplálásából. Bár már 12 V -ot tartalmaz, pontosabb leolvasást kell tudnunk. Az én esetemben valójában 13,15 V -ot mutat. Ezt írja le, a következő lépésben szüksége lesz erre az értékre.

Miért mérjük a feszültséget?

Az ok, amiért minden egyes PIR feszültségét mérnünk kell, az az általunk létrehozandó áramkör. Ebben a projektben egy LM339 négydimenziós differenciál-összehasonlító chipet (vagy négy op-erősítő komparátort) fogunk használni, mint alapvető elektromos komponenst. Az LM339 4 független feszültség-összehasonlítóval (4 csatorna) rendelkezik, ahol minden csatorna 2 x bemeneti feszültséget vesz fel (egy invertáló (-) és egy nem invertáló (+) bemenet, lásd az ábrát) Ha az invertáló bemeneti feszültség alacsonyabb, mint a nem invertáló feszültséget, akkor a hozzá tartozó kimenet a földhöz kerül. Hasonlóképpen, ha a nem invertáló bemeneti feszültség alacsonyabb, mint az invertáló bemenet, akkor a kimenet Vcc-ig húzódik. Kényelmesen, a házamban 4 x riasztó PIR/zóna van - ezért minden zóna bekötésre kerül az összehasonlító minden csatornájához. Ha több mint 4 x PIR -je van, szüksége lesz egy több csatornás összehasonlítóra, vagy egy másik LM339 -re!

Megjegyzés: Az LM339 nanoerősítőben fogyaszt áramot, így nem befolyásolja a meglévő riasztórendszer EOL ellenállását.

Ha ez zavaró, folytassa a következő lépéssel, mindenképpen értelmesebbé válik, amint bekötjük!

3. lépés: Feszültségosztó létrehozása

Image
Image

Mi az a feszültségosztó?

A feszültségosztó olyan áramkör, amely 2 x (vagy több) ellenállással rendelkezik sorban. Feszültséget biztosítunk (Vin) -ben az első ellenállásba (R1) Az R1 másik lába a második ellenállás első lábához (R2) csatlakozik, az R2 másik vége pedig a GND -hez. Ezután egy kimeneti feszültséget (Vout) veszünk az R1 és R2 közötti kapcsolatból. Ez a feszültség lesz az LM339 referenciafeszültsége. Ha többet szeretne megtudni a feszültségosztók működéséről, tekintse meg az Adohms youtube videóját

(Megjegyzés: az ellenállások nem rendelkeznek polaritással, így mindkét irányban beköthetők.)

Referenciafeszültségünk kiszámítása

Ha feltételezzük, hogy a feszültség csökken, amikor a PIR aktiválódik (ennek kell lennie a legtöbb riasztás esetében), akkor azt próbáljuk elérni, hogy olyan feszültségértéket kapunk, amely nagyjából félúton van a legalacsonyabb üresjárati feszültség és a legmagasabb kiváltott feszültség között, ez lesz a referenciafeszültségünk.

Példaként véve az ébresztőmet…

A zóna üresjárati feszültségei Z1 = 6.65V, Z2 = 6.65V, Z3 = 7.92V, Z4 = 7.92V. A legalacsonyabb üresjárati feszültség tehát 6,65 V

A zóna által kiváltott feszültségek a következők voltak: Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V. A legnagyobb aktivált feszültség tehát 4,30 V

Tehát számot kell választanunk félúton 4,30 V és 6,65 V között (nem kell pontosnak lennie, csak nagyjából). Esetemben a referenciafeszültségnek 5,46 V körül kell lennie. Megjegyzés: Ha a legalacsonyabb üresjárati és a legmagasabb kiváltott feszültség nagyon közel van egymáshoz több zóna miatt, amelyek különböző feszültségek tartományát okozzák, akkor lehet, hogy létre kell hoznia 2 vagy több feszültségosztót.

Ellenállás értékeink kiszámítása a feszültségosztóhoz

Most van egy referenciafeszültségünk, ki kell számolnunk, hogy milyen méretű ellenállásokra van szükségünk egy olyan feszültségosztó létrehozásához, amely biztosítja a referenciafeszültségünket. A riasztásból származó 12V DC feszültségforrást (Vs) fogjuk használni. Azonban az előző lépés szerint, amikor a 12 V egyenáramot mértük, valójában 13,15 V -ot kaptunk. Ki kell számolnunk a feszültségosztót, ezt az értéket használva forrásként.

A Vout kiszámítása ohmos törvény segítségével…

Vout = Vs x R2 / (R1 + R2)

… Vagy használjon online feszültségosztó számológépet:-)

A kívánt kimenet eléréséig kísérleteznie kell az ellenállás értékeivel. Az én esetemben ez R1 = 6,8 k ohm és R2 = 4,7 K ohm esetén működött, hosszú formában számítva az alábbiak szerint:

Vout = Vs x R2 / (R1 + R2)

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

Vout = 61, 805/11, 500

Vout = 5,37V

4. lépés: Csatlakoztassa az LM339 -et

A Wemos D1 Mini bekötése
A Wemos D1 Mini bekötése

Feszültségosztó az LM339 invertáló bemenetekhez

Amint azt korábban az LM339 összehasonlítóval kapcsolatban tárgyaltuk, 2 x bemenetre lesz szükség. Az egyik feszültség lesz minden PIR-től az egyes csatornák nem invertáló (+) termináljához, a másik pedig a referenciafeszültségünk az invertáló (-) terminálhoz. A referenciafeszültségnek táplálni kell mind a 4 összehasonlító invertáló bemenetet. Kapcsolja ki a riasztórendszert, mielőtt végrehajtja ezeket a lépéseket.

  • Vegyen vezetéket a riasztóberendezés 12 V egyenáramú blokkjától a kenyérsütő + sínjéhez *
  • Húzzon vezetéket a riasztórendszer GND blokkjától a kenyértábláján lévő sínig **
  • Telepítse az LM339 összehasonlítót a kenyértábla közepére (a bevágás a legközelebb van az 1 -es csaphoz)
  • Telepítse a 2 x ellenállást, hogy létrehozzon egy feszültségosztó áramkört és vezetéket az osztott feszültség kimenethez
  • Vezesse a vezetékeket a feszültségosztott Vout -ból minden LM339 invertáló terminálhoz

* TIPP: ha lehet, használjon aligátorcsipeszt az áramellátáshoz, mivel ez megkönnyíti a projekt ON/OFF áramellátását ** FONTOS! MOSFET -re lehet szükség, ha a Wemos -t a Riasztás panelről táplálja! Esetemben az LM339, a Wemos és az Alarm ugyanabból a forrásból kap áramot (azaz: maga a riasztórendszer) Ez lehetővé teszi, hogy egyetlen tápellátással mindenre bekapcsoljam. Mindazonáltal alapértelmezés szerint a Wemos GPIO csapjai "INPUT" csapokként vannak definiálva - vagyis minden feszültséget felvesznek rájuk, és arra a forrásra támaszkodva biztosítják a megfelelő feszültségi szintet (min/max szint), hogy a Wemos nyerjen " t összeomlik vagy kiég. Az én esetemben a riasztórendszer felkapja az energiáját, és nagyon gyorsan elkezdi a rendszerindítást - valójában olyan gyorsan, hogy ezt még azelőtt teszi, hogy a Wemos elindulna, és a GPIO csapokat "INPUT_PULLUP" -nak ("feszültség" felfelé húzva) nyilvánítja. Forgács). Ez nem jelenti azt, hogy a feszültségkülönbségek miatt a Wemos összeomlana, amikor az egész rendszer áramot kap. Az egyetlen megoldás a Wemos manuális kikapcsolása és bekapcsolása lenne. Ennek megoldásához egy MOSFET -et adnak hozzá, amely "logikai kapcsoló" -ként működik az LM339 bekapcsolásához. Ez lehetővé teszi, hogy a Wemos elinduljon, 4 x összehasonlító GPIO csapját "INPUT_PULLUP" -ra állítsa, néhány másodpercet késleltet, majd Ekkor (egy másik, D5 GPIO -tűn keresztül, mint OUTPUT) "HIGH" jelet küld a GP5 DIO tűn keresztül a MOSFET -re, amely logikailag bekapcsolja az LM339 -et. Javaslom a fentiek szerinti bekötést, de HA úgy találja, hogy a Wemos összeomlik, mint én, akkor be kell vennie a MOSFET -et 1 k ohmos lehúzó ellenállással. Ennek módjáról további információt az oktatóanyag végén talál.

Riasztási zónák az LM339 nem invertáló bemenetekre

Most vezetékeket kell vezetnünk a riasztóközpont minden zónájából az LM339 összehasonlító bemenetekhez. A riasztórendszer kikapcsolt állapotában minden zóna számára vezetéket kell vezetni az LM339 összehasonlító minden nem invertáló (+) bemenetére. Például az én rendszeremben:

  • A Z1 vezeték az LM339 1+ bemenetre megy
  • A Z2 vezeték az LM339 2+ bemenetre megy
  • A Z3 vezeték a 3+ LM339 bemenetre megy
  • A Z4 vezeték az LM339 4+ bemenetre megy

Ha emlékeztetőt szeretne kapni, olvassa el az LM339 kioldóját a 3. lépésben (ez színkóddal van ellátva a kenyértábla képével). Ha elkészült, a kenyértáblának hasonlónak kell lennie az ebben a lépésben látható képhez.

Kapcsolja be a riasztórendszert, és mérje meg a feszültségosztóból kilépő feszültséget, hogy megbizonyosodjon arról, hogy megegyezik a korábban számított referenciafeszültséggel.

5. lépés: A Wemos D1 Mini bekötése

A Wemos D1 mini bekötése

Most már minden LM339 bemenetről gondoskodunk, most be kell vezetnünk a Wemos D1 mini -t. Minden LM339 kimeneti csap egy Wemos GPIO (általános célú bemenet/kimenet) tűhöz kerül, amelyet kódon keresztül kijelölünk bemeneti húzócsapként. A Wemos legfeljebb 5 V feszültséget vesz igénybe Vcc (bemeneti forrás) feszültségként (bár ezt belsőleg 3,3 V -ra szabályozza) Egy nagyon gyakori LM7805 feszültségszabályozót (EDIT: lásd alább) fogunk használni, hogy a 12V -os sín leereszkedjen a kenyértáblán 5V a Wemos áramellátásához. Az LM7805 adatlapja azt jelzi, hogy a szabályozó mindkét oldalán bekötött kondenzátorra van szükségünk, hogy kiegyenlítsük az áramot, amint az a kenyértábla képén látható. A kondenzátor hosszabb lába pozitív (+), ezért győződjön meg róla, hogy a megfelelő módon van bekötve.

A feszültségszabályozó leveszi a feszültséget (bal oldali tüske), földelést (középső érintkező) és feszültséget (jobb oldali érintkező). Ellenőrizze kétszer a csatlakozót, ha a feszültségszabályozó eltér az LM7805-től.

(EDIT: Úgy találtam, hogy a riasztópanelről érkező erősítők túl magasak voltak az LM7805 kezeléséhez. Ez sok hőt okozott az LM7805 kis hűtőbordájában, és meghibásodott, és a Wemos leállt működik. Az LM7805-öt és a kondenzátorokat DC-DC buck konverterre cseréltem, és azóta nincs probléma. Ezeket nagyon könnyű bekötni. Egyszerűen csatlakoztassa a riasztó bemeneti feszültségét, csatlakoztassa először egy multiméterhez, és használja a potenciométer csavart és állítsa be, amíg a kimeneti feszültség nem lesz ~ 5V)

GPIO bemeneti csapok

Ehhez a projekthez a következő csapokat használjuk:

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

Csatlakoztassa a kimeneteket az LM339 -ből a kapcsolódó GPIO -tűkhöz a Wemos táblán, az ebben a lépésben látható kenyértábla kép szerint. Ismét színkódoltam a bemeneteket és a megfelelő kimeneteket, hogy könnyebben lássam, mi mire vonatkozik. Az Arduino minden GPIO -csapját „INPUT_PULLUP” -ként definiálják, vagyis normál használat mellett (IDLE) 3,3 V -ra húzzák, és az LM339 lehúzza őket a földre, ha a PIR aktiválódik. A kód észleli a HIGH to LOW változást, és vezeték nélkül üzenetet küld az otthoni automatizáló szoftvernek. Ha problémái vannak ezzel a működéssel, lehetséges, hogy az invertáló és nem invertáló bemeneteit rossz irányba fordítja (ha a PIR feszültsége a bekapcsoláskor magas lesz, mint a legtöbb hobbi PIR esetében, akkor szeretné, ha a kapcsolatok fordítva)

Arduino IDE

Távolítsa el a Wemos -t a kenyértábláról, most fel kell töltenünk egy kódot (alternatív link itt) Nem részletezem, hogyan kell ezt megtenni, mivel rengeteg cikk található a weben a kód Wemos -ra vagy más ESP8266 -ra való feltöltéséről típusú táblák. Csatlakoztassa az USB -kábelt a Wemos kártyához és a számítógéphez, és kapcsolja be az Arduino IDE -t. Töltse le a kódot, és nyissa meg a projektben. Gondoskodnia kell arról, hogy a megfelelő kártya legyen telepítve és betöltve a projekthez, valamint a megfelelő COM port legyen kiválasztva (Eszközök, Port). Szüksége lesz a megfelelő könyvtárak telepítésére is (PubSubClient, ESP8266Wifi) Ahhoz, hogy a Wemos tábla szerepeljen a vázlatában, olvassa el ezt a cikket.

Meg kell változtatnia a következő kódsorokat, és ki kell cserélnie saját SSID -jére és jelszavára a vezeték nélküli kapcsolathoz. Ezenkívül módosítsa az IP -címet, hogy a saját MQTT -brókerére mutasson.

// Wifi

const char* ssid = "saját_wifi_szolida_ideje"; const char* password = "saját_wifi_jelszó_ideje"; // MQTT Broker IPAddress MQTT_SERVER (172, 16, 223, 254)

Miután megváltoztatta, ellenőrizze a kódot, majd töltse fel a Wemos táblára USB -kábelen keresztül.

Megjegyzések:

  • Ha különböző GPIO portokat használ, módosítania kell a kódot. Ha nálam több vagy kevesebb zónát használ, akkor módosítania kell a kódot és a TOTAL_ZONES = 4; állandóan megfelel.
  • A riasztórendszerem indításakor a riasztórendszer teljesítménytesztet hajtott végre mind a 4 x PIR -nek, amelyek az összes csatlakoztatott GPIO -t a földre húzták, és a Wemos azt gondolta, hogy a zónák aktiválódnak. A kód figyelmen kívül hagyja az MQTT üzenetek küldését, ha mind a 4 zónát egyszerre látja aktívnak, mivel feltételezi, hogy a riasztórendszer bekapcsol.

Alternatív letöltési link a kódhoz ITT

6. lépés: Tesztelés és OpenHAB konfiguráció

Tesztelés és OpenHAB konfiguráció
Tesztelés és OpenHAB konfiguráció

MQTT tesztelés

Az MQTT egy "feliratkozás / közzététel" üzenetküldő rendszer. Egy vagy több eszköz beszélhet az "MQTT brókerrel", és "feliratkozhat" egy bizonyos témára. Bármely más eszközről érkező, ugyanazon témához "közzétett" üzeneteket a bróker kiküldi az összes olyan eszközre, amely előfizetett rá. Rendkívül könnyű és egyszerűen használható protokoll, és tökéletes olyan egyszerű indítórendszerként, mint amilyen itt van. A teszteléshez megtekintheti a Wemos -ból az MQTT -brókerhez érkező MQTT -üzeneteket a következő parancs futtatásával a Mosquitto -kiszolgálón (a Mosquitto egyike a sok MQTT Broker szoftvernek). Ez a parancs előfizet a bejövő Keepalive üzenetekre:

mosquitto_sub -v -t openhab/alarm/status

Látnia kell a bejövő üzeneteket, amelyek körülbelül 30 másodpercenként érkeznek a Wemos -ból, "1" számmal (azaz "élek"). Ha állandó "0 -t" lát (vagy nincs válasz), akkor nincs kommunikáció. Amint látja, hogy az 1 -es szám bejön, ez azt jelenti, hogy a Wemos kommunikál az MQTT brókerrel (keresse az "MQTT Last Will and Testament" -t, ha további információra van szüksége ennek működéséről, vagy nézze meg ezt az igazán jó blogbejegyzést)

Miután bebizonyította, hogy a kommunikáció működőképes, tesztelhetjük, hogy egy zónaállapotot az MQTT -n keresztül jelentenek -e. Iratkozzon fel a következő témára (a # helyettesítő karakter)

mosquitto_sub -v -t openhab/alarm/#

A szokásos állapotüzeneteknek be kell jönniük, akárcsak a Wemos IP -címének. Sétáljon a PIR előtt, és látnia kell a zónainformációkat is, jelezve, hogy NYITVA van, majd egy másodperccel később, hogy ZÁRVA van, hasonlóan az alábbiakhoz:

openhab/riasztás/állapot 1

openhab/alarm/zone1 OPEN

openhab/alarm/zone1 ZÁRVA

Ha ez működik, beállíthatjuk az OpenHAB -ot, hogy ez szépen megjelenjen a GUI -ban.

OpenHAB konfiguráció

A következő változtatásokra van szükség az OpenHAB -ban:

'alarm.map' átalakító fájl: (opcionális, teszteléshez)

ZÁRVA = IdleOPEN = IndítottNULL = Ismeretlen- = Ismeretlen

'status.map' átalakító fájl:

0 = Nem sikerült

1 = Online -= LE! NULL = ismeretlen

"items" fájl:

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" Contact alarmZone1State "Zone 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 "Kapcsolat alarmZone3State" Zone 3 Állapot [MAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: state: default "} String alarmZone3Trigger" Hálószoba PIR [%1 $ ta%1 $ tr] "Szám zone4_Chart_Period "Zone 4 Chart" Contact alarmZone4State "Zone 4 State [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: state: default "} String alarmZone4Trigger" Főcsarnok PIR [%1 $ ta %1 $ tr]"

"webhelytérkép" fájl (beleértve az rrd4j grafikont):

Szövegelem = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone1_Chart_Period label = "Period" mappings = [0 = "Hour", 1 = "Day", 2 = "Week"] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 0, zone1_Chart_Period = = Nem inicializált] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 1] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 2]}} Szövegelem = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone2_Chart_Period label = "Period" leképezések = [0 = "Hour", 1 = "Day", 2 = "Week"] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 0, zone2_Chart_Period == Nem inicializált] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 2]}} Szövegelem = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone3_Chart_Period label = "Period" leképezések = [0 = "Óra", 1 = "Nap", 2 = "Hét"] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == Inicitialized] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 1] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} Szöveg item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone4_Chart_Period label = " Period "mappings = [0 =" Hour ", 1 =" Day ", 2 =" Week "] Kép url =" https:// localhost: 8080/rrdchart.png "visibility = [zone4_Chart_Period == 0, zone4_Chart_Period == Nem inicializált] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 1] Kép url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // Választható, de hasznos az állapot és az IP -cím diagnosztizálásához ss Text item = alarmMonitorState Szövegelem = alarmMonitorIPAddress

"szabályok" fájl:

szabály "1. riasztási zóna állapotváltozása"

amikor a alarmZone1State tétel OPEN -re változott, majd postUpdate (alarmZone1Trigger, new DateTimeType ()) alarmZone1State.state = ZÁRVA vége

szabály "Riasztási zóna 2 állapotváltozás"

amikor a alarmZone2State tétel OPEN -re változott, majd postUpdate (alarmZone2Trigger, new DateTimeType ()) alarmZone2State.state = ZÁRVA vége

szabály "Riasztási 3. zóna állapotváltozása"

amikor a alarmZone3State tétel OPEN -re változott, majd postUpdate (alarmZone3Trigger, new DateTimeType ()) alarmZone3State.state = ZÁRVA vége

szabály: "4. riasztási zóna állapotváltozása"

amikor a alarmZone4State tétel OPEN -re változott, majd postUpdate (alarmZone4Trigger, new DateTimeType ()) alarmZone4State.state = ZÁRVA vége

Lehet, hogy kissé módosítania kell a fenti OpenHAB konfigurációt, hogy megfeleljen a saját beállításainak.

Ha bármilyen problémája van a PIR -ek aktiválásával, akkor kezdje elölről, és mérje meg az áramkör minden részének feszültségét. Ha elégedett ezzel, ellenőrizze a kábelezést, győződjön meg arról, hogy van közös pont, ellenőrizze a Wemos üzeneteit soros hibakeresési konzolon keresztül, ellenőrizze az MQTT kommunikációt, és ellenőrizze a transzformáció, elemek és webhelytérkép -fájlok szintaxisát.

Sok szerencsét!

Ajánlott: