Мазмуну:

Ардуино зымсыз сигнализация системасы бар сенсорлорду колдонот: 9 кадам (сүрөттөр менен)
Ардуино зымсыз сигнализация системасы бар сенсорлорду колдонот: 9 кадам (сүрөттөр менен)

Video: Ардуино зымсыз сигнализация системасы бар сенсорлорду колдонот: 9 кадам (сүрөттөр менен)

Video: Ардуино зымсыз сигнализация системасы бар сенсорлорду колдонот: 9 кадам (сүрөттөр менен)
Video: Щит сигнализации котельной Cигнал 1 2024, Июль
Anonim
Учурдагы сенсорлорду колдонуу менен Arduino Wireless Alarm System
Учурдагы сенсорлорду колдонуу менен Arduino Wireless Alarm System
Учурдагы сенсорлорду колдонуу менен Arduino Wireless Alarm System
Учурдагы сенсорлорду колдонуу менен Arduino Wireless Alarm System
Учурдагы сенсорлорду колдонуу менен Arduino Wireless Alarm System
Учурдагы сенсорлорду колдонуу менен Arduino Wireless Alarm System
Учурдагы сенсорлорду колдонуу менен Arduino Wireless Alarm System
Учурдагы сенсорлорду колдонуу менен Arduino Wireless Alarm System

Бул долбоор болжол менен жарым сааттын ичинде курулушу мүмкүн, эгерде сизде 433Mhz же 315Mhz зымсыз сигналдык сенсорлору бар болсо, болжол менен $ 20.00.

Ал ошондой эле интернетте оңой жана арзан жеткиликтүү инфракызыл кыймыл детекторлору жана камыш өчүргүчтөрү сыяктуу зымсыз сигналдык сенсорлору менен толук жаңы долбоор болушу мүмкүн. PT2262 же EV1527 коддоону колдонгон 433Mhz же 315Mhz сенсорлорун издеңиз.

Мен сыяктуу зымсыз сенсорлор менен GSM/2G сигнал системасын сатып алган жана ага ыраазы болгон көптөгөн адамдар бар экенине ишенем, бирок мен жашаган жерде 2G/GSM түйүнү өчүрүлгөндө, мен ойготкуч системасы менен калдым мындан ары программаны, ал тургай ага убакытты белгилөө. Бир күнү ойготкучумду кайра иштетүү үчүн эмне кылсам болот деп ойлонуп жатып, Arduino сенсорлордон сигналдарды кабыл ала аларын текшерүү оюма келди. Мен инстуктивдүү https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ чалынып калдым жана кээ бир эксперименттерден кийин мен азыркы сенсорлордон сигналдарды ала алаарымды аныктадым. Мен учурдагы ойготкучумду алмаштыра турган, ошондой эле функционалды жогорулатуучу сигнализация системасын куруу процессин баштадым. Эски ойготкучтун көйгөйлөрүнүн бири, 25 сенсордун кайсынысы өчкөнүн так билген эмес, ЖК экранын жаңы сигнализацияма кошуу менен мен азыр ЖКга кайсы сенсор иштетилгенин көрсөткөн текстти алам. Жаңы ойготкуч дагы эле менин учурдагы зымсыз ачкычтарым менен кол менен куралдандырылышы мүмкүн жана ал күндүн алдын ала белгиленген убагында автоматтык түрдө куралданууга жана куралсыздандырууга мүмкүндүк берүүчү реалдуу убакыт сааты бар.

Жабдуулар

Бул бөлүктөрдүн туура версиясын колдонгонуңуз үчүн кошумча эскертүүлөрдү аягында караңыз.

Arduino Uno же окшош

433 же 315 MHz кабыл алуучу модулу Arduino үчүн

DS3231 Real Time Clock модулу Arduino үчүн

Arduino үчүн I2C 16x2 LDC модулу

Зымсыз Ойготкуч камыш которгучтары, кыймыл сенсорлору жана каалагандай алыскы баскычтар

Piezo buzzer

LED & 220 Ом каршылыгы

Нан тактасы (милдеттүү эмес, бирок сунушталат)

Arduino үчүн ылайыктуу электр энергиясы

Өткөргүч зымдар ж

Ардуино IDE орнотулган компьютер

Arduino жөнүндө негизги билим

1 -кадам: Берилиштер

Жабдуулар
Жабдуулар
Жабдуулар
Жабдуулар
Жабдуулар
Жабдуулар

Бул долбоор үчүн керек боло турган жабдуулардын айрым сүрөттөрү

2 -кадам: Сүрөттө көрсөтүлгөндөй Ardunio менен модулдарды зым менен жабыңыз

Сүрөттө көрсөтүлгөндөй Ardunio менен модулдарды жипке байлаңыз
Сүрөттө көрсөтүлгөндөй Ardunio менен модулдарды жипке байлаңыз

Пьезо Arduino менен жердин 5 -пин ортосунда

LED Arduino 8 -пин менен 220 Ом резисторго, андан кийин жерге

433 же 315 МГц алгыч, VCC 5V, GND жерге жана 2 маалымат казыгынын бири Arduino pin2

I2C 16X2 ЖК модулу VCC 5V, GND жерге, SCL SDA Arduino SCL SDA казыктары (пин A5 - SCL, пин A4 - SDA)

DS3231 RTC Module VCC 5V, GND жерге, SCL SDA Arduino SCL SDA казыктарына (2 -топтом бар, бул жерде GND жана AREF казыктарынын көпчүлүгү Arduino)

Мен билем, кээ бирлериңизге мындан башка маалыматтын кереги жок болуп калат жана төмөндө тиркелген эскиз, бирок мен дагы бир аз жардамга муктаж болгондор үчүн кененирээк маалымат берем.

3 -кадам: Arduino IDEге керектүү китепканаларды кошуңуз

Arduino IDEге керектүү китепканаларды кошуңуз
Arduino IDEге керектүү китепканаларды кошуңуз
Arduino IDEге керектүү китепканаларды кошуңуз
Arduino IDEге керектүү китепканаларды кошуңуз
Arduino IDEге керектүү китепканаларды кошуңуз
Arduino IDEге керектүү китепканаларды кошуңуз

Ойготкучту иштетүү үчүн Arduino Sketch, демейки боюнча Arduino IDEге орнотула элек кээ бир китепканаларды колдонот.

RCSwitch китепканасын Arduino IDEге кошуу үчүн. Arduino IDEди ачыңыз жогорку менюда "Эскизди" тандаңыз, андан кийин ачылуучу тизмеден "Китепкананы кошууну" жана кийинки ылдыйдан "Китепканаларды башкарууну" тандаңыз. Андан кийин "Издөөңүздү чыпкалоо" кутучасына "RCSW" терип, "ri-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де көрсөтүлгөн ондук коддорду издеп жатабыз. Сиз сенсорду эң көп кездешүүчү ондуктун маанисин издеп, бир нече жолу иштетишиңиз керек, кээде чыныгы баалуулук менен аралашкан ар кандай маанилер пайда болот. кокустук радио толкундарынын же ошол эле жыштыкта иштеген башка түзүлүштөрдүн кийлигишүүсү менен.

Кийинки кадамда колдонуу үчүн сенсордун ондук кодуна көңүл буруңуз. Долбоордо колдонууну каалаган бардык сенсорлор жана алыскы ачкычтар үчүн кайталаңыз, кайсы код кайсы сенсор менен кетерин көзөмөлдөңүз. Эгерде ойготкучту куралдандыруу жана өчүрүү үчүн Keyfobs колдонсоңуз, анда ар бир алыстан башкаруунун баскычынын жана куралсыздандыруу баскычынын ар кандай коддоруна көңүл бурушуңуз керек.

5 -кадам: Arduino кодунун шаблону

Төмөндө Wireless_Alarm деп аталган.ino файлы катары менин Arduino кодумдун көчүрмөсү. Сиз аны бассаңыз болот жана ал Arduino IDEде ачылышы керек. Мен программист эмесмин, менин кодум Arduino IDEдеги мисалдардан жарым -жартылай чогултулган, балким, өзгөчө жарашыктуу эмес, бирок ал иштейт жана узак убакыт бою ишенимдүү болгон.

Өздүк сенсорлордун коддорун кошуу үчүн өзгөртүүлөрдү киргизгенден кийин эскизди кайра сактоону унутпаңыз.

6 -кадам: 5 -кадамда алган коддоруңузду Arduino Sketch үлгүсүнө чаптаңыз

Эми сиз колдонуп жаткан сенсорлор жана алыскы ачкычтар үчүн кодду өзгөчөлөштүрүү кадамдары.

Эгерде сиз IDEдеги Wireless_Alarm эскизин ачсаңыз, 111 -сапта көрөсүз.

if (mySwitch.getReceivedValue () == 115166236) // Фоб колунун баскычы коду

Учурдагы коддо 115166236 деп жазылган жерде, сиз 5 -кадамда жазылган алыскы ачкычтын кол баскычы үчүн бул санды ондук код менен алмаштырышыңыз керек.

Мисалы, эгер 5 -кадамда сизде ондук 1154321 болсо, анда 111 -сапты азыр окуй турган кылып өзгөртө аласыз;

if (mySwitch.getReceivedValue () == 1154321) // Фоб колунун баскычы коду

125 -сап үчүн ошол эле процедураны аткарыңыз.

if (mySwitch.getReceivedValue () == 115166234) // Фоб куралсыздандыруу баскычынын коду

5 -кадамда жазылган алыскы ачкыч куралсыздандыруу баскычынын кодун 115166234 менен алмаштырыңыз.

Эгерде сиз куралдандыруу жана куралсыздандыруу үчүн бир нече алыскы фобдорду колдонгуңуз келсе, 111ден 136га чейин канча жолу керек болсо, ошончолук көп жолу көчүрүп чаптаңыз, андан кийин башка алыскы ачкычтарыңызга туура келгендей кылып маанилерди өзгөртүңүз, бирок өзүңүздүн өзгөртүлгөнүңүзгө толук ишенгиңиз келгенче бир пульттон баштаңыз. эскиз иштеп жатат.

Эми 140 -сызыктагы эскиздеги сигнализация сенсорлорун коддоо үчүн

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Сигнал жөнөтүүчү офис шкафы үчүн аракет

1151640ты чыгарып, сигнализация сенсорлорунун биринин ондук маанисин киргизиңиз.

Андан кийин 158 -сапта.

lcd.print (F ("Кеңсе шкафы")); // сенсор иштетилгенин билүү үчүн lcdге билдирүү басып чыгаруу (жана барып ууруну табуу:)

Офистин шкафын сенсор үчүн ЖКда көргүңүз келген нерсеге өзгөртүңүз. Мисалы, эгер сиз аны ашкана окууну кааласаңыз, линияны мындай кылыңыз;

lcd.print (F ("Kitchendoor")); // сенсор иштетилгенин билүү үчүн lcdге билдирүү басып чыгаруу (жана барып ууруну табуу:)

Аттар 16 белгиден ашпашы керек.

165 жана 187 -саптардын ортосунда 187 -ж. Астындагы сызыктарга канча жолу керек болсо, ошондой көчүрүү жана чаптоо үчүн шаблон бар. MySwitch.getReceivedValue () == кийин келген санды 5 -кадамда жаздырган башка сенсорлоруңуздун ондуктары менен алмаштырыңыз жана lcd.print ичиндеги "" ичиндеги атын өзгөртүү (F ("sensornamehere")); сенсорду бергиңиз келген атка.

Эгерде сиз ойготкучту куралдандыруу жана куралсыздандыруу үчүн алыскы ачкычтарды колдонбосоңуз, анда 111-136-саптарды этибарга албай коюңуз же керексиз саптардын ар бирине // койсоңуз болот жана Arduino аларды окубайт.

Өзгөртүүлөрдү киргизгенден кийин файлды сактоону унутпаңыз.

7 -кадам: Өзгөртүлгөн.inoду Arduinoго жүктөп, тестирлеңиз

Өзгөртүлгөн.ino'ду Arduinoго жүктөңүз жана текшериңиз
Өзгөртүлгөн.ino'ду Arduinoго жүктөңүз жана текшериңиз
Өзгөртүлгөн.ino'ду Arduinoго жүктөңүз жана текшериңиз
Өзгөртүлгөн.ino'ду Arduinoго жүктөңүз жана текшериңиз
Түзөтүлгөн.ino'ду Arduinoго жүктөңүз жана текшериңиз
Түзөтүлгөн.ino'ду Arduinoго жүктөңүз жана текшериңиз

Ардуино дагы эле компьютериңизге USB аркылуу туташып турганда, эскизди Arduino тактасына жүктөңүз. Жүктөө ийгиликтүү аяктагандан кийин, ЖКда "Сигнал куралсыздандырылды" деген жазуу болушу керек. Пульттагы кол баскычын басыңыз жана ЖКда "Сигнал Куралдуу" деп жазылышы керек жана Светодиод күйүп турушу керек, ал куралчан экенин билдириңиз, эми сенсорду куралданганда иштетиңиз, ЖК Сигналды окушу керек, андан кийин убакыт белгиси жана сенсордун жайгашкан жери, эгер сиз куралсыздандыруу баскычын басмайынча, сигнал 2 мүнөт бою угулушу керек. Эгерде сиз бул жыйынтыкты ала албасаңыз, 5 -кадамда алган коддоруңузду жана мурунку кадамда кодго киргизилген өзгөртүүлөрдү кайра текшериңиз, ошондой эле бардык компоненттердин зымдарын кайра текшериңиз. Эгерде ЖК такыр окубаса, ЖК модулунун арт жагында контрастын тууралоосу бар. Контраст туура коюлгандан кийин, эгерде ЖК дагы эле окуй элек болсо, эскиздеги 12 -сапта ЖКнын дарегин 0x3f ден 0x27ге өзгөртүп көрүңүз. ЖК мүчүлүштүктөрдү жоюу бул жерде I2C ЖК үйрөткүчү

8 -кадам: RTC модулуна убакыт коюу жана кол менен куралсыздандыруу убактысын өзгөртүү

Сиздин RTC мурунтан эле туура убакытта коюлган деп үмүттөнөбүз, бирок эгер IDE ачылбаса, "Файлды" тандап, "Мисалдарга" чыкылдатыңыз, "DS1307RTC" чейин ылдый жылдырып, "SetTime" эскизин тандап, эскизди өзүңүзгө жүктөп алыңыз Arduino жана ал реалдуу убакыт саатын компьютериңиздин убактысы менен аныктайт, андан кийин Wireless_Alarm эскизин Arduinoго кайра жүктөөңүз керек болот.

Мен камсыз кылган Wireless_Alarm.ino демейки боюнча ойготкучту ар түнү саат 10.15те автоматтык түрдө куралдандырат жана эртең мененки 6.00дө куралсыздандырат. Бул убакытты өзгөртүү үчүн, Эскизди 71 жана 72 -саптарда өзгөртүңүз. Убакыт Alarm.alarmRepeat кийин HH, MM, SS форматында. муну сизге каалаган убакта өзгөртүү.

Alarm.alarmReat (6, 00, 0, MorningAlarm); // DISARM убактысы

Alarm.alarmReat (22, 15, 0, EveningAlarm); // ARM убактысы

Ошентип, куралсыздануу убактысын 9.15ке жана кол убактысын 5.30га өзгөртүү үчүн, код ушундай болот

Alarm.alarmReat (9, 15, 0, MorningAlarm); // DISARM убактысы

Alarm.alarmReat (17, 30, 0, EveningAlarm); // ARM убактысы

Эгерде сиз сигнализациянын куралдануусун жана куралсыздандырылышын каалабасаңыз // автоматтык түрдө 2 сызыктын алдына койсоңуз, алар колдонулбайт.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // DISARM убактысы

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Курал убактысы

Ойготкучтун үнүнүн убактысын 22 -линияны өзгөртүү менен өзгөртүүгө болот

const узак аралыгы = 120000; // миллиондогон кечигүү үчүн сигнал сигналынын узактыгына

Интервал миллисекундтарда, андыктан 120000 = 120 секунд, 120000дөн 30000гө өзгөртүү сигналды 30 секундга чыгарат.

Сиренаны, строб жарыгын, бийик үн сигналын ж. Ардуино пин үчүн максималдуу жүк 40mA ашпашы керек экенин унутпаңыз.

9 -кадам: Кошумча эскертүүлөр

Arduino үчүн 433 же 315 МГц алгыч модулун тандап жатканда, сиз колдонгуңуз келген ойготкуч сенсорлоруна дал келген жыштыкты тандашыңыз керек. Мен эң жакшы иштөө үчүн кичинекей спиральдуу антенналар менен келген модулду сатып алууну сунуштайм, же 17.3 мм узундуктагы түз зымдуу антенналар дагы өндүрүмдүүлүктү жогорулатат.

16x2 ЖК модулу менен мен көрсөткөн көрсөтмөлөрдү жана кодду колдонуу үчүн 4 пиндүү I2C ЖК колдонушуңуз керек, ал 16 пин стандарттык ЖК менен жасалышы мүмкүн, бирок бул жерде зым же код менен иштебейт.

Зымсыз сигналдык камыш өчүргүчтөрү, кыймыл сенсорлору жана алыскы ачкычтар 433МГц же 315МГц болушу керек жана сиз колдонгону жаткан ресивер менен дал келиши керек жана PT2262 же EV1527 коддоолорун колдонушуңуз керек.

Ойготкуч кеңейтиле жана ыңгайлаштырылган, мен буга чейин сенсорлор иштей баштаганда жаздыруу үчүн SD картаны коштум, LCD баскычын баскыч басылганда гана күйгүзүү үчүн өзгөртүп, 100 дБ сирена кошту, бирок бул жерде макаланы сактап калуу үчүн деталдар камтылган эмес. мүмкүн болушунча кыска жана жөнөкөй. Мен бул ойготкучта жасаган жумушум менен бөлүшүү башкаларга пайдалуу болот деп үмүттөнөм.

Бардык суроолорго жооп берүүгө кубанычтамын.

Рахмат.

Сунушталууда: