Բովանդակություն:

Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ. 9 քայլ (նկարներով)
Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ. 9 քայլ (նկարներով)

Video: Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ. 9 քայլ (նկարներով)

Video: Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ. 9 քայլ (նկարներով)
Video: Ինչպես միացնել ՍԵՌոբը համակարգչին։ 2024, Հուլիսի
Anonim
Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ
Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ
Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ
Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ
Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ
Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ
Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ
Arduino անլար ազդանշանային համակարգ `օգտագործելով գոյություն ունեցող սենսորներ

Այս նախագիծը կարող է կառուցվել մոտ կես ժամում ՝ մոտ 20,00 դոլար արժողությամբ, եթե ունեք 433 ՄՀց կամ 315 ՄՀց անլար ազդանշանային տվիչներ:

Այն կարող է լինել նաև ամբողջական նախագիծ անլար ազդանշանային տվիչներով, ինչպիսիք են ինֆրակարմիր շարժիչի դետեկտորները և եղեգի անջատիչները, որոնք հեշտությամբ և էժան հասանելի են առցանց: Պարզապես որոնեք 433 ՄՀց կամ 315 ՄՀց սենսորներ, որոնք օգտագործում են PT2262 կամ EV1527 կոդավորումը:

Վստահ եմ, որ ինձ նման շատ մարդիկ կան, ովքեր գնել են GSM/2G ազդանշանային համակարգ անլար տվիչներով և գոհ են դրանից, սակայն երբ 2G/GSM ցանցն անջատվեց, որտեղ ես ապրում եմ, ինձ մնաց ահազանգման համակարգ, որը կարող էի: այլևս չի ծրագրում կամ նույնիսկ դրա ժամանակը սահմանում: Մի օր, երբ մտածում էի, թե ինչ կարող եմ անել, որպեսզի ազդանշանը նորից գործարկվի, մտքովս անցավ ստուգել, արդյոք Արդուինոն կարո՞ղ է ազդանշաններ ստանալ սենսորներից: Ես պատահաբար հանդիպեցի մի instuctable https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ և որոշ փորձարկումներից հետո որոշեցի, որ կարող եմ ազդանշաններ ստանալ իմ առկա սենսորներից: Ես սկսեցի ազդանշանային համակարգ կառուցելու գործընթացը, որը կարող էր փոխարինել իմ գոյություն ունեցող ահազանգը և ապահովեր նաև ֆունկցիոնալության բարձրացում: Հին ահազանգի հետ կապված խնդիրներից մեկն այն էր, որ 25 սենսորներից կոնկրետ ո՞ր մեկն է անջատվել: alarmարթուցիչի նոր էկրանին LCD էկրան ավելացնելով ես այժմ LCD- ով տեքստ եմ ստանում `նշելով, թե կոնկրետ որ սենսորն է ակտիվացված: Նոր ահազանգը դեռ կարող է ձեռքով զինվել իմ առկա անլար ստեղնաշարերի միջոցով և ունի իրական ժամանակի ժամացույց, որը թույլ կտա ինքնաբերաբար զինվել և զինաթափվել օրվա կանխորոշված ժամերին:

Պարագաներ

Վերջում տես լրացուցիչ գրառումներ `այս մասերի ճիշտ տարբերակը օգտագործելու համար:

Arduino Uno կամ նմանատիպ

Arduino- ի համար 433 կամ 315 ՄՀց ընդունիչ մոդուլ

DS3231 Իրական ժամանակի ժամացույցի մոդուլ Arduino- ի համար

I2C 16x2 LDC մոդուլ Arduino- ի համար

Անլար ազդանշանային եղեգի անջատիչներ, շարժման տվիչներ և հեռավոր բանալիներ `ըստ ցանկության

Պիեզո ազդանշան

LED և 220 օմ դիմադրություն

Հացաթուղթ (ըստ ցանկության, բայց խորհուրդ է տրվում)

Հարմար սնուցման աղբյուր Arduino- ի համար

Թռիչքային լարեր և այլն

Arduino IDE- ով տեղադրված համակարգիչ

Արդուինոյի հիմնական իմացություն

Քայլ 1: Պաշարներ

Պարագաներ
Պարագաներ
Պարագաներ
Պարագաներ
Պարագաներ
Պարագաներ

Այս նախագծի համար անհրաժեշտ սարքավորումների վերևում գտնվող որոշ պատկերներ

Քայլ 2. Միացրեք Ardunio- ն և մոդուլները, ինչպես ցույց են տրված պատկերում

Լարացրեք Ardunio- ն և մոդուլները, ինչպես պատկերված են պատկերում
Լարացրեք Ardunio- ն և մոդուլները, ինչպես պատկերված են պատկերում

Պիեզո Arduino- ի 5 -րդ կապի և երկրի միջև

LED- ն Arduino- ի 8 -րդ կապի և 220 օմ դիմադրության միջև, այնուհետև `երկիր

433 կամ 315 ՄՀց ընդունիչ, VCC- ից մինչև 5V, GND- ից ՝ գետնին և Arduino- ի 2 -ի կապող 2 տվյալների կապերից որևէ մեկից

I2C 16X2 LCD մոդուլ VCC- ից մինչև 5V, GND- ից մինչև գետն, SCL SDA կապում է Arduino- ի SCL SDA- ին (P5- ը SCL է, A4- ը `SDA)

DS3231 RTC մոդուլ VCC 5V, GND գետնին, SCL SDA կապում է Arduino- ի SCL SDA- ին (Arduino- ի մեծ մասի GND և AREF կապերի վերևում կա 2 -րդ հավաքածու)

Ես գիտեմ, որ ձեզանից ոմանց այլևս անհրաժեշտ չեն լինի այս տեղեկատվությունից և ստորև ներկայացված էսքիզից, բայց ես ավելի մանրամասն կխոսեմ յուրաքանչյուրի համար, ով կցանկանա մի փոքր լրացուցիչ օգնություն:

Քայլ 3. Ավելացրեք անհրաժեշտ գրադարաններ Arduino IDE- ին

Ավելացրեք անհրաժեշտ գրադարաններ Arduino IDE- ին
Ավելացրեք անհրաժեշտ գրադարաններ Arduino IDE- ին
Ավելացրեք անհրաժեշտ գրադարաններ Arduino IDE- ին
Ավելացրեք անհրաժեշտ գրադարաններ Arduino IDE- ին
Ավելացրեք անհրաժեշտ գրադարաններ Arduino IDE- ին
Ավելացրեք անհրաժեշտ գրադարաններ Arduino IDE- ին

Տագնապը գործարկելու համար Arduino Sketch- ը օգտագործում է որոշ գրադարաններ, որոնք լռելյայն արդեն տեղադրված չեն Arduino IDE- ի վրա:

RCSwitch գրադարանը Arduino IDE- ին ավելացնելու համար: Բացեք Arduino IDE- ն վերևի ընտրացանկում ընտրեք «Էսքիզ», այնուհետև բացվող ցանկից ընտրեք «Ներառել գրադարանը» և հաջորդ բացվող ընտրացանկից ընտրեք «Գրադարանների կառավարում»: Այնուհետև «terտեք ձեր որոնումը» տուփում մուտքագրեք «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: Կարող եք սեղմել դրա վրա և այն պետք է բացվի Arduino IDE- ում: Ես ծրագրավորող չեմ, իմ կոդը մասամբ հավաքված է Arduino IDE- ում առկա օրինակներից, այն, հավանաբար, առանձնապես էլեգանտ չէ, բայց այն աշխատում է և հուսալի է երկար ժամանակ:

Հիշեք, որ նորից պահպանեք էսքիզը այն բանից հետո, երբ փոփոխություններ կատարեք ՝ ձեր սեփական տվիչների կոդերը ներառելու համար:

Քայլ 6. Տեղադրեք 5 -րդ քայլին ձեռք բերված կոդերը Կաղապարի Arduino Sketch- ում:

Այժմ ձեր օգտագործած տվիչների և հեռավոր ստեղնաշարերի համար ծածկագիրը հարմարեցնելու քայլերը:

Եթե բացեք Wireless_Alarm էսքիզը ձեր IDE- ում, ապա կտեսնեք 111 տողում:

եթե (mySwitch.getReceivedValue () == 115166236) // Ֆոբ թևի կոճակի ծածկագիր

Այնտեղ, որտեղ առկա կոդում գրված է 115166236, անհրաժեշտ է այդ թիվը տասնորդական կոդով փոխարինել ձեր հեռավոր ստեղնաշարի թևի կոճակի համար, որը գրանցել եք 5 -րդ քայլում:

Օրինակ, եթե 5 -րդ քայլում ստանաք տասնորդական 1154321, ապա փոփոխեք 111 տողը `այժմ կարդալու համար.

եթե (mySwitch.getReceivedValue () == 1154321) // Ֆոբ թևի կոճակի կոդ

Հետևեք նույն ընթացակարգին 125 -րդ տողի համար:

եթե (mySwitch.getReceivedValue () == 115166234) // Fob զինաթափման կոճակի կոդը

Փոխարինեք 115166234 -ը ձեր հեռակառավարման կոճակի զինաթափման կոճակի համար, որը գրանցել եք 5 -րդ քայլում:

Եթե ցանկանում եք օգտագործել բազմաթիվ հեռակառավարվող բռնակներ ՝ զինվելու և զինաթափվելու համար, պատճենեք և կպցրեք 111 -ից մինչև 136 -ը տողերը այնքան անգամ, որքան անհրաժեշտ է, ապա փոխեք արժեքները ՝ ձեր մյուս հեռավոր ստեղնաշարերին համապատասխան, բայց ամենալավն այն է, որ սկսեք մեկ հեռակառավարմամբ, մինչև համոզված չլինեք, որ փոփոխված եք: ուրվագիծը աշխատում է:

Այժմ ազդանշանային տվիչները կոդավորելու համար 140 գծի ուրվագծում

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Գործողություն ազդանշան ուղարկող գրասենյակի պահարանի համար

Հանեք 1151640 -ը և տեղադրեք ձեր ազդանշանային տվիչներից մեկի տասնորդական արժեքը:

Այնուհետեւ 158 տողում:

lcd.print (F («Գրասենյակի պահարան»)); // տպեք հաղորդագրություն LCD- ին ՝ իմանալու, թե որ սենսորն է ակտիվացված (և գնացեք գտեք կողոպտիչին:)

Փոխեք գրասենյակի պահարանը այնպես, ինչպես կցանկանայիք ցուցադրվել LCD- ով այդ սենսորի համար: Օրինակ, եթե ցանկանում եք, որ այն կարդա kitchendoor, տողը նման տեսք ունենա.

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- ում և փորձարկեք

Քանի որ Arduino- ն դեռ միացված է ձեր համակարգչին USB- ով, ուրվագիծը վերբեռնեք Arduino տախտակին: Վերբեռնումը հաջողությամբ ավարտելուց հետո LCD- ը պետք է կարդա «Alarm On Disarmed»: Սեղմեք ձեր հեռակառավարման վահանակի կոճակը, և LCD- ում պետք է գրված լինի «Ահազանգը զինված է», և LED- ը պետք է լուսավորված լինի, որպեսզի իմանաք, որ այն զինված է, այժմ միացրեք սենսորը, երբ այն զինված է, LCD- ը պետք է կարդա rmարթուցիչը ՝ ժամանակի կնիքով և սենսորի գտնվելու վայրը, ազդանշանը պետք է հնչի 2 րոպե, եթե չսեղմեք զինաթափման կոճակը: Եթե դուք չեք ստանում այս արդյունքը, նորից ստուգեք 5 -րդ քայլին ստացած ծածկագրերը և նախորդ քայլի վրա կատարված փոփոխությունները, նաև նորից ստուգեք բոլոր բաղադրիչների լարերը: Եթե LCD- ն ընդհանրապես չի կարդում, LCD մոդուլի հետևի մասում կա հակադրության ճշգրտում: Երբ հակադրությունը ճիշտ է դրվում, եթե LCD- ը դեռ չի կարդում, փորձեք էսքիզի 12 -րդ տողում փոխել LCD- ի հասցեն 0x3f- ից 0x27- ից: LCD- ի խնդիրների լուծում այստեղ I2C LCD ձեռնարկը

Քայլ 8. RTC մոդուլի վրա ժամանակի սահմանում և թևերի և զինաթափման ժամերի փոփոխություն

Հուսանք, որ ձեր RTC- ն արդեն ճիշտ ժամանակին էր սահմանված, բայց եթե IDE- ն բացված չէ, ընտրեք «Ֆայլ» և բացվող պատուհանից կտտացրեք «Օրինակներ», ոլորեք ներքև «DS1307RTC» և ընտրեք «SetTime» ուրվագիծը, ներբեռնեք էսքիզը ձեր մեջ: Arduino- ն և այն կկարգավորի իրական ժամանակի ժամացույցը ձեր համակարգչից ստացված ժամանակի հետ: Այնուհետև ձեզ հարկավոր է վերաբեռնել Wireless_Alarm էսքիզը ձեր Arduino- ում:

Իմ տրամադրած Wireless_Alarm.ino- ն լռելյայն կդնի ահազանգը, որ ինքնաբերաբար զինվի ամեն երեկո ժամը 22: 15 -ին և զինաթափվի ամեն առավոտ, ժամը 6: 00 -ին: Այս ժամանակները փոխելու համար փոփոխեք ուրվագիծը 71 և 72 տողերում: Alaամանակը փակագծերում է Alarm.alarm- ից հետո Կրկնել HH, MM, SS ձևաչափով: փոխեք այն ցանկացած ժամանակ, երբ ձեզ հարմար է:

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // ISԱՆԿՎԱ ժամանակ

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // ARM ժամանակ

Այսպիսով, զինաթափման ժամանակը փոխելու համար 9.15 -ին, իսկ ձեռքի ժամանակը ՝ 17.30 -ին, ծածկագիրը կունենա այս տեսքը

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // ISԱՆԿՎԱ ժամանակ

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // ARM ժամանակ

Եթե չեք ցանկանում, որ ահազանգը զինվի և զինաթափվի, ինքնաբերաբար տեղադրեք // 2 տողերի դիմաց, և դրանք չեն օգտագործվի:

//Alarm.alarmRepe((6, 00, 0, MorningAlarm); // ISԱՆԿՎԱ ժամանակ

//Alarm.alarmRepear(22, 15, 0, EveningAlarm); // Ձեռքի ժամանակ

Alarmարթուցիչի ազդանշանի հնչեցման ժամանակը կարող է փոխվել ՝ փոփոխելով 22 -րդ տողը

const երկար ընդմիջում = 120000; // երկար ժամանակ տևողությամբ տագնապի հնչյունների համար

Ընդմիջումը գտնվում է միլիվայրկյանների ընթացքում, այնպես որ 120000 = 120 վայրկյան, 120000 -ից մինչև 30000 փոխելը տագնապը կհնչեցնի 30 վայրկյան:

Ինչպես կարող է ազդանշան, ստրոբ լույս, բարձր ձայնային ազդանշան և այլն գործարկելու էլեկտրահաղորդիչ միացնել 7 -րդ կամ 9 -րդ կապում, այն կաշխատի վերևում սահմանված «ընդմիջման» համար: Նկատի ունեցեք, որ Arduino քորոցի առավելագույն բեռը չպետք է գերազանցի 40 մԱ:

Քայլ 9: Լրացուցիչ նշումներ

Arduino- ի համար 433 կամ 315 ՄՀց ընդունիչ մոդուլ ընտրելիս պետք է ընտրեք այն հաճախականությունը, որը կհամապատասխանի տագնապի տվիչներին, որոնք մտադիր եք օգտագործել: Ես առաջարկում եմ գնել մոդուլ, որն ունի փոքր պարույր պարուրաձև ալեհավաքներ `լավագույն կատարման համար, այլապես 17.3 մմ երկարությամբ ուղիղ մետաղալար ալեհավաքները նույնպես մեծացնում են կատարումը:

16x2 LCD մոդուլով դուք պետք է օգտագործեք 4 փին I2C LCD ՝ այստեղ տրված ցուցումներից և ծածկագրից օգտվելու համար, այն կարող է պատրաստվել 16 փին ստանդարտ LCD- ով, բայց այստեղ չի աշխատի լարերի կամ կոդի հետ:

Alarmարթուցիչի անլար անջատիչների, շարժման տվիչների և հեռավոր բանալիների օջախները պետք է լինեն 433 ՄՀց կամ 315 ՄՀց `այն ընդունիչին համապատասխանելու համար, որը դուք մտադիր եք օգտագործել և պետք է օգտագործեն PT2262 կամ EV1527 կոդավորումը:

Alarmարթուցիչը ընդարձակելի է և հարմարվողական, ես արդեն ավելացրել եմ SD քարտ ՝ սենսորների գործարկման ժամանակ ձայնագրելու համար, փոփոխել եմ LCD- ը, որը պետք է լուսավորվի միայն կոճակը պահելիս և ավելացրեց 100 դԲ ազդանշան, բայց այստեղ մանրամասներ չեմ ներառել ՝ հոդվածը պահելու համար հնարավորինս կարճ և պարզ: Հուսով եմ, որ այս ահազանգի վերաբերյալ իմ կատարած աշխատանքը կիսելը ինչ -որ օգուտ կտա ուրիշներին:

Ուրախ եմ պատասխանել ցանկացած հարցի:

Շնորհակալություն

Խորհուրդ ենք տալիս: