Tartalomjegyzék:

Arduino vezeték nélküli riasztórendszer meglévő érzékelők használatával: 9 lépés (képekkel)
Arduino vezeték nélküli riasztórendszer meglévő érzékelők használatával: 9 lépés (képekkel)

Videó: Arduino vezeték nélküli riasztórendszer meglévő érzékelők használatával: 9 lépés (képekkel)

Videó: Arduino vezeték nélküli riasztórendszer meglévő érzékelők használatával: 9 lépés (képekkel)
Videó: Paradox Vezetéknélküli Riasztórendszer - Kezelési útmutató by Calvin Alarm ™ 2024, Július
Anonim
Arduino vezeték nélküli riasztórendszer meglévő érzékelőket használva
Arduino vezeték nélküli riasztórendszer meglévő érzékelőket használva
Arduino vezeték nélküli riasztórendszer meglévő érzékelőket használva
Arduino vezeték nélküli riasztórendszer meglévő érzékelőket használva
Arduino vezeték nélküli riasztórendszer meglévő érzékelőket használva
Arduino vezeték nélküli riasztórendszer meglévő érzékelőket használva
Arduino vezeték nélküli riasztórendszer meglévő érzékelőket használva
Arduino vezeték nélküli riasztórendszer meglévő érzékelőket használva

Ez a projekt körülbelül fél óra alatt megépíthető, körülbelül 20,00 USD áron, ha rendelkezik meglévő 433Mhz vagy 315Mhz vezeték nélküli riasztó érzékelőkkel.

Ez egy teljesen új projekt is lehet, vezeték nélküli riasztásérzékelőkkel, például infravörös mozgásérzékelőkkel és nádkapcsolókkal, könnyen és olcsón online elérhető. Csak keressen 433Mhz vagy 315Mhz érzékelőket, amelyek PT2262 vagy EV1527 kódolást használnak.

Biztos vagyok benne, hogy sokan hozzám hasonlóan vásároltak vezeték nélküli érzékelőkkel ellátott GSM/2G riasztórendszert, és elégedettek voltak vele, azonban amikor a 2G/GSM hálózatot kikapcsoltam a lakóhelyemen, egy riasztórendszert kaptam. már nem programoz, és nem is állítja be az időt. Egy nap, miközben azon gondolkodtam, mit tehetnék, hogy a riasztó újra működőképes legyen, eszembe jutott, hogy ellenőrizzem, hogy egy Arduino képes -e jeleket fogadni az érzékelőkről. Belebotlottam egy instuctible https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/-ba, és némi kísérletezés után megállapítottam, hogy meg tudom fogadni a jeleket a meglévő érzékelőimtől. Elkezdtem egy riasztórendszer kiépítését, amely helyettesítheti a meglévő riasztómat, és fokozott funkcionalitást is biztosít. A régi riasztás egyik problémája az volt, hogy soha nem tudtuk pontosan, hogy a 25 érzékelő közül melyik indult el. Azáltal, hogy az új riasztási felépítéshez hozzáadtam egy LCD -képernyőt, most szöveget kapok az LCD -n, amely pontosan jelzi, melyik érzékelő aktiválódott. Az új riasztó manuálisan is élesíthető a meglévő vezeték nélküli távirányítóimmal, és valós idejű órával rendelkezik, amely lehetővé teszi, hogy automatikusan élesítsen és hatástalanítson a nap előre beállított időpontjában.

Kellékek

Lásd a további megjegyzéseket a végén, hogy megbizonyosodjon arról, hogy az alkatrészek megfelelő verzióját használja.

Arduino Uno vagy hasonló

433 vagy 315 MHz -es vevőmodul az Arduino számára

DS3231 Valós idejű óra modul Arduino számára

I2C 16x2 LDC modul Arduino számára

Vezeték nélküli riasztási nádkapcsolók, mozgásérzékelők és távvezérlő kulcsok a kívánt módon

Piezo hangjelző

LED és 220 ohmos ellenállás

Breadboard (opcionális, de ajánlott)

Megfelelő tápegység az Arduino számára

Jumper vezetékek stb

PC Arduino IDE telepítve

Alapvető ismeretek az Arduino -ról

1. lépés: Kellékek

Kellékek
Kellékek
Kellékek
Kellékek
Kellékek
Kellékek

Néhány kép a fenti kellékekről, amelyekre szüksége lesz ehhez a projekthez

2. lépés: Csatlakoztassa az Ardunio -t és a modulokat a képen látható módon

Csatlakoztassa az Ardunio -t és a modulokat a képen látható módon
Csatlakoztassa az Ardunio -t és a modulokat a képen látható módon

Piezo az Arduino 5. csapja és a föld között

LED az Arduino 8. csapja és egy 220 ohmos ellenállás között, majd a földön

433 vagy 315 MHz -es vevő, VCC - 5 V, GND a földhöz, és az egyik 2 adatcsap az Arduino 2 -es tűjéhez

I2C 16X2 LCD modul VCC - 5V, GND a földhöz, SCL SDA csapok az Arduino SCL SDA -hoz (A5 -ös tű SCL, A4 -es tű SDA)

DS3231 RTC modul VCC - 5V, GND a földhöz, SCL SDA csapok az Arduino SCL SDA -hoz (a második készlet a legtöbb Arduino GND és AREF csapjai felett található)

Tudom, hogy némelyikőtöknek ennél több információra nem lesz szüksége, és az alábbi csatolt vázlatra, de részletesebben kifejtem azokat, akik további segítséget szeretnének.

3. lépés: Adja hozzá a szükséges könyvtárakat az Arduino IDE -hez

Szükséges könyvtárak hozzáadása az Arduino IDE -hez
Szükséges könyvtárak hozzáadása az Arduino IDE -hez
Szükséges könyvtárak hozzáadása az Arduino IDE -hez
Szükséges könyvtárak hozzáadása az Arduino IDE -hez
Szükséges könyvtárak hozzáadása az Arduino IDE -hez
Szükséges könyvtárak hozzáadása az Arduino IDE -hez

A riasztás futtatásához szükséges Arduino Sketch néhány könyvtárat használ, amelyek alapértelmezés szerint még nincsenek telepítve az Arduino IDE -re.

RCSwitch könyvtár hozzáadása az Arduino IDE -hez. Nyissa meg az Arduino IDE -t a felső menüben, válassza a "Vázlat" elemet, majd a legördülő menüből válassza a "Könyvtár felvétele" lehetőséget, majd a következő legördülő menüben válassza a "Könyvtárak kezelése" lehetőséget. Ezután a "Keresés szűrése" mezőbe írja be az "RCSW" mezőt, majd kattintson az "rc-switch by sui77" telepítésére

Részletes utasítások a könyvtárak hozzáadásához:

Ha már itt tartunk, hozzá kell adnunk a Time, TimeAlarms, DS1307RTC és LiquidCrystal_I2C nevű könyvtárakat is, a fentiekkel megegyező eljárással, de minden új könyvtár nevét keresve és telepítve. Ha nem tudja, melyik könyvtárat használja, tekintse meg a fenti képernyőképeket.

A DS3231 valós idejű óra kompatibilis a DS1307RTC könyvtárral és használja azt.

4. lépés: Ezután meg kell szereznünk az érzékelők kódjait

Ezután meg kell szereznünk az érzékelők kódjait
Ezután meg kell szereznünk az érzékelők kódjait
Ezután meg kell szereznünk az érzékelők kódjait
Ezután meg kell szereznünk az érzékelők kódjait

Az alábbiakban megadtam az Arduino kód sablonját, de meg kell találnia az egyes érzékelők értékeit, és be kell illesztenie őket a kódba.

Mindkét oldalon sok információ található a kódok beszerzésének módjáról;

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

github.com/sui77/rc-switch/wiki

Azonban itt van az én rövidített változatom;

Az érzékelők és a távvezérlő távirányítók által küldött kódok beszerzéséhez csatlakoztassa az 1. lépésben összeállított Arduino -t a számítógéphez USB -kábellel, és nyissa meg az Arduino IDE -t. Ezután az Arduino IDE -ben lépjen a "Fájl" legördülő menübe, majd menjen a "Példák" -ra, görgessen lefelé a példa -vázlatok listáján, amíg meg nem találja az "RCSWITCH" -t, majd válassza ki a "ReceiveDemo_Advanced" vázlatot, és töltse fel az Arduino -ba. Miután a vázlat sikeresen feltöltődött, nyissa meg az Arduino IDE soros monitorát, és továbbra is csatlakoztassa a számítógéphez USB -n keresztül. Most indítsa el az első érzékelőt, amelyhez kódot szeretne kapni, az RCSwitch kimenete megjelenik a soros monitor ablakában. Ehhez a projekthez a 2. képernyőképen kiemelt tizedes kódokat keressük. Többször kell aktiválnia az érzékelőt, és keresnie kell a leggyakrabban megjelenő tizedes értéket, néha különböző értékeket kell összekeverni a valódi értékkel. véletlenszerű rádióhullámok vagy más, azonos frekvencián működő eszközök interferenciája által.

Jegyezze fel az érzékelő tizedes kódját a következő lépésben való használatra. Ismételje meg a projektben használni kívánt összes érzékelőt és távvezérlőt, és kövesse nyomon, melyik kód melyik érzékelőhöz tartozik. Ha távirányítót használ a riasztó élesítésére és hatástalanítására, fel kell jegyeznie az egyes távirányítók élesítési és hatástalanítási gombjának különböző kódjait.

5. lépés: Arduino kódsablon

Az alábbiakban az Arduino kódom másolata.ino fájlként, Wireless_Alarm néven. Kattintson rá, és megnyílik az Arduino IDE -ben. Nem vagyok programozó, a kódom részben az Arduino IDE -ben található példákból áll össze, valószínűleg nem különösebben elegáns, de működik, és hosszú ideig megbízható.

Ne felejtse el újra menteni a vázlatot a módosítások elvégzése után, hogy tartalmazza a saját érzékelői kódjait.

6. lépés: Illessze be az 5. lépésben kapott kódokat az Arduino sablon sablonjába

Most tekintse át a használt érzékelők és távvezérlők kódjának testreszabásának lépéseit.

Ha megnyitja a Wireless_Alarm vázlatot az IDE -ben, a 111. sorban látható.

if (mySwitch.getReceivedValue () == 115166236) // Fob arm gomb kódja

Ha a meglévő kódban 115166236 olvasható, akkor ezt a számot le kell cserélnie a távoli távirányító élesítési gombjának tizedes kódjára, amelyet az 5. lépésben rögzített.

Például, ha az 5. lépésben tizedesjegyet kapott 1154321, akkor a 111. sort most olvasottra módosítja;

if (mySwitch.getReceivedValue () == 1154321) // Kezelőgomb gomb kódja

Kövesse ugyanezt az eljárást a 125. sorban.

if (mySwitch.getReceivedValue () == 115166234) // Fob hatástalanítás gomb kódja

Cserélje ki a 115166234 kódot a távvezérlő hatástalanító gombjának kódjára, amelyet az 5. lépésben rögzített.

Ha több távvezérlőt szeretne használni élesítéshez és hatástalanításhoz, másolja és illessze be a 111. és 136. sorokat annyiszor, ahányszor szükséges, majd módosítsa az értékeket, hogy megfeleljenek a többi távvezérlőnek, de a legjobb, ha csak egy távirányítóval kezdi, amíg nem biztos abban, hogy módosította a vázlat működik.

Most a riasztásérzékelők kódolásához a 140. sor vázlatában

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Művelet a jelküldő irodai szekrényhez

Vegye ki a 1151640 -et, és illessze be az egyik riasztóérzékelő tizedes értékét.

Aztán a 158. sorban.

lcd.print (F ("Irodai szekrény")); // nyomtassa ki az üzenetet az LCD -re, hogy megtudja, melyik érzékelő aktiválódott (és keresse meg a betörőt:)

Módosítsa az irodai szekrényt arra, amire szeretné, hogy az érzékelő az LCD -n megjelenjen. Például, ha azt szeretné, hogy a kitchendoor olvassa, a sor így nézzen ki;

lcd.print (F ("Kitchendoor")); // nyomtassa ki az üzenetet az LCD -re, hogy megtudja, melyik érzékelő aktiválódott (és keresse meg a betörőt:)

A nevek nem haladhatják meg a 16 karaktert.

A 165 és 187 sor között van egy sablon, amelyet a szükséges számú alkalommal másolhat és illeszthet be közvetlenül a 187. alatti sorokba. Cserélje ki a mySwitch.getReceivedValue () == utáni számot az 5. lépésben rögzített másik érzékelője tizedesjegyével és módosítsa a nevet a "" -on belül az lcd.print -ben (F ("sensornamehere")); az érzékelőnek adni kívánt névre.

Ha nem használja a távvezérlőt a riasztó élesítéséhez és hatástalanításához, akkor egyszerűen figyelmen kívül hagyhatja a 111-136.

Ne felejtse el menteni a fájlt a módosítások elvégzése után.

7. lépés: Töltse fel a módosított.ino -t Arduino -jába és tesztelje

Töltse fel a módosított.ino -t Arduino -jába és tesztelje
Töltse fel a módosított.ino -t Arduino -jába és tesztelje
Töltse fel a módosított.ino -t Arduino -jába és tesztelje
Töltse fel a módosított.ino -t Arduino -jába és tesztelje
Töltse fel a módosított.ino -t Arduino -jába és tesztelje
Töltse fel a módosított.ino -t Arduino -jába és tesztelje

Ha az Arduino továbbra is USB -n keresztül csatlakozik a számítógéphez, töltse fel a vázlatot az Arduino Boardra. Miután a feltöltés sikeresen befejeződött, az LCD -n a „Riasztás kikapcsolva” felirat olvasható. Nyomja meg a távirányító kar gombját, és az LCD -n a „Riasztás élesítve” felirat olvasható, és a LED -nek világítania kell, hogy tudassa, élesítve van, most kapcsoljon be egy érzékelőt élesítés közben, az LCD -n olvassa el a Riasztást, majd egy időbélyeget, és az érzékelő helyét, a sípoló hangnak 2 percig kell szólnia, kivéve, ha megnyomja a hatástalanítás gombot. Ha nem kapja meg ezt az eredményt, ellenőrizze újra az 5. lépésben kapott kódokat és az előző lépésben a kódon végrehajtott módosításokat, és ellenőrizze újra az összes alkatrész vezetékét. Ha az LCD egyáltalán nem olvas, akkor az LCD modul hátoldalán van egy kontrasztbeállítás. Ha a kontraszt megfelelően van beállítva, ha az LCD még mindig nem olvas, próbálja meg megváltoztatni az LCD címét 0x3f -ről 0x27 -re a vázlat 12. sorában. LCD hibaelhárítás itt I2C LCD bemutató

8. lépés: Az idő beállítása az RTC modulon, és az élesítési és hatástalanítási idő módosítása

Remélhetőleg az RTC -je már a megfelelő időben volt beállítva, de ha nem nyitja meg az IDE -t, válassza a "Fájl" lehetőséget, és a legördülő menüben kattintson a "Példák" lehetőségre, görgessen le a "DS1307RTC" elemhez, és válassza ki a "SetTime" vázlatot, és töltse le a vázlatot a Az Arduino segítségével beállíthatja a valós idejű órát a számítógépről származó idővel. Ezután újra kell töltenie a Wireless_Alarm vázlatot az Arduino -hoz.

Az általam biztosított Wireless_Alarm.ino alapértelmezés szerint minden éjjel 22.15 -kor automatikusan élesíti a riasztót, és minden reggel 6.00 -kor hatástalanítja. Ezen időpontok megváltoztatásához módosítsa a Vázlatot a 71. és 72. sorban. Az idő zárójelben van megadva az Alarm.alarmRepeat után HH, MM, SS formátumban. ezt változtassa meg az Önnek megfelelő időre.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // KIKAPCSOLÁS ideje

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // ARM idő

Tehát, ha a hatástalanítási időt 9.15 -re, az élesítési időt 17.30 -ra módosítjuk, a kód így nézne ki

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // KIKAPCSOLÁS ideje

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // ARM idő

Ha nem szeretné, hogy a riasztó automatikusan élesedjen és hatástalanítson, akkor a // sor kerül a 2 sor elé, és azok nem használhatók.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // KIKAPCSOLÁS ideje

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Élesítési idő

A riasztó hangjelzésének időpontja a 22 -es sor módosításával módosítható

const hosszú intervallum = 120000; // millis késleltetés esetén a riasztási hangok hosszú ideig

Az intervallum ezredmásodpercben van megadva, tehát 120000 = 120 másodperc, ha 120000 -ról 30000 -ra módosítja, a riasztás 30 másodpercig szól.

Sziréna, villogó fény, nagy hangerősségű hangjelző stb. Mágnesszelepe is csatlakoztatható a 7 -es vagy a 9 -es érintkezőhöz, és a fent meghatározott "intervallumon" keresztül fog működni. Ne feledje, hogy az Arduino csap maximális terhelése nem haladhatja meg a 40 mA -t.

9. lépés: További megjegyzések

Amikor 433 vagy 315 MHz -es vevőmodult választ az Arduino számára, válassza ki a használni kívánt riasztásérzékelőknek megfelelő frekvenciát. Azt javaslom, hogy vásároljon egy modult, amelyhez kis spirális spirális antennák tartoznak a legjobb teljesítmény érdekében, vagy egy 17,3 mm hosszú egyenes huzal antennák is növelik a teljesítményt.

A 16x2 LCD modulnál 4 tűs I2C LCD -t kell használnia az itt megadott utasítások és kódok használatához, lehet 16 tűs szabványos LCD -vel, de nem működik az itt található kábelezéssel vagy kóddal.

A vezeték nélküli riasztó reed kapcsolóknak, mozgásérzékelőknek és távvezérlőknek 433 MHz vagy 315 MHz -esnek kell lenniük, hogy megfeleljenek a használni kívánt vevőegységnek, és PT2262 vagy EV1527 kódolást kell használniuk.

A riasztó bővíthető és alkalmazkodik, már hozzáadtam egy SD -kártyát, amely rögzíti az érzékelők bekapcsolását, módosítottam az LCD -t, hogy csak akkor világítson, ha egy gombot lenyomnak, és hozzáadtam egy 100 dB -es szirénát, de nem adtam meg részleteket, hogy a cikk változatlan maradjon a lehető legrövidebb és legegyszerűbb. Remélem, hogy az ezzel a riasztóval kapcsolatos munkám megosztása másoknak is hasznos lesz.

Bármilyen kérdésre szívesen válaszolok.

Kösz.

Ajánlott: