Съдържание:

Безжична алармена система Arduino, използваща съществуващи сензори: 9 стъпки (със снимки)
Безжична алармена система Arduino, използваща съществуващи сензори: 9 стъпки (със снимки)

Видео: Безжична алармена система Arduino, използваща съществуващи сензори: 9 стъпки (със снимки)

Видео: Безжична алармена система Arduino, използваща съществуващи сензори: 9 стъпки (със снимки)
Видео: как сделать, схема управления передатчиком и приемником, jlcpcb 2024, Ноември
Anonim
Безжична алармена система Arduino, използваща съществуващи сензори
Безжична алармена система Arduino, използваща съществуващи сензори
Безжична алармена система Arduino, използваща съществуващи сензори
Безжична алармена система Arduino, използваща съществуващи сензори
Безжична алармена система Arduino, използваща съществуващи сензори
Безжична алармена система Arduino, използваща съществуващи сензори
Безжична алармена система Arduino, използваща съществуващи сензори
Безжична алармена система Arduino, използваща съществуващи сензори

Този проект може да бъде изграден за около половин час на цена от около $ 20.00, ако имате съществуващи 433Mhz или 315Mhz безжични алармени сензори.

Това може да бъде и изцяло нов проект с безжични алармени сензори, като инфрачервени детектори за движение и тръстикови превключватели, лесно и евтино достъпни онлайн. Просто потърсете 433Mhz или 315Mhz сензори, които използват PT2262 или EV1527 кодиране.

Сигурен съм, че има много хора като мен, които са закупили GSM/2G алармена система с безжични сензори и са доволни от нея, но когато 2G/GSM мрежата беше изключена там, където живея, останах с алармена система, която можех вече не програмирате и дори не задавате часа. Един ден, докато се чудех какво мога да направя, за да активирам отново алармата си, ми хрумна да проверя дали Arduino може да приема сигнали от сензорите. Случайно попаднах на инсталиращ https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ и след експеримент определих, че мога да приема сигналите от съществуващите ми сензори. Започнах процеса на изграждане на алармена система, която да замени съществуващата ми аларма и също така да осигури повишена функционалност. Един от проблемите със старата аларма никога не беше да се знае точно кой от 25 -те сензора е излязъл, като добавих LCD екран към новата си алармена конструкция, сега получавам текст на LCD, който показва точно кой сензор е активиран. Новата аларма все още може да бъде активирана ръчно от съществуващите ми безжични ключодържатели и има часовник в реално време, за да може автоматично да се активира и дезактивира в предварително зададени часове на деня.

Консумативи

Вижте допълнителни бележки в края, за да сте сигурни, че използвате правилната версия на тези части.

Arduino Uno или подобен

433 или 315 MHz приемник модул за Arduino

DS3231 Часовник в реално време за Arduino

I2C 16x2 LDC модул за Arduino

Безжични алармени тръстикови превключватели, сензори за движение и дистанционни ключодържатели по желание

Пиезо зумер

LED и 220 ома резистор

Платформа (по избор, но препоръчително)

Подходящо захранване за Arduino

Джъмперни проводници и др

Компютър с инсталирана Arduino IDE

Основни познания за Arduino

Стъпка 1: Консумативи

Консумативи
Консумативи
Консумативи
Консумативи
Консумативи
Консумативи

Някои изображения по -горе на консумативите, които ще ви трябват за този проект

Стъпка 2: Свържете Ardunio и модулите, както е показано на изображението

Свържете Ardunio и модулите, както е показано на изображението
Свържете Ardunio и модулите, както е показано на изображението

Пиезо между щифт 5 на Arduino и земята

LED между щифт 8 на Arduino и към 220ohm резистор след това към земята

433 или 315 Mhz приемник, VCC до 5V, GND към маса и един от двата пина за данни към pin2 на Arduino

I2C 16X2 LCD модул VCC до 5V, GND към маса, SCL SDA щифтове към SCL SDA на Arduino (щифт A5 е SCL, щифт A4 е SDA)

DS3231 RTC модул VCC до 5V, GND към маса, SCL SDA щифтове към SCL SDA на Arduino (има 2 -ри комплект, разположен над щифтовете GND и AREF на повечето Arduino)

Знам, че някои от вас няма да се нуждаят от повече информация от тази и скицата, приложена по -долу, но ще вляза в някои подробности за всеки, който би искал малко допълнителна помощ.

Стъпка 3: Добавете необходимите библиотеки към IDE на Arduino

Добавете необходимите библиотеки към IDE на Arduino
Добавете необходимите библиотеки към IDE на Arduino
Добавете необходимите библиотеки към IDE на Arduino
Добавете необходимите библиотеки към IDE на Arduino
Добавете необходимите библиотеки към IDE на Arduino
Добавете необходимите библиотеки към IDE на Arduino

Arduino Sketch за стартиране на алармата използва някои библиотеки, които все още не са инсталирани в Arduino IDE по подразбиране.

За да добавите библиотека RCSwitch към IDE на Arduino. Отворете Arduino IDE в горното меню изберете „Скица“, след това от падащото меню изберете „Включване на библиотека“и от следващото падащо меню изберете „Управление на библиотеки“. След това в полето „Филтриране на вашето търсене“въведете „RCSW“, следващо щракване върху инсталиране за „rc-switch by sui77“

Подробни инструкции за добавяне на библиотеки на

Докато сме в това, ние също трябва да добавим библиотеките, наречени Time, TimeAlarms, DS1307RTC и LiquidCrystal_I2C, същата процедура, както по -горе, но търсене на името на всяка нова библиотека и инсталиране. Вижте екранни снимки по -горе, ако не сте сигурни кои библиотеки да използвате.

Часовникът в реално време DS3231 е съвместим и използва библиотеката DS1307RTC.

Стъпка 4: След това трябва да получим кодовете за вашите сензори

След това трябва да получим кодовете за вашите сензори
След това трябва да получим кодовете за вашите сензори
След това трябва да получим кодовете за вашите сензори
След това трябва да получим кодовете за вашите сензори

Предоставих шаблона на кода на Arduino по -долу, но ще трябва да намерите стойностите за всеки от вашите сензори и да ги поставите в кода.

Има обширна информация за това как да получите тези кодове и на двата сайта;

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

github.com/sui77/rc-switch/wiki

Тук обаче е моята съкратена версия;

За да получите кодовете, които вашите сензори и дистанционните ключодържатели изпращат, свържете Arduino, както е сглобен в стъпка 1, към компютър чрез USB кабел и отворете Arduino IDE. След това в Arduino IDE отидете на падащото меню „Файл“, след това отидете на „Примери“, превъртете надолу списъка с примерни скици, докато намерите „RCSWITCH“, след това изберете скицата „ReceiveDemo_Advanced“и я качете в Arduino. След като скицата се качи успешно, отворете серийния монитор на Arduino IDE, като той все още е свързан към вашия компютър чрез USB. Сега задействайте първия от сензорите, за които искате да получите кода, изходът от RCSwitch ще се появи в прозореца на серийния монитор. За този проект ние търсим десетичните кодове, подчертани на екранна снимка 2. Ще трябва да задействате сензора няколко пъти, търсейки десетичната стойност, която се появява най -често, понякога ще има различни стойности, смесени с истинска стойност, това се причинява чрез смущения от случайни радиовълни или други устройства, работещи на същата честота.

Забележете десетичния код на сензора за използване в следващата стъпка. Повторете за всички сензори и отдалечени ключодържатели, които искате да използвате в проекта, като следите кой код върви с кой сензор. Ако използвате ключодържатели за активиране и дезактивиране на алармата, ще трябва да отбележите различните кодове за бутона за активиране и бутона за дезактивиране на всяко дистанционно управление.

Стъпка 5: Шаблон за код на Arduino

По -долу е копие на моя Arduino код като.ino файл, наречен Wireless_Alarm. Можете да кликнете върху него и той трябва да се отвори в IDE на Arduino. Аз не съм програмист, моят код е сглобен отчасти от примерите, намерени в Arduino IDE, вероятно не е особено елегантен, но работи и е надежден за дълъг период от време.

Не забравяйте да запазите скицата отново, след като направите промените, за да включите кодовете от вашите собствени сензори.

Стъпка 6: Поставете кодовете, които сте получили в Стъпка 5, в скицата на шаблона Arduino

Сега стъпките за персонализиране на кода за сензорите и дистанционните ключодържатели, които използвате.

Ако отворите скицата Wireless_Alarm във вашата IDE, ще видите на ред 111.

if (mySwitch.getReceivedValue () == 115166236) // Код на бутона на Fob arm

Когато в съществуващия код се чете 115166236, трябва да замените този номер с десетичен код за бутона на рамото на вашия дистанционен брелок, който сте записали в Стъпка 5.

Например, ако в стъпка 5 имате десетичен номер 1154321, ще промените ред 111, за да се чете;

if (mySwitch.getReceivedValue () == 1154321) // Код на бутона на Fob arm

Следвайте същата процедура за ред 125.

if (mySwitch.getReceivedValue () == 115166234) // Код на бутона за дезактивиране на Fob

Заменете 115166234 с кода на бутона за дистанционно изключване на дистанционното управление, който сте записали в Стъпка 5.

Ако искате да използвате множество дистанционни блокировки, за да активирате и дезактивирате, копирайте и поставете редове от 111 до 136 толкова пъти, колкото е необходимо, променете стойностите, така че да отговарят на другите ви дистанционни ключодържатели, но най -добре просто да започнете с едно дистанционно, докато не сте сигурни, че промените скицата работи.

Сега да кодираме сензорите за аларма в скицата на ред 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Действие за офис шкаф за подател на сигнал

Извадете 1151640 и вмъкнете десетичната стойност на един от вашите алармени сензори.

След това на ред 158.

lcd.print (F ("Офис шкаф")); // отпечатайте съобщение до lcd, за да знаете кой сензор е активиран (и отидете и намерете крадеца:)

Променете шкафа на Office на това, което искате да се показва на LCD дисплея за този сензор. Например, ако искате да чете кухнята, направете реда да изглежда така;

lcd.print (F ("Kitchendoor")); // отпечатайте съобщение до lcd, за да знаете кой сензор е активиран (и отидете и намерете крадеца:)

Имената не трябва да надвишават 16 знака.

Между редове 165 и 187 е шаблон за копиране и поставяне толкова пъти, колкото е необходимо, в редовете директно под 187. Заменете номера след mySwitch.getReceivedValue () == с десетичния знак на един от другите ви сензори, който сте записали в стъпка 5 и променете името в "" в lcd.print (F ("сензорно име тук")); на името, което искате да дадете на вашия сензор.

Ако не използвате дистанционни ключодържатели, за да активирате и дезактивирате алармата си, можете просто да игнорирате редове 111-136 или да поставите // в началото на всеки от нежеланите редове и Arduino няма да ги прочете.

Не забравяйте да запазите файла, след като сте направили промените.

Стъпка 7: Качете измененото.ino във вашия Arduino и тествайте

Качете измененото.ino във вашия Arduino и тествайте
Качете измененото.ino във вашия Arduino и тествайте
Качете измененото.ino във вашия Arduino и тествайте
Качете измененото.ino във вашия Arduino и тествайте
Качете измененото.ino във вашия Arduino и тествайте
Качете измененото.ino във вашия Arduino и тествайте

Когато Arduino все още е свързан към вашия компютър чрез USB, качете скицата на Arduino Board. След като качването приключи успешно, на LCD дисплея трябва да пише "Alarm On Disarmed". Натиснете бутона на рамото на дистанционното и на LCD дисплея трябва да пише „Alarm On Armed“и светодиодът трябва да свети, за да ви уведоми, че е активиран, сега задействайте сензор, докато е активиран, LCD трябва да прочете Alarm, последвано от времева отметка и местоположението на сензора, биперът трябва да звучи в продължение на 2 минути, освен ако не натиснете бутона за изключване. Ако не получавате този резултат, проверете отново кодовете, които сте получили в Стъпка 5 и промените, които сте направили в кода в предишната стъпка, също така проверете отново окабеляването на всички компоненти. Ако LCD дисплеят изобщо не чете, има настройка на контраста на гърба на LCD модула. След като контрастът е настроен правилно, ако LCD дисплеят все още не чете, опитайте да промените адреса на LCD от 0x3f на 0x27 на ред 12 в скицата. Отстраняване на проблеми с LCD тук I2C LCD урок

Стъпка 8: Задаване на времето на RTC модула и смяна на времето за включване и изключване

Надяваме се, че вашият RTC вече е настроен с правилното време, но ако не отворите IDE, изберете „Файл“и от падащото меню щракнете върху „Примери“, превъртете надолу до „DS1307RTC“и изберете скицата „SetTime“, изтеглете скицата във вашия Arduino и той ще настрои часовника в реално време с времето от вашия компютър. След това ще трябва да презаредите скицата Wireless_Alarm на вашия Arduino.

Wireless_Alarm.ino, който съм предоставил, по подразбиране ще настрои алармата да се включва автоматично в 22.15 часа всяка вечер и да се дезактивира в 6.00 часа всяка сутрин. За да промените тези времена, променете скицата на редове 71 и 72. Времето е в скоби след Alarm.alarmRepeat във формат HH, MM, SS. променете това на времето, което ви подхожда.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // РАЗБРОЯВАНЕ на времето

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // ARM време

Така че, за да промените времето за дезактивиране на 9.15 часа сутринта и времето за активиране на 17.30 часа, кодът ще изглежда така

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // РАЗБРОЯВАНЕ на времето

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // ARM време

Ако не искате алармата да се активира и дезактивира автоматично, поставете // пред 2 -те реда и те няма да бъдат използвани.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // РАЗБРОЯВАНЕ на времето

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Arm time

Времето, за което звучи аларменият сигнал, може да бъде променено чрез промяна на ред 22

const дълъг интервал = 120000; // за милис забавяне за продължителност от време на алармените звуци

Интервалът е в милисекунди, така че 120000 = 120 секунди, промяната на 120000 на 30000 ще накара алармата да звучи за 30 секунди.

Соленоидът за пускане на сирена, стробна светлина, силен звуков сигнал и т.н. също може да бъде свързан към щифт 7 или щифт 9 и ще работи за "интервала", както е посочено по -горе. Имайте предвид, че максималното натоварване за щифт Arduino не трябва да надвишава 40mA.

Стъпка 9: Допълнителни бележки

Когато избирате приемник 433 или 315 MHz модул за Arduino, трябва да изберете честотата, която да съответства на сензорите за аларма, които възнамерявате да използвате. Предлагам да закупите модул, който се доставя с малки спираловидни спирални антени за най -добро представяне, като алтернатива 17,3 мм дълги прави проводници също увеличават производителността.

С 16x2 LCD модула трябва да използвате 4 -пинов I2C LCD, за да използвате инструкциите и кода, които предоставям тук, той може да бъде направен с 16 -пинов стандартен LCD, но няма да работи с окабеляването или кода тук.

Безжичните алармени тръстикови превключватели, сензори за движение и дистанционни ключодържатели трябва да бъдат 433Mhz или 315Mhz, за да съответстват на приемника, който възнамерявате да използвате, и трябва да използват кодиране PT2262 или EV1527.

Алармата е разширяема и адаптивна, вече добавих SD карта за запис при задействане на сензори, промених LCD дисплея, за да свети само при задържане на бутон и добавих 100dB сирена, но не включих подробности тук, за да запазя статията като възможно най -кратък и опростен. Надявам се споделянето на работата, която свърших по тази аларма, да е от полза за другите.

С удоволствие ще отговоря на всякакви въпроси.

Благодаря.

Препоръчано: