Obsah:

Bezdrôtový poplachový systém Arduino pomocou existujúcich senzorov: 9 krokov (s obrázkami)
Bezdrôtový poplachový systém Arduino pomocou existujúcich senzorov: 9 krokov (s obrázkami)

Video: Bezdrôtový poplachový systém Arduino pomocou existujúcich senzorov: 9 krokov (s obrázkami)

Video: Bezdrôtový poplachový systém Arduino pomocou existujúcich senzorov: 9 krokov (s obrázkami)
Video: Беспроводной микрофон, приемник и передатчик, все в одном 2024, November
Anonim
Bezdrôtový poplachový systém Arduino pomocou existujúcich senzorov
Bezdrôtový poplachový systém Arduino pomocou existujúcich senzorov
Bezdrôtový poplachový systém Arduino pomocou existujúcich senzorov
Bezdrôtový poplachový systém Arduino pomocou existujúcich senzorov
Bezdrôtový poplašný systém Arduino pomocou existujúcich senzorov
Bezdrôtový poplašný systém Arduino pomocou existujúcich senzorov
Bezdrôtový poplašný systém Arduino pomocou existujúcich senzorov
Bezdrôtový poplašný systém Arduino pomocou existujúcich senzorov

Tento projekt je možné postaviť zhruba za pol hodinu za cenu približne 20,00 dolárov, ak máte existujúce senzory bezdrôtového alarmu 433 MHz alebo 315 MHz.

Tiež to môže byť úplne nový projekt s bezdrôtovými poplachovými senzormi, ako sú infračervené detektory pohybu a jazýčkové spínače, ľahko a lacno dostupné online. Stačí vyhľadať snímače 433 MHz alebo 315 MHz, ktoré používajú kódovanie PT2262 alebo EV1527.

Som si istý, že existuje veľa ľudí ako ja, ktorí si kúpili poplašný systém GSM/2G s bezdrôtovými senzormi a boli s ním spokojní. Keď však bola sieť 2G/GSM vypnutá tam, kde bývam, zostal mi poplašný systém, ktorý som mohol už naprogramovať alebo dokonca nastaviť čas. Jedného dňa som premýšľal, čo by som mohol urobiť, aby bol môj alarm opäť funkčný, a tak ma napadlo skontrolovať, či Arduino dokáže prijímať signály zo senzorov. Narazil som na nestabilný https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ a po nejakom experimentovaní som zistil, že môžem prijímať signály z mojich existujúcich senzorov. Začal som proces budovania poplašného systému, ktorý by mohol nahradiť môj existujúci poplach a zároveň by poskytoval zvýšenú funkčnosť. Jedným z problémov starého alarmu bolo, že som v skutočnosti nevedel presne, ktorý z 25 senzorov sa vypol. Po pridaní obrazovky LCD do mojej novej zostavy alarmu sa na LCD displeji zobrazí text, ktorý presne indikuje, ktorý senzor bol aktivovaný. Nový alarm je stále možné manuálne zapnúť pomocou mojich existujúcich bezdrôtových ovládačov a má hodiny reálneho času, ktoré mu umožňujú automatické zapnutie a vypnutie stráženia v prednastavených časoch dňa.

Zásoby

Pozrite si ďalšie poznámky na konci, aby ste sa uistili, že používate správnu verziu týchto dielov.

Arduino Uno alebo podobné

Modul prijímača 433 alebo 315 MHz pre Arduino

Modul hodín reálneho času DS3231 pre Arduino

I2C 16x2 LDC modul pre Arduino

Bezdrôtové poplachové jazýčkové spínače, snímače pohybu a diaľkové ovládače podľa potreby

Piezo bzučiak

LED a odpor 220 ohmov

Breadboard (voliteľné, ale odporúčané)

Vhodné napájanie pre Arduino

Prepojovacie vodiče atď

PC s nainštalovaným Arduino IDE

Základné znalosti Arduina

Krok 1: Spotrebný materiál

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

Niektoré obrázky vyššie zo zásob, ktoré budete potrebovať pre tento projekt

Krok 2: Zapojte Ardunio a moduly, ako je znázornené na obrázku

Zapojte Ardunio a moduly, ako je znázornené na obrázku
Zapojte Ardunio a moduly, ako je znázornené na obrázku

Piezo medzi kolíkom 5 Arduina a zemou

LED medzi kolíkom 8 Arduina a k odporu 220 ohmov potom k zemi

Prijímač 433 alebo 315 MHz, VCC až 5V, GND na zem a buď jeden z 2 dátových pinov na pin2 Arduina

Modul LCD I2C 16X2 VCC až 5V, GND na zem, kolíky SCL SDA na SCL SDA Arduina (pin A5 je SCL, pin A4 je SDA)

DS3231 RTC modul VCC na 5V, GND na zem, SCL SDA piny na SCL SDA Arduina (druhá sada je umiestnená nad pinmi GND a AREF väčšiny Arduino)

Viem, že niektorí z vás nebudú potrebovať viac informácií ako tento a nižšie priložený náčrt, ale každému, kto by chcel ďalšiu pomoc, sa budem venovať podrobnejším informáciám.

Krok 3: Pridajte do knižnice Arduino IDE potrebné knižnice

Pridajte do IDE Arduino potrebné knižnice
Pridajte do IDE Arduino potrebné knižnice
Pridajte do IDE Arduino potrebné knižnice
Pridajte do IDE Arduino potrebné knižnice
Pridajte do IDE Arduino potrebné knižnice
Pridajte do IDE Arduino potrebné knižnice

Skica Arduino na spustenie alarmu používa niektoré knižnice, ktoré nie sú predvolene nainštalované v IDE Arduino.

Ak chcete pridať knižnicu RCSwitch do IDE Arduino. V hornom menu otvorte Arduino IDE, zvoľte „Skica“, v rozbaľovacom zozname vyberte „Zahrnúť knižnicu“a v ďalšej rozbaľovacej ponuke vyberte „Spravovať knižnice“. Potom do poľa „Filtrovať vyhľadávanie“zadajte „RCSW“a potom kliknite na položku „Inštalovať“pre „rc-switch by sui77“

Podrobný návod na pridanie knižníc na

Kým sme pri tom, musíme tiež pridať knižnice s názvom Time, TimeAlarms, DS1307RTC a LiquidCrystal_I2C, rovnaký postup ako vyššie, ale vyhľadať názov každej novej knižnice a nainštalovať. Ak si nie ste istí, ktoré knižnice použiť, pozrite si snímky obrazovky vyššie.

Hodiny reálneho času DS3231 sú kompatibilné s knižnicou DS1307RTC a používajú ju.

Krok 4: Ďalej musíme získať kódy pre vaše senzory

Ďalej musíme získať kódy pre vaše senzory
Ďalej musíme získať kódy pre vaše senzory
Ďalej musíme získať kódy pre vaše senzory
Ďalej musíme získať kódy pre vaše senzory

Nižšie som poskytol šablónu kódu Arduino, ale budete musieť nájsť hodnoty pre každý zo svojich senzorov a vložiť ich do kódu.

Na oboch týchto serveroch sú rozsiahle informácie o tom, ako tieto kódy získať;

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

github.com/sui77/rc-switch/wiki

Tu je však moja skrátená verzia;

Ak chcete získať kódy, ktoré odosielajú vaše senzory a diaľkové ovládače, pripojte Arduino zostavené v kroku 1 k počítaču pomocou kábla USB a otvorte Arduino IDE. Potom v IDE Arduino prejdite na rozbaľovaciu ponuku „Súbor“, potom na „Príklady“posuňte sa nadol v zozname ukážkových skíc, kým nenájdete „RCSWITCH“, potom vyberte skicu „ReceiveDemo_Advanced“a nahrajte ju do Arduina. Akonáhle sa skica úspešne nahrá, otvorte sériový monitor Arduino IDE, ktorý je stále pripojený k počítaču prostredníctvom USB. Teraz spustite prvý zo senzorov, pre ktoré chcete získať kód, výstup z RCSwitch sa zobrazí v okne sériového monitora. Pre tento projekt hľadáme desatinné kódy, ako je zvýraznené na obrázku č. 2. Budete musieť senzor viackrát spustiť a hľadať desatinnú hodnotu, ktorá sa zobrazuje najčastejšie, niekedy sa zmiešajú rôzne hodnoty s skutočnou hodnotou, je to spôsobené interferenciou z náhodných rádiových vĺn alebo iných zariadení pracujúcich na rovnakej frekvencii.

Všimnite si desatinného kódu senzora, ktorý chcete použiť v nasledujúcom kroku. Opakujte pre všetky senzory a diaľkové ovládače, ktoré chcete použiť v projekte, pričom sledujte, ktorý kód ide s ktorým senzorom. Ak na zapnutie a vypnutie alarmu používate ovládače, budete si musieť všimnúť rôzne kódy pre tlačidlo zapnutia a vypnutia pre každé diaľkové ovládanie.

Krok 5: Šablóna kódu Arduino

Nasleduje kópia môjho kódu Arduino ako súboru.ino s názvom Wireless_Alarm. Môžete naň kliknúť a otvorí sa v Arduino IDE. Nie som programátor, môj kód je čiastočne zostavený z príkladov nájdených v Arduino IDE, pravdepodobne nie je obzvlášť elegantný, ale funguje a je spoľahlivý už dlho.

Po vykonaní zmien, ktoré budú zahŕňať kódy z vašich vlastných senzorov, nezabudnite náčrt znova uložiť.

Krok 6: Vložte kódy, ktoré ste získali v kroku 5, do náčrtu Arduino Template

Teraz kroky na prispôsobenie kódu pre senzory a diaľkové ovládače, ktoré používate.

Ak vo svojom IDE otvoríte skicu Wireless_Alarm, uvidíte na riadku 111.

if (mySwitch.getReceivedValue () == 115166236) // Kód tlačidla stráženia ovládača

Tam, kde v existujúcom kóde je 115166236, musíte nahradiť toto číslo desatinným kódom pre tlačidlo zapnutia diaľkového ovládača, ktoré ste zaznamenali v kroku 5.

Ak napríklad v kroku 5 získate desatinné číslo 1154321, upravíte riadok 111 tak, aby sa teraz čítal;

if (mySwitch.getReceivedValue () == 1154321) // Kód tlačidla stráženia ovládača

Rovnakým spôsobom postupujte pre riadok 125.

if (mySwitch.getReceivedValue () == 115166234) // Kód tlačidla deaktivácie ovládača

Nahraďte kód tlačidla deaktivácie diaľkového ovládača, ktorý ste zaznamenali v kroku 5, 115166234.

Ak chcete použiť viac diaľkových ovládačov na zapnutie a vypnutie stráženia, skopírujte a prilepte riadky 111 až 136 toľkokrát, koľkokrát je to potrebné, potom zmeňte hodnoty tak, aby vyhovovali vašim iným diaľkovým ovládačom, ale najlepšie je začať s jedným diaľkovým ovládačom, kým si nie ste istí, či ste zmenili skica funguje.

Teraz ku kódovaniu poplachových senzorov v náčrte na riadku 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Action for signal sender office kredent

Vyberte 1151640 a zadajte desatinnú hodnotu jedného zo svojich senzorov alarmu.

Potom na linku 158.

lcd.print (F („kancelárska skrinka“)); // vytlačte správu na LCD, aby ste vedeli, ktorý senzor bol aktivovaný (a choďte a nájdite zlodeja:)

Zmeňte skriňu Office na čokoľvek, čo by ste chceli, aby sa pre tento senzor zobrazovalo na LCD displeji. Ak napríklad chcete čítať kitchendoor, nechajte riadok vyzerať takto;

lcd.print (F ("Kitchendoor")); // vytlačte správu na LCD, aby ste vedeli, ktorý senzor bol aktivovaný (a choďte a nájdite zlodeja:)

Mená by nemali presiahnuť 16 znakov.

Medzi riadkami 165 a 187 je šablóna na kopírovanie a vkladanie toľkokrát, koľkokrát je to potrebné, do riadkov priamo pod 187. Nahraďte číslo za mySwitch.getReceivedValue () == desatinnou čiarkou jedného z vašich ďalších senzorov, ktoré ste zaznamenali v kroku 5. a zmeňte názov v rámci „“v lcd.print (F („meno_zmeny“)); na meno, ktoré chcete dať svojmu senzoru.

Ak na zapnutie a vypnutie alarmu nepoužívate diaľkové ovládače, môžete riadky 111-136 ignorovať alebo na začiatok každého z nechcených riadkov vložiť // a Arduino ich neprečíta.

Po vykonaní zmien nezabudnite súbor uložiť.

Krok 7: Nahrajte zmenené.ino do svojho Arduina a otestujte

Nahrajte zmenené.ino do svojho Arduina a otestujte
Nahrajte zmenené.ino do svojho Arduina a otestujte
Nahrajte zmenené.ino do svojho Arduina a otestujte
Nahrajte zmenené.ino do svojho Arduina a otestujte
Nahrajte zmenené.ino do svojho Arduina a otestujte
Nahrajte zmenené.ino do svojho Arduina a otestujte

Keď je Arduino stále pripojené k počítaču pomocou USB, nahrajte skicu na dosku Arduino. Akonáhle je nahrávanie úspešne dokončené, na LCD displeji by sa malo zobrazovať „Alarm zapnutý deaktivovaný“. Na diaľkovom ovládači stlačte tlačidlo ramena a na displeji LCD by sa malo zobrazovať „Alarm zapnutý“a LED dióda by mala svietiť, aby ste vedeli, že je zapnuté. Teraz zapnite senzor, keď je zapnutý, na LCD displeji by sa malo objaviť upozornenie a časový údaj a umiestnenie senzora, pípač by mal znieť 2 minúty, pokiaľ nestlačíte tlačidlo odzbrojenia. Ak nedostanete tento výsledok, znova skontrolujte kódy, ktoré ste získali v kroku 5, a zmeny, ktoré ste urobili v kóde v predchádzajúcom kroku, znova skontrolujte zapojenie všetkých komponentov. Ak displej LCD vôbec nečíta, na zadnej strane modulu LCD je nastavenie kontrastu. Keď je kontrast správne nastavený, ak LCD stále nečíta, skúste zmeniť adresu LCD z 0x3f na 0x27 na riadku 12 v skici. Riešenie problémov s LCD tu I2C LCD návod

Krok 8: Nastavenie času na module RTC a zmena času zapnutia a vypnutia

Našťastie bol váš RTC už nastavený na správny čas, ale ak IDE neotvoríte, zvoľte „Súbor“a v rozbaľovacom zozname kliknite na „Príklady“, posuňte sa nadol na „DS1307RTC“a vyberte skicu „Nastaviť čas“, stiahnite si náčrt do svojho Arduino a nastaví hodiny v reálnom čase s časom z vášho počítača. Potom budete musieť znova načítať skicu Wireless_Alarm do svojho Arduina.

Server Wireless_Alarm.ino, ktorý som poskytol, v predvolenom nastavení nastaví automatické zapnutie alarmu o 22.15 hod. Každú noc a odzbrojenie o 6.00 hod. Každé ráno. Ak chcete tieto časy zmeniť, upravte Skicu na riadkoch 71 a 72. Čas je v zátvorkách za Alarm.alarmRepeat vo formáte HH, MM, SS. zmeňte to na ľubovoľný čas, ktorý vám vyhovuje.

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

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

Ak teda chcete zmeniť čas odzbrojenia na 9.15 hod. A čas stráženia na 17.30 hod., Kód by vyzeral takto

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

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

Ak nechcete, aby sa alarm automaticky zapínal a vypínal, umiestnite // pred 2 riadky a nebudú použité.

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

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

Čas, po ktorý zaznie zvukový signál, je možné zmeniť na riadku 22

konštantný dlhý interval = 120 000; // pre milisekundové oneskorenie po dobu zvukových alarmov

Interval je v milisekundách, takže 1 200 000 = 120 sekúnd, pri zmene 1 200 000 na 30 000 zaznie alarm 30 sekúnd.

Solenoid na spustenie sirény, stroboskopického svetla, vysokoobjemového bzučiaka atď. Môže byť tiež zapojený na pin 7 alebo pin 9 a bude bežať "intervalovo", ako je uvedené vyššie. Majte na pamäti, že maximálne zaťaženie pre pin Arduino by nemalo prekročiť 40mA.

Krok 9: Ďalšie poznámky

Pri výbere modulu prijímača 433 alebo 315 MHz pre Arduino by ste mali zvoliť frekvenciu, aby zodpovedala senzorom alarmu, ktoré chcete použiť. Odporúčam kúpiť modul, ktorý je dodávaný s malou špirálovitou špirálovou anténou, aby bol zaistený najlepší výkon. Alternatívne tiež zvyšuje výkon 17,3 mm dlhá rovná drôtová anténa.

S modulom LCD 16x2 musíte použiť 4 -pinový I2C LCD, aby ste mohli používať pokyny a kód, ktorý tu uvádzam, môže byť vyrobený so 16 -pinovým štandardným LCD, ale tu nebude fungovať s káblom alebo kódom.

Bezdrôtové poplachové jazýčkové spínače, pohybové senzory a diaľkové ovládače by mali mať 433 MHz alebo 315 MHz, aby zodpovedali prijímaču, ktorý chcete použiť, a mali by používať kódovanie PT2262 alebo EV1527.

Alarm je rozšíriteľný a prispôsobiteľný, už som pridal kartu SD na zaznamenávanie pri spustení senzorov, upravil som LCD tak, aby sa rozsvietil iba pri podržaní tlačidla a pridal sa siréna 100 dB, ale neuviedol som tu podrobnosti, aby bol článok ako krátke a jednoduché. Dúfam, že zdieľanie práce, ktorú som vykonal na tomto alarme, bude pre niekoho užitočné.

Radi odpovieme na akékoľvek otázky.

Vďaka.

Odporúča: