Sadržaj:

Alarm PIR na WiFi (i kućna automatizacija): 7 koraka (sa slikama)
Alarm PIR na WiFi (i kućna automatizacija): 7 koraka (sa slikama)

Video: Alarm PIR na WiFi (i kućna automatizacija): 7 koraka (sa slikama)

Video: Alarm PIR na WiFi (i kućna automatizacija): 7 koraka (sa slikama)
Video: Pregled i konfiguracija EBYTE LoRa modula 2024, Studeni
Anonim
Image
Image
Alarm PIR na WiFi (i kućna automatizacija)
Alarm PIR na WiFi (i kućna automatizacija)

Pregled

Ove upute dat će vam mogućnost da u svom softveru za kućnu automatizaciju vidite posljednji datum/vrijeme (i izborno povijest vremena) kada su se PIR -ovi vašeg kućnog alarma (pasivni infracrveni senzori) aktivirali. U ovom projektu raspravljat ću o načinu korištenja s OpenHAB -om (besplatnim softverom za kućnu automatizaciju, koji osobno koristim), iako će raditi s bilo kojim drugim softverom ili aplikacijom za kućnu automatizaciju koji podržava MQTT (također opisano kasnije u ovom članku). Ova instrukcija će vas provesti kroz potrebne korake o tome kako spojiti pločicu i Wemos D1 mini (IOT ploča koja koristi čip ESP8266) koja dotiče u zone alarma u vašem kontrolnom okviru za alarm tako da kada zona (koja sadrži jedan ili više PIR -ova), Wemos bežično šalje poruku koristeći MQTT protokol vašem softveru za kućnu automatizaciju koji prikazuje zadnji datum/vrijeme tog okidača. Dostupan je i Arduino kod za programiranje Wemosa.

Uvod

Gornja slika je ono što vidim putem jednog od ekrana u aplikaciji OpenHAB na svom iPhoneu. Tekst datuma/vremena kodiran je bojom kako bi se brže prikazalo kada je PIR pokrenut - prikazat će crvenu (aktiviranu u posljednjoj minuti), narančastu (aktiviranu u posljednjih 5 minuta), zelenu (aktiviranu u posljednjih 30 minuta), plava (aktivira se u posljednjih sat vremena) ili na drugi način, crna. Klikom na datum/vrijeme prikazat će se povijesni prikaz PIR okidača, pri čemu 1 znači aktivirano, a 0 ne radi. Za to postoji mnogo upotreba, na primjer, mogao bi nadopuniti vaše rješenje o prisutnosti kod kuće, može otkriti kretanje ako ste odsutni i putem pravila OpenHAB -a, slati obavijesti na vaš telefon, mogli biste ga koristiti kao ja da vidim jesu li mi djeca ustajanje usred noći, pokrenuto PIR -om koji se nalazi izvan njihovih spavaćih soba!

OpenHAB je jednostavno softver za kućnu automatizaciju koji koristim, postoji mnogo drugih - i ako podržavaju MQTT, onda možete lako prilagoditi ovaj projekt softveru koji koristite.

Pretpostavke

Ovo uputstvo pretpostavlja da već imate (ili će se postaviti):

  • Očito kućni alarmni sustav s PIR -ovima (pasivni infracrveni senzori) i da imate pristup kontrolnoj kutiji alarma za povezivanje potrebnih ožičenja
  • OpenHAB (besplatni softver za kućnu automatizaciju otvorenog koda) pokrenut, iako bi, kako je već rečeno, trebao raditi sa bilo kojim softverom za kućnu automatizaciju koji može sadržavati MQTT povez. Alternativno, kôd možete sami promijeniti prema vlastitim potrebama.
  • Mosquitto MQTT (ili sličan) posrednik instaliran i povezivanje konfigurirano s OpenHAB -om (MQTT je protokol za pretplatu/objavljivanje poruka koji je lagan i odličan za komunikaciju između uređaja)

Ako ne pokrećete OpenHAB i posrednika MQTT, pogledajte ovaj izvrstan članak na web stranici MakeUseOf

Što trebam?

Da biste stvorili bežični kontroler, morat ćete nabaviti sljedeće dijelove:

  • Wemos D1 mini V2 (ima ugrađen bežični CHIP ESP8266)
  • Usporednik LM339 (to će provjeriti PIR u praznom hodu u odnosu na aktivirano)
  • 5V DC izvor napajanja za Wemos (ILI, istosmjerni pretvarač istosmjernog napona. Napomena: regulator napona LM7805 možda neće raditi za ovu aplikaciju, o čemu će biti riječi kasnije u ovom projektu)
  • Dva otpornika za razdjelnik napona (veličina će ovisiti o vašim alarmnim naponima, o čemu će biti riječi kasnije u projektu)
  • Jedan otpornik od 1K ohma djeluje kao otpornik za kontrolu snage LM339
  • Jedan 2N7000 (ili sličan) MOSFET za logičko uključivanje LM339 (moguće opcionalno, o čemu će biti riječi kasnije u projektu)
  • Matična ploča odgovarajuće veličine za postavljanje i testiranje kruga
  • Hrpa žica za matičnu ploču za povezivanje svega zajedno
  • Potrebni alati: bočni rezači, jednožilna žica
  • DC multimetar (obavezno!)

Korak 1: Upravljačka kutija alarmnog sustava

Upravljačka kutija alarmnog sustava
Upravljačka kutija alarmnog sustava

Prvo neka upozorenja i odricanja od odgovornosti

Osobno imam Bosch alarmni sustav. Toplo bih vam preporučio da preuzmete odgovarajući priručnik za vaš alarmni sustav i upoznate se s njim prije nego počnete jer ćete morati isključiti alarmni sustav kako biste ožičili zone. Također bih vam preporučio da prije početka pročitate ovaj članak u cijelosti!

Dolje je popis nekoliko stvari koje biste trebali znati prije nego počnete - svakako pročitajte i razumite svaku od njih prije nego nastavite! Ne preuzimam odgovornost ako zeznete svoj alarmni sustav i/ili morate platiti instalateru da ga popravi. Ako ipak pročitate i razumijete sljedeće i poduzmete potrebne mjere opreza, trebali biste biti u redu:

1. Moj alarmni sustav imao je rezervnu bateriju unutar kutije, a također je imao i prekidač s unutarnje strane poklopca (koji omogućuje pristup ploči alarmnog sustava), pa čak i vanjsko isključivanje alarma, prilikom uklanjanja prednje ploče kontrole kutija aktivirala je alarm! Da bih to zaobišao dok sam radio na projektu, zaobišao sam zaštitu od neovlaštenog isključivanja, a zatim kratkog spoja prekidača za otvaranje (debela crvena žica kao što je prikazano na gornjoj fotografiji)

2. Prilikom ponovnog uključivanja alarmnog sustava, nakon približno 12 sati, alarmna upravljačka ploča počela je piskati s kodovima grešaka. Nakon što sam odredio kodove grešaka putem priručnika, otkrio sam da me upozorava na sljedeće:

  • Datum/vrijeme nije postavljeno (trebao sam glavni kod i niz ključeva iz priručnika za ponovnu konfiguraciju)
  • Da pomoćna baterija nije spojena (lako se popravlja, samo sam zaboravio ponovno uključiti bateriju)

3. U mom alarmu postoje 4 x zonska priključna bloka (označena sa Z1 -Z4) za uključivanje PIR -ova na glavnu alarmnu ploču, međutim - moj alarmni sustav zapravo ima 8 zona. Svaki blok za povezivanje zona zapravo može pokretati 2 x zone (Z1 radi Z1 i Z5, Z2 radi Z2 i Z6 itd.). Alarmni sustav ima ugrađenu zaštitu od neovlaštenog rada da spriječi nekoga da kaže, otvarajući poklopac alarmnog sustava kao što je gore spomenuto, ili presijeca žice na PIR. Razlikuje svako neovlašteno miješanje u zonama putem EOL (kraj reda) otpornika. To su otpornici specifične veličine koji se nalaze na "kraju linije" - drugim riječima, unutar PIR -a (ili prekidača za neovlašteno otvaranje upravljačke kutije, ili kutije za sirene ili bilo čega što je spojeno na tu zonu) Kao što je spomenuto, ovi se otpornici koriste kao "ometanje" zaštita ' - tehnički, ako netko presiječe kabele na PIR - jer alarmni sustav očekuje da će vidjeti određeni otpor od tog PIR -a, tada ako se otpor promijeni, pretpostavlja se da je netko neovlašteno promijenio sustav i da će aktivirati alarm.

Na primjer:

Na moj alarm, zona "Z4" ima 2 žice u sebi, jedna odlazi do PIR -a u mom hodniku, a jedna od prekidača za neovlašteno otvaranje alarmne kutije. Unutar hodnika PIR, ima otpornik od 3300 ohma. Druga žica koja vodi do prekidača neovlaštenog otvaranja upravljačke kutije ima otpornik od 6800 ohma koji je spojen u seriju. Ovako alarmni sustav (logički) razlikuje neovlaštene izmjene "Z4" i "Z8". Slično, zona "Z3" ima PIR (s otpornikom od 3300 ohma u njemu), a također i prekidač za miješanje sirene (sa 6800 ohmskim otpornikom u njemu) koji čini "Z7". Alat za instalaciju alarma unaprijed je konfigurirao alarmni sustav tako da zna koji je uređaj spojen na svaku zonu (i promijenio veličinu EOL otpornika tako da mu odgovara, jer je alarmni sustav programiran da zna koje su veličine različitih EOL otpornika. Pod ni u kojem slučaju ne smijete promijeniti vrijednost ovih otpornika!)

Na temelju gore navedenog, jer svaka zona može imati priključeno više uređaja (s različitim vrijednostima otpora), i sjećajući se formule V = IR (napon = amper x otpor), to također može značiti da svaka zona može imati različite napone. To nas dovodi do sljedećeg koraka, mjerenje svake zone IDLE u odnosu na TRIGGERED napon …

Korak 2: Mjerenje napona zone alarma

Mjerenje napona zone alarma
Mjerenje napona zone alarma
Mjerenje napona zone alarma
Mjerenje napona zone alarma

Nakon što ste pristupili glavnoj ploči u svom alarmnom sustavu (i zaobišli prekidač neovlaštenog pristupa ako ga imate; prema prethodnom koraku), ponovo uključite alarmni sustav. Sada moramo mjeriti napon svake zone kada njezin IDLE (nema kretanja ispred PIR -a) u odnosu na TRIGGERED (PIR je otkrio kretanje) Uzmite olovku i papir kako biste mogli zapisati očitanja napona.

UPOZORENJE: Najveći dio vašeg alarmnog sustava najvjerojatnije će raditi na 12V DC, međutim početno napajanje će imati na 220V (ili 110V) AC, s transformatorom koji pretvara snagu iz AC u DC. PROČITAJTE priručnik i poduzmite dodatne mjere opreza pazeći da NE mjerite nijedan priključak naizmjenične struje !!! Prema snimci zaslona mog alarmnog sustava na ovoj stranici, možete vidjeti da je na samom dnu slike izmjenično napajanje, pretvoreno u 12 V DC. Mjerimo 12V DC u označenim crvenim okvirima. Nikada ne dodirujte AC napajanje. Budite izuzetno oprezni!

Mjerenje PIR napona

Imam 4 x PIR -a spojena na Z1 preko Z4. Izmjerite svaku svoju zonu na sljedeći način.

  1. Najprije identificirajte terminal GND i terminale zone na alarmnoj ploči. Istaknuo sam ih na slici prikazanoj u priručniku mog Bosch alarma.
  2. Uzmite multimetar i postavite mjerenje napona na 20 V DC. Spojite crni (COM) kabel s vašeg multimetra na terminal GND na alarmu. Postavite crveni (+) kabel s vašeg multimetra na prvu zonu - u mom slučaju označenu sa "Z1". Zapišite očitanje napona. Izvršite iste korake za preostale zone. Moja mjerenja napona su sljedeća:
  • Z1 = 6,65V
  • Z2 = 6,65V
  • Z3 = 7,92V
  • Z4 = 7,92V

Kao što je gore navedeno, moje prve dvije zone imaju i PIR -ove. Potonje dvije zone imaju i PIR -ove i zaštitu od neovlaštenog rada (Upravljačka kutija Z3, Udaranje sirene Z4) Obratite pozornost na razlike u naponu.

3. Vjerojatno će vam za sljedeći korak trebati 2 osobe. Također ćete morati znati koji je PIR u kojoj zoni. Vratite se i pročitajte napon na prvoj zoni. Sada neka netko u vašoj kući prošeta ispred PIR -a, napon bi trebao pasti. Zabilježite novo očitanje napona. U mom slučaju, naponi se čitaju na sljedeći način kada se aktiviraju PIR -ovi:

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

Prema gore navedenom, mogu vidjeti da kada se aktiviraju zone 1 i 2, napon pada sa 6,65 V na 0 V. Međutim, kada se aktiviraju zone 3 i 4, napon pada sa 7,92 V na 4,30 V.

Mjerno napajanje od 12V

Za napajanje našeg projekta koristit ćemo 12V DC terminal iz alarmne upravljačke kutije. Moramo izmjeriti napon iz 12V DC napajanja na alarmu. Iako već navodi 12V, moramo znati točnije očitanje. U mom slučaju zapravo čita 13,15V. Zapišite ovo, trebat će vam ova vrijednost u sljedećem koraku.

Zašto mjerimo napon?

Razlog zašto moramo mjeriti napon za svaki PIR je zbog kola koje ćemo stvoriti. Koristit ćemo LM339 četvero-diferencijalni komparacijski čip (ili komparator s četiri op-amp-a) kao jezgru električne komponente za ovaj projekt. LM339 ima 4 neovisna komparatora napona (4 kanala) gdje svaki kanal uzima 2 x ulazni napon (jedan invertirajući (-) i jedan neinvertirajući (+) ulaz, pogledajte dijagram) Ako napon invertirajućeg ulaznog napona treba pasti ispod neinvertirajući napon, tada će se njegov povezani izlaz povući na masu. Slično, ako neinvertirajući ulazni napon padne niže od invertirajućeg ulaza, tada se izlaz podiže do Vcc. Prikladno, u svojoj kući imam 4 x alarmne PIR -ove/zone - stoga će svaka zona biti ožičena do svakog kanala na usporedniku. Ako imate više od 4 x PIR -a, trebat će vam usporednik s više kanala ili drugi LM339!

Napomena: LM339 troši energiju u nano-pojačalima, pa neće utjecati na EOL otpor postojećeg alarmnog sustava.

Ako je ovo zbunjujuće, svejedno nastavite na sljedeći korak, on će imati više smisla kad ga povežemo!

Korak 3: Stvaranje razdjelnika napona

Image
Image

Što je razdjelnik napona?

Razdjelnik napona je krug s 2 x otpornika (ili više) u nizu. Prvom otporniku (R1) dajemo napon u (Vin). Druga noga R1 povezuje se s prvom nogom drugog otpornika (R2), a drugi kraj R2 spaja se na GND. Zatim uzimamo izlazni napon (Vout) iz veze između R1 i R2. Taj će napon postati naš referentni napon za LM339. Više informacija o načinu rada razdjelnika napona potražite u videu Adohms youtube

(Napomena: otpornici nemaju polaritet, pa se mogu ožičiti na bilo koji način)

Izračunavanje našeg referentnog napona

Pretpostavljajući da napon pada kada se aktivira vaš PIR (to bi trebao biti slučaj za većinu alarma), ono što pokušavamo postići je da dobijemo očitanje napona koji je otprilike na pola puta između našeg najnižeg napona u praznom hodu i najvećeg aktiviranog napona, ovo će nam postati referentni napon.

Uzimajući moj alarm kao primjer …

Zonski naponi u praznom hodu bili su Z1 = 6,65 V, Z2 = 6,65 V, Z3 = 7,92 V, Z4 = 7,92 V. Najniži napon u praznom hodu je stoga 6,65V

Zonski aktivirani naponi bili su: Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V. Najveći aktivirani napon je stoga 4,30V

Zato moramo izabrati broj na pola puta između 4,30 V i 6,65 V (ne mora biti točno, samo otprilike) U mom slučaju moj referentni napon mora biti oko 5,46 V. Napomena: Ako su najniži prazni i najveći aktivirani napon vrlo blizu jedan drugom zbog više zona koje uzrokuju raspon različitih napona, možda ćete morati stvoriti 2 ili više razdjelnika napona.

Izračunavanje vrijednosti našeg otpornika za razdjelnik napona

Sada imamo referentni napon, moramo izračunati otpornike veličine koje su nam potrebne da bismo stvorili razdjelnik napona koji će osigurati naš referentni napon. Koristit ćemo 12V DC izvor napona (Vs) iz alarma. Međutim, prema prethodnom koraku kada smo mjerili 12V DC napajanje dobili smo zapravo 13.15V. Moramo izračunati razdjelnik napona koristeći ovu vrijednost kao izvor.

Izračunajte Vout pomoću ohmskog zakona …

Vout = Vs x R2 / (R1 + R2)

… ili upotrijebite mrežni kalkulator razdjelnika napona:-)

Morat ćete eksperimentirati s vrijednostima otpornika dok ne postignete željeni izlaz. U mom slučaju, uspjelo je s R1 = 6,8 k ohma i R2 = 4,7 K ohma, izračunato u dugom obliku na sljedeći način:

Vout = Vs x R2 / (R1 + R2)

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

Vout = 61, 805 /11, 500

Vout = 5,37V

Korak 4: Povežite LM339

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

Razdjelnik napona na LM339 invertirajuće ulaze

Kao što je ranije rečeno u vezi s usporednikom LM339, bit će potrebno 2 x ulaza. Jedan će biti napon iz svakog PIR-a na svaki kanal bez invertiranja (+), drugi će biti naš referentni napon na naš invertirajući (-) terminal. Referentni napon mora napajati sva 4 invertirajuća ulaza komparatora. Isključite alarmni sustav prije izvođenja ovih koraka.

  • Provedite žicu od 12V istosmjernog bloka u alarmnom sustavu do + vodilice na vašoj matičnoj ploči *
  • Provedite žicu od bloka GND na alarmnom sustavu do - šine na vašoj ploči **
  • Ugradite usporednik LM339 u sredinu ploče (zarez označava najbliži pin 1)
  • Ugradite 2 x otpornika kako biste stvorili krug razdjelnika napona i žicu za podijeljeni napon
  • Vodite žice od "naponski podijeljenog" Vouta do svakog LM339 invertirajućeg priključka

* SAVJET: po mogućnosti upotrijebite štipaljku od aligatora za napajanje jer to olakšava uključivanje/isključivanje vašeg projekta ** VAŽNO! MOSFET će možda biti potreban ako napajate Wemos s ploče s alarmom! U mom slučaju, svi LM339, Wemos i Alarm primaju napajanje iz istog izvora (tj. Iz samog alarmnog sustava). To mi omogućuje uključivanje svega s jednim priključkom za napajanje. Međutim, prema zadanim postavkama GPIO pinovi na Wemosu definirani su kao "INPUT" pinovi - što znači da uzimaju bilo koji napon na koji se baci i oslanjaju se na taj izvor kako bi osigurali ispravne razine napona (min/max razine) kako bi Wemos pobijedio ' t srušiti se ili izgorjeti. U mom slučaju alarmni sustav dobiva snagu i počinje izvršavati niz pokretanja vrlo brzo - zapravo toliko brzo, da to čini prije nego što se Wemos može pokrenuti i deklarirati GPIO pinove kao "INPUT_PULLUP" (napon se unutra podiže čip). To ne znači da bi razlike u naponu uzrokovale pad Wemosa kad bi cijeli sustav dobio napajanje. Jedini način za to bi bio ručno isključivanje i uključivanje Wemosa. Da bi se to riješilo, dodaje se MOSFET koji djeluje kao "logički prekidač" za napajanje LM339. To omogućuje pokretanje Wemosa, postavljanje njegovih 4 x usporednih GPIO pinova kao "INPUT_PULLUP -ove", odgodu za nekoliko sekundi, a zatim (putem drugog GPIO pina D5 definiranog kao OUTPUT) šalje signal "HIGH" putem GPIO pina D5 na MOSFET, koji logički uključuje LM339. Ja bih preporučio ožičenje kao gore, ali AKO utvrdite da se Wemos ruši kao i ja, tada ćete morati uključiti MOSFET s otpornikom od 1 k ohma. Za više informacija o tome kako to učiniti, pogledajte kraj ovog uputstva.

Zone alarma na LM339 neinvertirajuće ulaze

Sada moramo provesti žice iz svake zone na upravljačkoj ploči alarma do ulaza komparatora LM339. Dok je alarmni sustav još uvijek isključen, za svaku zonu dovedite žicu do svakog neinvertirajućeg (+) ulaza na usporedniku LM339. Na primjer, u mom sustavu:

  • Žica iz Z1 ide na ulaz LM339 1+
  • Žica iz Z2 ide na ulaz LM339 2+
  • Žica iz Z3 ide na ulaz LM339 3+
  • Žica iz Z4 ide na ulaz LM339 4+

Pogledajte pin-out LM339 u koraku 3 ako vas podsjeća (boja je kodirana slikom matične ploče). Nakon što završite, vaša bi ploča trebala izgledati slično slici prikazanoj u ovom koraku.

Uključite alarmni sustav i izmjerite napon koji izlazi iz razdjelnika napona kako biste bili sigurni da je jednak vašem referentnom naponu kako je ranije izračunato.

Korak 5: Ožičenje Wemos D1 Mini

Ožičenje Wemos D1 mini

Sada smo se pobrinuli za sve ulaze LM339, sada moramo spojiti Wemos D1 mini. Svaki izlazni pin LM339 ide na Wemos GPIO (općenito namjenski ulaz/izlaz) pin koji ćemo putem koda označiti kao ulazni utikač. Wemos uzima maksimalno do 5V kao svoj Vcc (ulazni izvor) napon (iako to interno regulira na 3,3 V) Koristit ćemo vrlo uobičajeni regulator napona LM7805 (EDIT: vidi dolje) za spuštanje 12V šine na ploču prema dolje 5V za napajanje Wemosa. Tehnički list za LM7805 ukazuje na to da nam je potreban kondenzator ožičen sa svake strane regulatora za ujednačavanje napajanja, kao što je prikazano na slici matične ploče. Duža noga kondenzatora je pozitivna (+) pa provjerite je li ožičena na pravi način.

Regulator napona prima napon (lijevi bočni pin), uzemljenje (srednji pin) i napon izlazi (desni bočni pin) Dvaput provjerite pin-out ako se vaš regulator napona razlikuje od LM7805.

(EDIT: Otkrio sam da su pojačala koja dolaze s alarmne ploče previsoka za rukovanje LM7805. To je uzrokovalo mnogo topline u malom hladnjaku LM7805 i uzrokovalo njegovo otkazivanje, a zauzvrat je zaustavilo Wemos radi. Zamijenio sam LM7805 i kondenzatore s DC-DC pretvaračem napona i od tada nemam problema. Vrlo ih je lako spojiti. Jednostavno spojite ulazni napon s alarma, prvo se spojite na multimetar i upotrijebite vijak potenciometra i podešavajte dok izlazni napon ne bude ~ 5V)

GPIO ulazni pinovi

Za ovaj projekt koristimo sljedeće pinove:

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

Ožičite izlaze s LM339 na povezane GPIO pinove na Wemos ploči, prema slici matične ploče prikazanoj u ovom koraku. Opet, kodirao sam ulaze i odgovarajuće izlaze bojama kako bih lakše vidio što se odnosi na što. Svaki GPIO pin u Arduinu definiran je kao 'INPUT_PULLUP', što znači da će se povući na 3,3 V pri normalnoj uporabi (IDLE), a LM339 će ih povući na tlo ako se PIR aktivira. Kôd detektira promjenu od VISE do NISKE i bežično šalje poruku vašem softveru za kućnu automatizaciju. Ako imate problema s ovim radom, moguće je da imate invertirajuće i neinvertirajuće ulaze na pogrešan način (ako napon iz vašeg PIR-a poraste pri pokretanju, kao što se događa s većinom hobi PIR-ova, tada ćete htjeti da veze budu na drugi način)

Arduino IDE

Uklonite Wemos s matične ploče, sada moramo na njega učitati kôd (alternativna veza ovdje) Neću ulaziti u detalje o tome kako to učiniti, jer na webu ima dosta članaka o prenošenju koda na Wemos ili drugi ESP8266 tip ploča. Priključite USB kabel na ploču Wemos i u računalo i pokrenite Arduino IDE. Preuzmite kôd i otvorite ga u svom projektu. Morat ćete osigurati da je ispravna ploča instalirana i učitana za vaš projekt, kao i da je odabran ispravan COM port (Alati, Port). Također će vam trebati instalirane odgovarajuće knjižnice (PubSubClient, ESP8266Wifi) Da biste uključili ploču Wemos u skicu, pogledajte ovaj članak.

Morat ćete promijeniti sljedeće retke koda i zamijeniti ih vlastitim SSID -om i lozinkom za bežičnu vezu. Također, promijenite IP adresu tako da pokazuje na vašeg vlastitog posrednika MQTT.

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* password = "your_wifi_password_here"; // MQTT posrednik IP adresa MQTT_SERVER (172, 16, 223, 254)

Nakon promjene potvrdite svoj kôd, a zatim ga prenesite na ploču Wemos putem USB kabela.

Bilješke:

  • Ako koristite različite GPIO portove, morat ćete prilagoditi kôd. Ako koristite više ili manje zona od mene, također ćete morati prilagoditi kôd i TOTAL_ZONES = 4; stalno odgovara.
  • Prilikom pokretanja mog alarmnog sustava, alarmni sustav proveo bi ispitivanje napajanja svih 4 x PIR -ova koji su povukli sve povezane GPIO -e na masu, zbog čega je Wemos pomislio da se zone aktiviraju. Kôd će zanemariti slanje MQTT poruka ako vidi da su sve 4 x zone aktivne u isto vrijeme, jer pretpostavlja da se alarmni sustav uključuje.

Alternativna veza za preuzimanje koda OVDJE

Korak 6: Testiranje i konfiguracija OpenHAB -a

Testiranje i konfiguracija OpenHAB -a
Testiranje i konfiguracija OpenHAB -a

MQTT testiranje

MQTT je sustav za razmjenu poruka "pretplati se / objavi". Jedan ili više uređaja može razgovarati s "MQTT posrednikom" i "pretplatiti se" na određenu temu. Sve dolazne poruke s bilo kojeg drugog uređaja koje su "objavljene" na tu istu temu posrednik će proslijediti na sve uređaje koji su se na njega pretplatili. Izuzetno je lagan i jednostavan za korištenje protokol i savršen je kao jednostavan sustav pokretanja poput ovog ovdje. Za testiranje možete pregledati dolazne MQTT poruke iz Wemosa svom MQTT brokeru pokretanjem sljedeće naredbe na vašem Mosquitto poslužitelju (Mosquitto je jedan od mnogih dostupnih softvera MQTT Broker). Ova naredba pretplaćuje se na dolazne keepalive poruke:

mosquitto_sub -v -t openhab/alarm/status

Trebali biste vidjeti dolazne poruke koje dolaze s Wemosa svakih 30 -ak sekundi s brojem "1" (što znači "živ sam"). Ako vidite konstantne "0" (ili nema odgovora), onda nema komunikacije. Kad vidite da broj 1 dolazi, to znači da Wemos komunicira s posrednikom MQTT (potražite "Zadnja volja i testament MQTT -a" za više informacija o tome kako to funkcionira ili pogledajte ovaj stvarno dobar zapis na blogu)

Nakon što dokažete da je komunikacija funkcionalna, možemo testirati da li se stanje zone prijavljuje putem MQTT -a. Pretplatite se na sljedeću temu (# je zamjenski znak)

mosquitto_sub -v -t openhab/alarm/#

Trebale bi doći uobičajene poruke o statusu, kao i IP adresa samog Wemosa. Hodajte ispred PIR -a, a trebali biste vidjeti i informacije o zoni koje pokazuju da je OTVOREN, pa sekundu ili nešto kasnije, da je ZATVOREN, slično sljedećem:

openhab/alarm/status 1

openhab/alarm/zone1 OPEN

openhab/alarm/zone1 ZATVORENO

Nakon što ovo proradi, možemo konfigurirati OpenHAB da to lijepo prikaže u grafičkom sučelju.

OpenHAB konfiguracija

Za OpenHAB potrebne su sljedeće promjene:

datoteka za pretvaranje 'alarm.map': (izborno, za testiranje)

ZATVOREN = IdleOPEN = TriggeredNULL = Nepoznato- = Nepoznato

Datoteka za transformaciju 'status.map':

0 = Nije uspjelo

1 = Na mreži -= DOLJE! NULL = nepoznato

datoteka 'items':

Niz alarmMonitorState "Monitor alarma [MAP (status.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/status: stanje: zadano]"} Niz alarmMonitorIPAddress "IP nadgledanja alarma [%s]" {mqtt = "<[mqttbroker: openhab/alarm/ipaddress: state: default]"} Broj zona1_Chart_Period "Tabela zone 1" Kontakt alarmZone1State "Stanje zone 1 [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/zone1: state: default "} String alarmZone1Trigger" Lounge PIR [%1 $ ta%1 $ tr] "Number zone2_Chart_Period" Grafikon zone 2 "Kontakt alarmZone2State" Stanje zone 2 [MAP (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab/alarm/zone2: state: default "} String alarmZone2Trigger" Prva dvorana PIR [%1 $ ta %1 $ tr] "Brojna zona3_Chart_Period" Tabela 3. zone "Kontakt alarmZone3State" Zona 3 Stanje [MAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: state: default "} String alarmZone3Trigger" PIR spavaće sobe [%1 $ ta%1 $ tr] "Broj zone4_Chart_Period "Zone 4 Chart" Kontakt alarmZone4State "Stanje zone 4 [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: state: default "} String alarmZone4Trigger" Glavna dvorana PIR [%1 $ ta %1 $ tr]"

datoteka "karte web stranice" (uključujući grafikon rrd4j):

Tekstualna stavka = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Okvir {Switch item = zone1_Chart_Period label = Mapiranje "razdoblja" = [0 = "Sat", 1 = "Dan", 2 = "Tjedan"] URL slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone1_Chart_Period == 0, zone1_Chart_Period = = Neinicijalizirano] Url slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone1_Chart_Period == 1] Url slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone1_Chart_Period == 2]}} Tekstualna stavka = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Okvir {Switch item = zone2_Chart_Period label = "Razdoblje" preslikavanja = [0 = "Sat", 1 = "Dan", 2 = "Tjedan"] URL slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone2_Chart_Period == 0, zone2_Chart_Period == Neinicijalizirano] Url slike = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] Url slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone2_Chart_Perd == 2]}} Tekstualna stavka = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Okvir {Switch item = zone3_Chart_Period label = "Razdoblje" preslikavanja = [0 = "Sat", 1 = "Dan", 2 = "Tjedan"] URL slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zona3_Chart_Period == 0, zona3_Chart_Period == Neinicijalizirana] Slika url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 1] Url slike = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} Tekst item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Okvir {Switch item = zone4_Chart_Period label = " Razdoblje "preslikavanja = [0 =" Sat ", 1 =" Dan ", 2 =" Tjedan "] URL slike =" https:// localhost: 8080/rrdchart.png "vidljivost = [zone4_Chart_Period == 0, zone4_Chart_Period == Neinicijalizirano] URL url slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone4_Chart_Period == 1] Url slike = "https:// localhost: 8080/rrdchart.png" vidljivost = [zone4_Chart_Period == 2] }} // NEOBVEZNO, ali zgodno za dijagnosticiranje statusa i IP adrese ss Tekstualna stavka = alarmMonitorState Tekstualna stavka = alarmMonitorIPadresa

datoteka "pravila":

pravilo "Promjena stanja zone alarma 1"

kada se stavka alarmZone1State promijeni u OTVOREN, zatim postUpdate (alarmZone1Trigger, novi DateTimeType ()) alarmZone1State.state = ZATVOREN kraj

pravilo "Promjena stanja zone alarma 2"

kada se stavka alarmZone2State promijeni u OTVOREN, zatim postUpdate (alarmZone2Trigger, novi DateTimeType ()) alarmZone2State.state = ZATVOREN kraj

pravilo "Promjena stanja zone alarma 3"

kada se stavka alarmZone3State promijeni u OTVOREN, zatim postUpdate (alarmZone3Trigger, novi DateTimeType ()) alarmZone3State.state = ZATVOREN kraj

pravilo "Promjena stanja zone alarma 4"

kada se stavka alarmZone4State promijeni u OTVOREN, zatim postUpdate (alarmZone4Trigger, novi DateTimeType ()) alarmZone4State.state = ZATVOREN kraj

Možda ćete morati malo promijeniti gornju konfiguraciju OpenHAB -a kako bi odgovarala vašim postavkama.

Ako imate bilo kakvih problema s aktiviranjem PIR -ova, počnite od početka i izmjerite napone za svaki dio kruga. Nakon što ste zadovoljni s tim, provjerite ožičenje, provjerite postoji li zajedničko uporište, provjerite poruke na Wemosu putem konzole za serijsko otklanjanje pogrešaka, provjerite komunikaciju MQTT i provjerite sintaksu datoteke za transformaciju, stavke i karte web stranice.

Sretno!

Preporučeni: