Obsah:
- Zásoby
- Krok 1: Spotřební materiál
- Krok 2: Zapojte Ardunio a moduly podle obrázku
- Krok 3: Přidejte do IDE Arduino potřebné knihovny
- Krok 4: Dále potřebujeme získat kódy pro vaše senzory
- Krok 5: Šablona kódu Arduino
- Krok 6: Vložte kódy, které jste získali v kroku 5, do šablony Arduino Sketch
- Krok 7: Nahrajte změněné.ino do svého Arduina a vyzkoušejte
- Krok 8: Nastavení času na modulu RTC a změna doby aktivace a deaktivace
- Krok 9: Další poznámky
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
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
Některé obrázky výše dodávek, které budete pro tento projekt potřebovat
Krok 2: 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
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
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
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.