Mundarija:

Arduino simsiz signal tizimi mavjud sensorlar yordamida: 9 qadam (rasmlar bilan)
Arduino simsiz signal tizimi mavjud sensorlar yordamida: 9 qadam (rasmlar bilan)

Video: Arduino simsiz signal tizimi mavjud sensorlar yordamida: 9 qadam (rasmlar bilan)

Video: Arduino simsiz signal tizimi mavjud sensorlar yordamida: 9 qadam (rasmlar bilan)
Video: BTT Octopus V1.1 - Klipper Configuration 2024, Iyul
Anonim
Arduino simsiz signal tizimi mavjud sensorlar yordamida
Arduino simsiz signal tizimi mavjud sensorlar yordamida
Arduino simsiz signal tizimi mavjud sensorlar yordamida
Arduino simsiz signal tizimi mavjud sensorlar yordamida
Arduino simsiz signal tizimi mavjud sensorlar yordamida
Arduino simsiz signal tizimi mavjud sensorlar yordamida
Arduino simsiz signal tizimi mavjud sensorlar yordamida
Arduino simsiz signal tizimi mavjud sensorlar yordamida

Agar sizda 433 MGts yoki 315 MGts simsiz signal sensorlar mavjud bo'lsa, bu loyihani taxminan 20.00 dollar atrofida yarim soat ichida qurish mumkin.

Bu, shuningdek, infraqizil harakat detektorlari va qamish kalitlari kabi simsiz signal sensorlar bilan jihozlangan yangi onlayn loyiha bo'lishi mumkin, bu Internetda oson va arzon. PT2262 yoki EV1527 kodlashni ishlatadigan 433 MGts yoki 315 MGts datchiklarni qidiring.

Ishonchim komilki, men kabi simsiz sensorlar bilan GSM/2G signalizatsiya tizimini sotib olgan va bundan xursand bo'lgan odamlar ko'p, lekin men yashaydigan joyda 2G/GSM tarmog'i o'chirilganida, menda signal tizimi qolgandi. endi dasturlamaydi yoki hatto vaqtini belgilamaydi. Bir kuni signalni qayta ishga tushirish uchun nima qilishim kerakligi haqida o'ylayotganda, men Arduino datchiklardan signal qabul qila oladimi -yo'qligini tekshirib ko'rdim. Men o'zgarmas https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ qoqilib qoldim va ba'zi tajribalardan so'ng signallarni mavjud sensorlarimdan olishim mumkinligini aniqladim. Men signalni o'rnata oladigan signal tizimini yaratish jarayonini boshladim va bundan tashqari funksionallikni oshirdim. Eski signal bilan bog'liq muammolardan biri, 25 ta sensorning qaysi biri o'chirilganligini aniq bilish emas edi, chunki men yangi signalli qurilmamga LCD displey qo'shib, LCD displeyida aynan qaysi sensor faollashtirilganligini ko'rsataman. Yangi signal hali ham mavjud simsiz kalit foblar tomonidan qo'lda qurollanishi mumkin va u kunning oldindan belgilangan vaqtlarida avtomatik ravishda qurollanishi va qurolsizlanishiga imkon beradigan real vaqtda soatga ega.

Ta'minotlar

Ushbu qismlarning to'g'ri versiyasini ishlatganingizga ishonch hosil qilish uchun qo'shimcha eslatmalarni oxirigacha ko'ring.

Arduino Uno yoki shunga o'xshash

Arduino uchun 433 yoki 315 MGtsli qabul qiluvchi modul

Arduino uchun DS3231 real vaqtda soat moduli

Arduino uchun I2C 16x2 LDC moduli

Simsiz signalli qamish kalitlari, harakat sensori va masofadan boshqarish pulti

Piezo signal

LED va 220 ohmli qarshilik

Non paneli (ixtiyoriy, lekin tavsiya etiladi)

Arduino uchun mos keladigan quvvat manbai

Jumper simlari va boshqalar

Arduino IDE o'rnatilgan kompyuter

Arduino haqida asosiy bilim

1 -qadam: materiallar

Ta'minotlar
Ta'minotlar
Ta'minotlar
Ta'minotlar
Ta'minotlar
Ta'minotlar

Ushbu loyiha uchun sizga kerak bo'ladigan materiallarning yuqoridagi rasmlari

2 -qadam: Ardunio va modullarni rasmda ko'rsatilganidek ulang

Rasmda ko'rsatilganidek, Ardunio va modullarni ulang
Rasmda ko'rsatilganidek, Ardunio va modullarni ulang

Arduino va yerning 5 -pinlari orasidagi piezo

LED Arduino -ning 8 -pinidan 220 ohmgacha bo'lgan rezistor bilan erga

433 yoki 315 MGts qabul qilgich, VCC 5V, GND erga va Arduino pin2 uchun 2 ta ma'lumot pinidan biri.

I2C 16X2 LCD moduli VCC 5V ga, GND erga, SCL SDA pinlari Arduino SCL SDA ga ulanadi (pin A5 - SCL, pin A4 - SDA)

DS3231 RTC VCC moduli 5V ga, GND erga, SCL SDA pinlari Arduino SCL SDA ga ulanadi (Arduino -ning ko'p qismida GND va AREF pinlari ustida joylashgan 2 -to'plam mavjud)

Bilaman, sizlardan ba'zilariga bundan boshqa ma'lumot kerak emas va quyida keltirilgan eskiz, lekin men yordam berishni istaganlar uchun batafsil ma'lumot beraman.

3 -qadam: Arduino IDE -ga kerakli kutubxonalarni qo'shing

Arduino IDE -ga kerakli kutubxonalarni qo'shing
Arduino IDE -ga kerakli kutubxonalarni qo'shing
Arduino IDE -ga kerakli kutubxonalarni qo'shing
Arduino IDE -ga kerakli kutubxonalarni qo'shing
Arduino IDE -ga kerakli kutubxonalarni qo'shing
Arduino IDE -ga kerakli kutubxonalarni qo'shing

Signalni ishga tushirish uchun Arduino Sketch, sukut bo'yicha Arduino IDE -ga o'rnatilmagan ba'zi kutubxonalardan foydalanadi.

RCSwitch kutubxonasini Arduino IDE -ga qo'shish uchun. Arduino IDE -ni oching, yuqori menyuda "Sketch" -ni tanlang, so'ngra ochiladigan menyudan "Kutubxonani qo'shish" -ni tanlang va keyingi ochilgandan "Kutubxonalarni boshqarish" -ni tanlang. Keyin "Qidiruvni filtrlash" katagiga "RCSW" kiriting, so'ng "ri-switch by sui77" ni o'rnating.

Kutubxonalarni qo'shish bo'yicha batafsil ko'rsatmalar

Biz hozir bo'lganimizda, Time, TimeAlarms, DS1307RTC va LiquidCrystal_I2C deb nomlangan kutubxonalarni qo'shishimiz kerak. Qaysi kutubxonalardan foydalanishni bilmasangiz, yuqoridagi ekran tasvirlarini ko'ring.

DS3231 real vaqtda soati DS1307RTC kutubxonasi bilan mos keladi va undan foydalanadi.

4 -qadam: Endi biz sensorlar kodlarini olishimiz kerak

Keyin biz sensorlar uchun kodlarni olishimiz kerak
Keyin biz sensorlar uchun kodlarni olishimiz kerak
Keyin biz sensorlar uchun kodlarni olishimiz kerak
Keyin biz sensorlar uchun kodlarni olishimiz kerak

Men quyida Arduino kodi shablonini berdim, lekin siz har bir datchikingizning qiymatlarini topib, ularni kodga joylashtirishingiz kerak bo'ladi.

Ikkala saytda ham ushbu kodlarni qanday olish mumkinligi haqida keng ma'lumotlar mavjud;

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

github.com/sui77/rc-switch/wiki

Ammo bu erda mening qisqartirilgan versiyam bor;

Sensorlar va masofadan boshqarish pultlari yuboradigan kodlarni olish uchun Arduino -ni USB kabel orqali kompyuterga 1 -qadamda biriktiring va Arduino IDE -ni oching. Keyin Arduino IDE -da "Fayl" ochiladigan menyusiga o'ting, so'ng "Misollar" ga o'ting, "RCSWITCH" topilmaguncha namunaviy eskizlar ro'yxatini pastga aylantiring, so'ng "ReceiveDemo_Advanced" eskizini tanlang va Arduino -ga yuklang. Eskiz muvaffaqiyatli yuklangandan so'ng, Arduino IDE seriyali monitorini oching, u kompyuterga USB orqali ulangan. Endi kodni olmoqchi bo'lgan sensorlarning birinchisini ishga tushiring, RCSwitch -dan chiqish ketma -ket monitor oynasida paydo bo'ladi. Ushbu loyiha uchun biz skrinshot 2 -da ko'rsatilgandek kasr kodlarini qidirmoqdamiz. Sensorni bir necha marta ishga tushirish kerak bo'ladi, u tez -tez paydo bo'ladigan o'nlik kasr qiymatini qidiradi, ba'zida haqiqiy qiymat bilan har xil qiymatlar aralashadi. tasodifiy radio to'lqinlari yoki bir xil chastotada ishlaydigan boshqa qurilmalarning aralashuvi orqali.

Keyingi bosqichda foydalanish uchun sensorning o'nlik kodiga e'tibor bering. Loyihada ishlatmoqchi bo'lgan barcha sensorlar va masofadan boshqariladigan kalitlar uchun takrorlang, qaysi sensor qaysi sensor bilan ketishini kuzatib boring. Agar signalni qurollantirish va o'chirish uchun kalit asboblardan foydalansangiz, har bir masofadan boshqarish pultining qo'li tugmachalari va qurolsizlantirish tugmalarining turli kodlariga e'tibor qaratishingiz kerak bo'ladi.

5 -qadam: Arduino kod shablon

Quyida Wireless_Alarm deb nomlangan.ino faylidagi Arduino kodim nusxasi. Siz uni bosishingiz mumkin va u Arduino IDE -da ochilishi kerak. Men dasturchi emasman, mening kodim qisman Arduino IDE -dagi misollardan yig'ilgan, ehtimol u juda oqlangan emas, lekin u ishlaydi va uzoq vaqt davomida ishonchli bo'lgan.

O'zingizning sensorlaringizdan kodlarni kiritish uchun o'zgartirish kiritgandan so'ng, eskizni qayta saqlashni unutmang.

6 -qadam: 5 -qadamda olingan kodlarni Arduino eskiz shabloniga joylashtiring

Endi siz foydalanadigan sensorlar va masofadan boshqariladigan kalitlar uchun kodni sozlash bo'yicha qadamlar.

Agar siz IDE -da Wireless_Alarm eskizini ochsangiz, 111 -qatorda ko'rasiz.

if (mySwitch.getReceivedValue () == 115166236) // Fob qo'l tugmasi kodi

Qaerda 115166236 kodi mavjud bo'lsa, siz bu raqamni 5 -qadamda yozib qo'yilgan masofadan boshqarish pultining tugmachasi uchun o'nlik kod bilan almashtirishingiz kerak.

Masalan, agar 5 -qadamda sizda 1154321 kasr bo'lsa, 111 -qatorni hozir o'qish uchun o'zgartirasiz;

if (mySwitch.getReceivedValue () == 1154321) // Fob qo'l tugmasi kodi

125 -qator uchun xuddi shu tartibni bajaring.

if (mySwitch.getReceivedValue () == 115166234) // Fob qurolsizlantirish tugma kodi

5 -qadamda yozib qo'yilgan masofadan boshqarish pultini o'chirish tugmachasining kodini 115166234 bilan almashtiring.

Agar siz qurol va qurolsizlantirish uchun bir nechta masofali foblardan foydalanmoqchi bo'lsangiz, 111 dan 136 gacha bo'lgan qatorlarni kerakli darajada ko'p marta nusxa ko'chiring va joylashtiring, so'ngra boshqa masofaviy kalitlarga mos keladigan qiymatlarni o'zgartiring, lekin o'zgartirilganligiga ishonch hosil bo'lmaguncha bitta masofadan boshqarish pultidan boshlash yaxshidir. eskiz ishlayapti.

Endi 140 -chi chiziqdagi signal sensorlarini kodlash

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Signal yuboruvchi ofis shkafi uchun harakat

1151640 ni chiqarib, signal sensorlaridan birining kasr qiymatini kiriting.

Keyin 158 -qatorda.

lcd.print (F ("Ofis shkafi")); // qaysi sensor yoqilganligini bilish uchun lcd -ga xabar chop eting (va o'g'irchini toping:)

Ofis shkafini ushbu sensor uchun LCD displeyda xohlaganingizga o'zgartiring. Masalan, agar siz oshxona eshiklarini o'qishni xohlasangiz, chiziqni shunday ko'rinishga keltiring;

lcd.print (F ("Oshxona eshigi")); // qaysi sensor yoqilganligini bilish uchun lcd -ga xabar chop eting (va o'g'irchini toping:)

Ismlar 16 belgidan oshmasligi kerak.

165 va 187 -qatorlar orasida 187 -dan pastdagi satrlarga kerak bo'lganda ko'p marta nusxa ko'chirish va joylashtirish uchun shablon mavjud. MySwitch.getReceivedValue () == dan keyingi raqamni 5 -qadamda yozgan boshqa sensorlaringizning o'nli kasrlari bilan almashtiring. va lcd.print (F ("sensornamehere")) "" ichida nomini o'zgartiring; Sensoringizni bermoqchi bo'lgan ismga.

Agar siz signalni qurollantirish va o'chirish uchun masofaviy kalitlardan foydalanmasangiz, 111-136-qatorlarni e'tiborsiz qoldirishingiz yoki har bir kiruvchi qatorning boshiga // qo'yishingiz mumkin va Arduino ularni o'qimaydi.

O'zgartirish kiritgandan so'ng, faylni saqlashni unutmang.

7 -qadam: O'zgartirilgan.ino -ni Arduino -ga yuklang va test qiling

O'zgartirilgan.ino -ni Arduino -ga yuklang va test qiling
O'zgartirilgan.ino -ni Arduino -ga yuklang va test qiling
O'zgartirilgan.ino -ni Arduino -ga yuklang va test qiling
O'zgartirilgan.ino -ni Arduino -ga yuklang va test qiling
O'zgartirilgan.ino -ni Arduino -ga yuklang va test qiling
O'zgartirilgan.ino -ni Arduino -ga yuklang va test qiling

Arduino kompyuterga USB orqali ulangan bo'lsa ham, eskizni Arduino kartasiga yuklang. Yuklash muvaffaqiyatli yakunlangach, LCD displeyda "Qurolsizlantirish to'g'risida signal" yozuvi bo'lishi kerak. Masofadan boshqarish pultidagi qo'l tugmachasini bosing va LCD displeyida "Qurolli signal" yozuvi bo'lishi kerak va LED yonib turishi kerak, u qurollanganligini bildiradi, endi esa qurollangan paytda sensorni ishga tushiring, LCD signalni o'qib, vaqt tamg'asi va sensorning joylashuvi, signalizatsiya signalizatsiyasi 2 daqiqa davomida eshitilishi kerak, agar siz qurolsizlantirish tugmachasini bosmasangiz. Agar siz bunday natijaga erisha olmasangiz, 5 -qadamda olingan kodlarni va oldingi bosqichda kodga kiritilgan o'zgarishlarni qayta tekshiring, shuningdek, barcha komponentlarning simlarini tekshiring. Agar LCD umuman o'qimasa, LCD modulining orqa tomonida kontrastni sozlash mavjud. Agar LCD hali ham o'qimayotgan bo'lsa, kontrast to'g'ri o'rnatilgandan so'ng, chizilgan 12 -satrda LCD manzilini 0x3f dan 0x27 ga o'zgartirishga harakat qiling. LCD muammolarini bartaraf etish bu erda I2C LCD qo'llanmasi

8 -qadam: RTC modulida vaqtni belgilash va qurol va qurolsizlanish vaqtini o'zgartirish

Umid qilamanki, sizning RTC allaqachon to'g'ri vaqt bilan belgilangan, lekin agar IDE ochilmasa, "Fayl" -ni tanlang va ochiladigan menyudan "Misollar" -ni bosing, "DS1307RTC" -ga o'ting va "SetTime" eskizini tanlang, eskizni o'zingizga yuklab oling. Arduino va u sizning kompyuteringizdagi vaqt bilan real vaqtni belgilaydi, keyin siz Wireless_Alarm eskizini Arduino -ga qayta yuklashingiz kerak bo'ladi.

Men taqdim etgan Wireless_Alarm.ino signalni har kecha soat 10.15da avtomatik ravishda ishga tushiradi va har kuni ertalab soat 6.00da qurolsizlantiradi. Bu vaqtlarni o'zgartirish uchun 71 va 72 -chi satrlarda eskizni o'zgartiring. Vaqt Alarm.alarmReat -dan keyin HH, MM, SS formatida qavs ichida. buni xohlagan vaqtingizga o'zgartiring.

Signal.alarmTekror (6, 00, 0, MorningAlarm); // DISARM vaqti

Signal.alarm Takrorlash (22, 15, 0, EveningAlarm); // ARM vaqti

Shunday qilib, qurolsizlanish vaqtini ertalab soat 9.15 ga, qurollanish vaqtini 17.30 ga o'zgartirish kod shunday bo'ladi

Signal.alarm Takrorlash (9, 15, 0, MorningAlarm); // DISARM vaqti

Signal.alarm Takrorlash (17, 30, 0, EveningAlarm); // ARM vaqti

Agar siz signalni qurollanishini va qurolsizlanishini xohlamasangiz, 2 qatorning oldiga // qo'ying va ular ishlatilmaydi.

// Signal.alarmReat(6, 00, 0, MorningAlarm); // DISARM vaqti

// Signal.alarmTakrorlash (22, 15, 0, EveningAlarm); // Qo'l vaqti

Signal signalining signal vaqtini 22 -qatorni o'zgartirish orqali o'zgartirish mumkin

const uzoq oralig'i = 120000; // milis kechikish uchun signal signallarining uzoq vaqt davomida

Interval millisekundlarda, shuning uchun 120000 = 120 soniya, 120000 dan 30000 gacha o'zgartirish signalni 30 soniya davomida chiqaradi.

Siren, flaşli yorug'lik, baland ovozli signal va boshqalarni ishlatish uchun solenoidni 7 yoki 9 -pinli simlarga ulash mumkin va ular yuqorida ko'rsatilgan "intervalgacha" ishlaydi. Shuni yodda tutingki, Arduino pinining maksimal yuklanishi 40mA dan oshmasligi kerak.

9 -qadam: Qo'shimcha eslatmalar

Arduino uchun 433 yoki 315 MGtsli qabul qiluvchi modulni tanlashda siz foydalanmoqchi bo'lgan signal sensorlariga mos keladigan chastotani tanlashingiz kerak. Men eng yaxshi ishlashi uchun kichik spiral antenna bilan ta'minlangan modulni sotib olishni taklif qilaman, aks holda 17,3 mm uzunlikdagi to'g'ri simli antenna ham ish faoliyatini oshiradi.

16x2 LCD moduli bilan siz bu erda ko'rsatma va kodni ishlatish uchun 4 pinli I2C LCD -ni ishlatishingiz kerak, u 16 pinli standart LCD yordamida tayyorlanishi mumkin, lekin u bu erda simlar yoki kod bilan ishlamaydi.

Simsiz signalli qamish kalitlari, harakat sensorlar va masofadan boshqarish pultlari 433 MGts yoki 315 MGts chastotali bo'lishi kerak, siz qabul qilmoqchi bo'lgan qabul qilgichga mos kelishi va PT2262 yoki EV1527 kodlashidan foydalanishi kerak.

Signal kengaytirilishi va moslashishi mumkin, men allaqachon sensorlar ishga tushirilganda yozib olish uchun SD -kartani qo'shganman, LCD -ni faqat tugma bosilganda yonib turishi uchun o'zgartirganman va 100dB sirenasini qo'shganman, lekin bu erda maqolani saqlab qolish uchun tafsilotlarni kiritmaganman. iloji boricha qisqa va sodda. Umid qilamanki, bu signalda qilgan ishim bilan bo'lishish boshqalarga foydali bo'ladi.

Har qanday savollarga javob berishdan xursandman.

Rahmat.

Tavsiya: