Obsah:

Bezdrátový poplašný systém Arduino využívající stávající senzory: 9 kroků (s obrázky)
Bezdrátový poplašný systém Arduino využívající stávající senzory: 9 kroků (s obrázky)

Video: Bezdrátový poplašný systém Arduino využívající stávající senzory: 9 kroků (s obrázky)

Video: Bezdrátový poplašný systém Arduino využívající stávající senzory: 9 kroků (s obrázky)
Video: AX PRO - Bezdrátový zabezpečovací systém 2024, Červenec
Anonim
Bezdrátový poplašný systém Arduino s využitím stávajících senzorů
Bezdrátový poplašný systém Arduino s využitím stávajících senzorů
Bezdrátový poplašný systém Arduino s využitím stávajících senzorů
Bezdrátový poplašný systém Arduino s využitím stávajících senzorů
Bezdrátový poplašný systém Arduino s využitím stávajících senzorů
Bezdrátový poplašný systém Arduino s využitím stávajících senzorů
Bezdrátový poplachový systém Arduino využívající stávající senzory
Bezdrátový poplachový systém Arduino využívající stávající senzory

Tento projekt lze postavit zhruba za půl hodiny za cenu přibližně 20,00 $, pokud máte stávající bezdrátové poplachové senzory 433 MHz nebo 315 MHz.

Může to být také zcela nový projekt s bezdrátovými poplachovými senzory, jako jsou infračervené detektory pohybu a jazýčkové spínače, snadno a levně dostupné online. Stačí vyhledat senzory 433 MHz nebo 315 MHz, které používají kódování PT2262 nebo EV1527.

Jsem si jistý, že existuje mnoho lidí jako já, kteří si zakoupili poplašný systém GSM/2G s bezdrátovými senzory a byli s ním spokojeni, ale když byla 2G/GSM síť vypnuta, kde bydlím, zůstal mi poplašný systém, který jsem mohl již programovat, nebo dokonce nastavit čas na to. Jednoho dne jsem přemýšlel, co bych mohl udělat, aby můj alarm byl opět funkční, a tak mě napadlo zkontrolovat, zda Arduino dokáže přijímat signály ze senzorů. Narazil jsem na instuktabilní https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ a po nějakém experimentování jsem zjistil, že mohu přijímat signály ze svých stávajících senzorů. Zahájil jsem proces vybudování poplašného systému, který by mohl nahradit můj stávající poplach a také by poskytoval zvýšenou funkčnost. Jedním z problémů starého alarmu bylo, že jsme nikdy přesně nevěděli, který z 25 senzorů se vypnul. Přidáním obrazovky LCD do mé nové sestavy alarmu nyní dostávám text na LCD, který přesně indikuje, který senzor byl aktivován. Nový alarm lze stále aktivovat ručně pomocí mých stávajících bezdrátových ovladačů a má hodiny reálného času, které mu umožňují automatické zapnutí a vypnutí v předem nastavitelných časech dne.

Zásoby

Viz dodatečné poznámky na konci, abyste se ujistili, že používáte správnou verzi těchto částí.

Arduino Uno nebo podobné

Modul přijímače 433 nebo 315 MHz pro Arduino

DS3231 Real Time Clock modul pro Arduino

I2C 16x2 LDC modul pro Arduino

Bezdrátové poplachové jazýčkové spínače, pohybové senzory a dálkové ovladače na klíč podle potřeby

Piezo bzučák

LED a odpor 220 ohmů

Breadboard (volitelný, ale doporučený)

Vhodný napájecí zdroj pro Arduino

Propojovací vodiče atd

PC s nainstalovaným Arduino IDE

Základní znalosti Arduina

Krok 1: Spotřební materiál

Zásoby
Zásoby
Zásoby
Zásoby
Zásoby
Zásoby

Některé obrázky výše dodávek, které budete pro tento projekt potřebovat

Krok 2: Zapojte Ardunio a moduly podle obrázku

Zapojte Ardunio a moduly podle obrázku
Zapojte Ardunio a moduly podle obrázku

Piezo mezi kolíkem 5 Arduina a zemí

LED mezi pinem 8 Arduina a 220ohmovým rezistorem, pak na zem

Přijímač 433 nebo 315 MHz, VCC až 5V, GND na zem a buď jeden ze 2 datových pinů na pin2 Arduina

Modul LCD I2C 16X2 VCC na 5V, GND na kostru, piny SCL SDA na SCL SDA Arduina (kolík A5 je SCL, kolík A4 je SDA)

DS3231 RTC modul VCC na 5V, GND na kostru, SCL SDA piny na SCL SDA Arduina (u většiny Arduino je nad piny GND a AREF umístěna 2. sada)

Vím, že někteří z vás už nebudou potřebovat další informace, než je tento a níže připojený náčrt, ale každému, kdo by chtěl další pomoc, se budu věnovat podrobněji.

Krok 3: Přidejte do IDE Arduino potřebné knihovny

Přidejte do IDE Arduino potřebné knihovny
Přidejte do IDE Arduino potřebné knihovny
Přidejte do IDE Arduino potřebné knihovny
Přidejte do IDE Arduino potřebné knihovny
Přidejte do IDE Arduino potřebné knihovny
Přidejte do IDE Arduino potřebné knihovny

Skica Arduino ke spuštění alarmu používá některé knihovny, které ve výchozím nastavení nejsou v Arduino IDE již nainstalovány.

Chcete -li přidat knihovnu RCSwitch do Arduino IDE. Otevřete Arduino IDE v horním menu vyberte „Skica“, poté z rozevíracího seznamu vyberte „Zahrnout knihovnu“a z dalšího rozevíracího seznamu vyberte „Spravovat knihovny“. Poté do pole „Filtrovat vyhledávání“zadejte „RCSW“, dále klikněte na instalaci pro „rc-switch by sui77“

Podrobné pokyny k přidávání knihoven na

Když už jsme u toho, musíme také přidat knihovny s názvem Time, TimeAlarms, DS1307RTC a LiquidCrystal_I2C, stejný postup jako výše, ale hledat název každé nové knihovny a instalovat. Pokud si nejste jisti, které knihovny použít, podívejte se na snímky obrazovky výše.

Hodiny reálného času DS3231 jsou kompatibilní s knihovnou DS1307RTC a používají ji.

Krok 4: Dále potřebujeme získat kódy pro vaše senzory

Dále potřebujeme získat kódy pro vaše senzory
Dále potřebujeme získat kódy pro vaše senzory
Dále potřebujeme získat kódy pro vaše senzory
Dále potřebujeme získat kódy pro vaše senzory

Níže jsem poskytl šablonu kódu Arduino, ale budete muset najít hodnoty pro každý ze svých senzorů a vložit je do kódu.

Na obou těchto webech existují rozsáhlé informace o tom, jak tyto kódy získat;

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

Zde je však moje zkrácená verze;

Chcete -li získat kódy, které odesílají vaše senzory a dálkové ovladače, připojte Arduino sestavené v kroku 1 k počítači pomocí kabelu USB a otevřete Arduino IDE. Poté v Arduino IDE přejděte do rozevíracího seznamu „Soubor“, poté přejděte na „Příklady“procházejte seznamem příkladů skic dolů, dokud nenajdete „RCSWITCH“, poté vyberte skicu „ReceiveDemo_Advanced“a nahrajte ji do Arduina. Jakmile se skica úspěšně nahraje, otevřete sériový monitor Arduino IDE, který je stále připojen k vašemu PC přes USB. Nyní spusťte první ze senzorů, pro které chcete získat kód, výstup z RCSwitch se objeví v okně sériového monitoru. Pro tento projekt hledáme desetinné kódy, jak je zvýrazněno na snímku obrazovky 2. Budete muset spouštět snímač několikrát a hledat desetinnou hodnotu, která se objevuje nejčastěji, někdy tam budou různé hodnoty smíchané s pravou hodnotou, to je způsobeno interferencí od náhodných rádiových vln nebo jiných zařízení pracujících na stejné frekvenci.

Poznamenejte si desetinný kód senzoru pro použití v dalším kroku. Opakujte pro všechny senzory a dálkové ovladače, které chcete v projektu použít, a sledujte, který kód odpovídá kterému senzoru. Pokud používáte k ovládání a deaktivaci alarmu ovladače, budete si muset poznamenat různé kódy pro tlačítko zapnutí a vypnutí pro každé dálkové ovládání.

Krok 5: Šablona kódu Arduino

Níže je kopie mého kódu Arduino jako souboru.ino s názvem Wireless_Alarm. Můžete na něj kliknout a mělo by se otevřít v Arduino IDE. Nejsem programátor, můj kód je částečně sestaven z příkladů nalezených v Arduino IDE, pravděpodobně není nijak zvlášť elegantní, ale funguje a je spolehlivý po dlouhou dobu.

Po provedení změn nezapomeňte skicu znovu uložit, aby zahrnovala kódy z vašich vlastních senzorů.

Krok 6: Vložte kódy, které jste získali v kroku 5, do šablony Arduino Sketch

Nyní kroky k přizpůsobení kódu pro senzory a dálkové ovladače, které používáte.

Pokud ve svém IDE otevřete skicu Wireless_Alarm, uvidíte na řádku 111.

if (mySwitch.getReceivedValue () == 115166236) // Kód tlačítka ovládání Fob

Tam, kde ve stávajícím kódu je 115166236, musíte toto číslo nahradit desetinným kódem pro tlačítko zapnutí dálkového ovladače, které jste zaznamenali v kroku 5.

Pokud například v kroku 5 získáte desetinné číslo 1154321, upravíte řádek 111 tak, aby byl nyní přečten;

if (mySwitch.getReceivedValue () == 1154321) // Kód tlačítka zapnutí ovladače

Stejným způsobem postupujte pro linku 125.

if (mySwitch.getReceivedValue () == 115166234) // Kód tlačítka pro deaktivaci ovladače

Nahraďte 115166234 kódem tlačítka pro deaktivaci dálkového ovladače, které jste zaznamenali v kroku 5.

Pokud chcete použít několik dálkových ovladačů k aktivaci a deaktivaci, zkopírujte a vložte řádky 111 až 136 tolikrát, kolikrát je potřeba, poté změňte hodnoty tak, aby vyhovovaly vašim ostatním dálkovým ovladačům, ale nejlépe stačí začít s jedním dálkovým ovladačem, dokud si nejste jisti, že jste změnili skica funguje.

Nyní ke kódování senzorů alarmu v náčrtu na řádku 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Akce pro kancelářskou skříňku odesílatele signálu

Vyjměte 1151640 a vložte desetinnou hodnotu jednoho ze svých alarmových senzorů.

Pak na linku 158.

lcd.print (F („Kancelářská skříň“)); // vytiskněte zprávu na LCD, abyste věděli, který senzor byl aktivován (a jděte a najděte zloděje:)

Změňte skříňku Office na cokoli, co byste chtěli, aby se pro tento senzor zobrazovalo na LCD displeji. Pokud například chcete číst kitchendoor, aby řádek vypadal takto;

lcd.print (F ("Kitchendoor")); // vytiskněte zprávu na LCD, abyste věděli, který senzor byl aktivován (a jděte a najděte zloděje:)

Jména by neměla přesáhnout 16 znaků.

Mezi řádky 165 a 187 je šablona, kterou je možné zkopírovat a vložit tolikrát, kolikrát je potřeba, do řádků přímo pod 187. Nahraďte číslo za mySwitch.getReceivedValue () == desítkovým číslem jednoho z vašich dalších senzorů, které jste zaznamenali v kroku 5 a změňte jméno v "" v lcd.print (F ("sensornamehere")); na jméno, které chcete svému senzoru dát.

Pokud nepoužíváte dálkové ovladače k aktivaci a deaktivaci alarmu, můžete jednoduše ignorovat řádky 111-136 nebo dát // na začátek každého z nechtěných řádků a Arduino je nebude číst.

Po provedení změn nezapomeňte soubor uložit.

Krok 7: Nahrajte změněné.ino do svého Arduina a vyzkoušejte

Nahrajte pozměněné.ino do svého Arduina a vyzkoušejte
Nahrajte pozměněné.ino do svého Arduina a vyzkoušejte
Nahrajte pozměněné.ino do svého Arduina a vyzkoušejte
Nahrajte pozměněné.ino do svého Arduina a vyzkoušejte
Nahrajte pozměněné.ino do svého Arduina a vyzkoušejte
Nahrajte pozměněné.ino do svého Arduina a vyzkoušejte

Když je Arduino stále připojeno k počítači pomocí USB, nahrajte skicu na desku Arduino. Jakmile je nahrávání úspěšně dokončeno, na displeji LCD by se mělo zobrazit „Alarm při deaktivaci“. Stiskněte tlačítko zapnutí na dálkovém ovladači a na displeji LCD by se mělo zobrazit „Alarm zapnutý“a LED dioda by měla svítit, abyste věděli, že je zapnuto, nyní aktivujte senzor, když je zapnutý, na displeji LCD by se mělo zobrazit Alarm následovaný časovým razítkem a umístění senzoru by měl bzučák znít po dobu 2 minut, pokud nestisknete tlačítko deaktivace. Pokud tento výsledek nedostáváte, znovu zkontrolujte kódy, které jste získali v kroku 5, a změny, které jste v kódu provedli v předchozím kroku, také znovu zkontrolujte zapojení všech komponent. Pokud displej LCD vůbec nečte, je na zadní straně modulu LCD úprava kontrastu. Pokud je kontrast správně nastaven, pokud LCD stále nečte, zkuste změnit adresu LCD z 0x3f na 0x27 na řádku 12 v náčrtu. Zde řešení problémů s LCD I2C LCD návod

Krok 8: Nastavení času na modulu RTC a změna doby aktivace a deaktivace

Naštěstí byl váš RTC již nastaven na správný čas, ale pokud neotevřete IDE, vyberte „Soubor“a v rozevíracím seznamu klikněte na „Příklady“, přejděte dolů na „DS1307RTC“a vyberte skicu „SetTime“, stáhněte si skicu do svého Arduino a nastaví hodiny reálného času s časem z vašeho počítače. Poté budete muset znovu načíst skicu Wireless_Alarm do svého Arduina.

Wireless_Alarm.ino, který jsem poskytl, ve výchozím nastavení nastaví alarm tak, aby se automaticky aktivoval v 10.15 hod. Každou noc a deaktivoval v 6:00 každé ráno. Chcete -li tyto časy změnit, upravte Skicu na řádcích 71 a 72. Čas je v závorkách po Alarm.alarmRepeat ve formátu HH, MM, SS. změňte to na jakýkoli čas, který vám vyhovuje.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // DISARM čas

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // ARM čas

Takže pro změnu času odzbrojení na 9.15 a času zapnutí na 17.30 by kód vypadal takto

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // DISARM čas

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // ARM čas

Pokud nechcete, aby se alarm aktivoval a deaktivoval, automaticky umístí // před 2 řádky a nebudou použity.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // DISARM čas

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Čas zapnutí

Dobu, po kterou zazní zvukový signál, lze změnit úpravou řádku 22

konst dlouhý interval = 120000; // pro milis zpoždění po dobu zvukových alarmů

Interval je v milisekundách, takže 1 200 000 = 120 sekund, změna 1 200 000 na 30 000 zazní 30 sekund.

Solenoid pro spuštění sirény, stroboskopické světlo, bzučák s vysokou hlasitostí atd. Lze také připojit ke kolíku 7 nebo 9 a poběží po dobu „intervalu“, jak je uvedeno výše. Mějte na paměti, že maximální zatížení pro pin Arduino by nemělo překročit 40mA.

Krok 9: Další poznámky

Při výběru přijímače 433 nebo 315 MHz pro Arduino byste měli zvolit frekvenci tak, aby odpovídala alarmovým senzorům, které hodláte použít. Doporučuji koupit modul, který je dodáván s malou spirálovou šroubovicovou anténou pro dosažení nejlepšího výkonu, alternativně také 17,3 mm dlouhá rovná drátová anténa také zvyšuje výkon.

S modulem 16x2 LCD musíte použít 4pinový I2C LCD, abyste mohli používat pokyny a kód, který zde poskytuji, mohl by být vyroben se standardním 16pinovým LCD, ale nebude fungovat s kabeláží nebo kódem zde.

Bezdrátové poplachové jazýčkové spínače, pohybové senzory a dálkové ovladače na klíče by měly být 433 MHz nebo 315 MHz, aby odpovídaly přijímači, který chcete použít, a měly by používat kódování PT2262 nebo EV1527.

Alarm je rozšiřitelný a přizpůsobitelný, již jsem přidal kartu SD pro záznam, když jsou spuštěny senzory, upravil LCD tak, aby se rozsvítil pouze při držení tlačítka a přidal sirénu 100 dB, ale nezahrnoval jsem zde podrobnosti, aby byl článek jako krátké a co nejjednodušší. Doufám, že sdílení práce, kterou jsem na tomto alarmu vykonal, bude pro ostatní užitečné.

Rádi zodpovíme jakékoli dotazy.

Dík.

Doporučuje: