Съдържание:
- Консумативи
- Стъпка 1: Консумативи
- Стъпка 2: Свържете Ardunio и модулите, както е показано на изображението
- Стъпка 3: Добавете необходимите библиотеки към IDE на Arduino
- Стъпка 4: След това трябва да получим кодовете за вашите сензори
- Стъпка 5: Шаблон за код на Arduino
- Стъпка 6: Поставете кодовете, които сте получили в Стъпка 5, в скицата на шаблона Arduino
- Стъпка 7: Качете измененото.ino във вашия Arduino и тествайте
- Стъпка 8: Задаване на времето на RTC модула и смяна на времето за включване и изключване
- Стъпка 9: Допълнителни бележки
Видео: Безжична алармена система Arduino, използваща съществуващи сензори: 9 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Този проект може да бъде изграден за около половин час на цена от около $ 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 и модулите, както е показано на изображението
Пиезо между щифт 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
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 и тествайте
Когато 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 сирена, но не включих подробности тук, за да запазя статията като възможно най -кратък и опростен. Надявам се споделянето на работата, която свърших по тази аларма, да е от полза за другите.
С удоволствие ще отговоря на всякакви въпроси.
Благодаря.
Препоръчано:
Направи си сам алармена система за домашна автоматизация!: 5 стъпки (със снимки)
Направи си алармена система за домашна автоматизация!: В този проект ще ви покажа как да използвате софтуера Home Assistant, за да създадете алармена система за нарушители за вашия дом. По принцип системата ще открие дали вратата се отваря без разрешение и след това ще изпрати известие
SMS алармена система за откриване на движение: 5 стъпки (със снимки)
SMS алармена система за откриване на движение: В този проект ще комбинирам евтин PIR сензор за движение с TC35 GSM модул, за да изградя алармена система, която ви изпраща " ИНТРУДЕРНО ПРЕДУПРЕЖДЕНИЕ " SMS, когато някой се опита да открадне вашите неща. Да започваме
Алармена система за паркиране на превозни средства с помощта на PIR сензор- Направи си сам: 7 стъпки (със снимки)
Алармена система за паркиране на превозни средства с помощта на PIR сензор- Направи си сам: Имали ли сте някога проблеми, докато паркирате превозно средство като кола, камион, мотоциклет или друго, тогава в тази инструкция ще ви покажа как да преодолеете този проблем с помощта на обикновена аларма за паркиране на превозни средства система, използваща PIR сензор. В тази система, която
Малка алармена система, използваща Super Tiny Arduino съвместима дъска !: 10 стъпки
Малка алармена система, използваща Super Tiny Arduino съвместима дъска!: Здравейте, днес ще направим малък готин проект. Ще изградим малко алармено устройство, което измерва разстоянието между себе си и обект пред него. И когато обектът се придвижи над зададено разстояние, устройството ще ви уведоми с
Безжична комуникация, използваща евтини 433MHz RF модули и микроконтролери Pic. Част 2: 4 стъпки (със снимки)
Безжична комуникация, използваща евтини 433MHz RF модули и микроконтролери Pic. Част 2: В първата част на тази инструкция, аз демонстрирах как да програмирате PIC12F1822 с помощта на MPLAB IDE и XC8 компилатор, за да изпратите обикновен низ безжично, използвайки евтини модули TX/RX 433MHz. Приемният модул беше свързан чрез USB към UART TTL кабелна реклама