Mündəricat:

Mövcud Sensorlardan istifadə edən Arduino Simsiz Siqnal Sistemi: 9 Addım (Şəkillərlə birlikdə)
Mövcud Sensorlardan istifadə edən Arduino Simsiz Siqnal Sistemi: 9 Addım (Şəkillərlə birlikdə)

Video: Mövcud Sensorlardan istifadə edən Arduino Simsiz Siqnal Sistemi: 9 Addım (Şəkillərlə birlikdə)

Video: Mövcud Sensorlardan istifadə edən Arduino Simsiz Siqnal Sistemi: 9 Addım (Şəkillərlə birlikdə)
Video: 15 - 200A üçün Zigbee DC güc monitoru. Test, xarici cihazları birləşdirmək 2024, Iyul
Anonim
Mövcud Sensorlardan istifadə edərək Arduino Simsiz Siqnal Sistemi
Mövcud Sensorlardan istifadə edərək Arduino Simsiz Siqnal Sistemi
Mövcud Sensorlardan Arduino Simsiz Siqnal Sistemi
Mövcud Sensorlardan Arduino Simsiz Siqnal Sistemi
Mövcud Sensorlardan istifadə edərək Arduino Simsiz Siqnal Sistemi
Mövcud Sensorlardan istifadə edərək Arduino Simsiz Siqnal Sistemi
Mövcud Sensorlardan Arduino Simsiz Siqnal Sistemi
Mövcud Sensorlardan Arduino Simsiz Siqnal Sistemi

Mövcud 433Mhz və ya 315Mhz simsiz siqnal sensorlarınız varsa, bu layihə təxminən 20.00 dollar dəyərində təxminən yarım saat ərzində inşa edilə bilər.

İnfraqırmızı hərəkət detektorları və qamış açarları kimi simsiz siqnalizasiya sensorları olan, internetdə asanlıqla və ucuz satılan yeni bir layihə də ola bilər. Yalnız PT2262 və ya EV1527 kodlaşdırmasını istifadə edən 433Mhz və ya 315Mhz sensorlar axtarın.

Əminəm ki, mənim kimi simsiz sensorlar olan bir GSM/2G siqnalizasiya sistemi almış və bundan məmnun olan bir çox insan var, amma yaşadığım yerdə 2G/GSM şəbəkəsi söndürüldükdə, edə biləcəyim bir siqnalizasiya sistemi qalmışdı. artıq proqram etmir və hətta vaxtını təyin etmir. Bir gün həyəcanımı yenidən işlək hala gətirmək üçün nə edə biləcəyimi düşünərkən bir Arduinonun sensorlardan siqnal ala biləcəyini yoxlamaq ağlıma gəldi. Gücləndirilə bilən https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ ilə qarşılaşdım və bəzi təcrübələrdən sonra mövcud sensorlarımdan siqnalları ala biləcəyimi təyin etdim. Mövcud alarmımı əvəz edə biləcək və eyni zamanda daha çox funksionallıq təmin edəcək bir siqnalizasiya sistemi qurma prosesinə başladım. Köhnə həyəcan siqnalı ilə bağlı problemlərdən biri 25 sensordan hansının tam olaraq söndüyünü bilmək deyildi, yeni siqnal quruluşuma bir LCD ekran əlavə edərək indi LCD -də hansı sensorun işə salındığını göstərən mətn alıram. Yeni siqnal hələ də mövcud simsiz açar sözlərimlə əllə silahlandırıla bilər və günün əvvəlcədən təyin edilmiş vaxtlarında avtomatik olaraq silahlanmasına və tərksilah edilməsinə imkan verən real vaxt saatına malikdir.

Təchizat

Bu hissələrin düzgün versiyasını istifadə etdiyinizə əmin olmaq üçün sonda əlavə qeydlərə baxın.

Arduino Uno və ya bənzəri

Arduino üçün 433 və ya 315 MHz alıcı modulu

Arduino üçün DS3231 Real Time Clock modulu

Arduino üçün I2C 16x2 LDC modulu

İstədiyiniz kimi simsiz siqnalizasiya qamışı açarları, hərəkət sensorlar və uzaqdan idarəetmə düymələri

Piezo səs siqnalı

LED və 220 ohm müqavimət

Çörək paneli (isteğe bağlı, lakin tövsiyə olunur)

Arduino üçün uyğun enerji təchizatı

Kabel telləri və s

Arduino IDE quraşdırılmış kompüter

Arduino haqqında əsas biliklər

Addım 1: Təchizat

Təchizat
Təchizat
Təchizat
Təchizat
Təchizat
Təchizat

Bu layihə üçün lazım olacaq təchizatların yuxarıdakı bəzi şəkilləri

Addım 2: Ardunio və Modulları Şəkildə göstərildiyi kimi bağlayın

Ardunio və Modulları Şəkildə göstərildiyi kimi bağlayın
Ardunio və Modulları Şəkildə göstərildiyi kimi bağlayın

Arduino və yerin 5 -ci pinləri arasında piezo

Arduino pin 8 ilə 220 ohm müqavimətə qədər LED

433 və ya 315 Mhz qəbuledicisi, VCC -dən 5V -a, GND -dən yerə və Arduino -nun pin2 -yə 2 məlumat pinindən biri

I2C 16X2 LCD Modulu VCC -dən 5V -a, GND -dən yerə, SCL SDA pinləri Arduinonun SCL SDA -na (pin A5 SCL, pin A4 SDA -ya)

DS3231 RTC Modulu VCC -dən 5V -ə, GND -dən yerə, SCL SDA pinləri Arduinonun SCL SDA -na (əksər Arduino -nun GND və AREF pinlərinin üstündə yerləşən 2 -ci dəst var)

Bilirəm ki, bəzilərinizin bundan əlavə məlumatlara və aşağıda göstərilən eskizə ehtiyac duymayacaqsınız, amma bir az da kömək istəyən hər kəs üçün bir az daha ətraflı məlumat verəcəyəm.

Addım 3: Arduino IDE -yə Lazımi Kitabxanalar əlavə edin

Arduino IDE -yə Lazımi Kitabxanalar əlavə edin
Arduino IDE -yə Lazımi Kitabxanalar əlavə edin
Arduino IDE -yə Lazımi Kitabxanalar əlavə edin
Arduino IDE -yə Lazımi Kitabxanalar əlavə edin
Arduino IDE -yə Lazımi Kitabxanalar əlavə edin
Arduino IDE -yə Lazımi Kitabxanalar əlavə edin

Siqnalı işə salmaq üçün Arduino Sketch, standart olaraq Arduino IDE -də quraşdırılmamış bəzi kitabxanalardan istifadə edir.

RCSwitch kitabxanasını Arduino IDE -yə əlavə etmək üçün. Üst menyuda Arduino IDE -ni açın "Sketch" seçin, sonra açılan menyudan "Kitabxana daxil et" seçin və növbəti açılandan "Kitabxanaları idarə et" seçin. Sonra "Axtarışınızı Filtr edin" qutusuna "RCSW" yazın, sonra "sui77 ilə rc-switch" üçün quraşdırma düyməsini basın.

Kitabxanaların əlavə edilməsi ilə bağlı ətraflı təlimat

Hazır olduğumuz zaman, yuxarıdakı kimi eyni prosedur olan Time, TimeAlarms, DS1307RTC və LiquidCrystal_I2C adlı kitabxanaları da əlavə etməliyik, lakin hər yeni kitabxananın adını axtarırıq və quraşdırırıq. Hansı kitabxanalardan istifadə edəcəyinizdən əmin deyilsinizsə yuxarıdakı ekran görüntülərinə baxın.

DS3231 real vaxt saatı DS1307RTC kitabxanası ilə uyğun gəlir və istifadə edir.

Addım 4: Sonra Sensorlarınızın Kodlarını Almalıyıq

Sonra Sensorlarınızın Kodlarını Almalıyıq
Sonra Sensorlarınızın Kodlarını Almalıyıq
Sonra Sensorlarınızın Kodlarını Almalıyıq
Sonra Sensorlarınızın Kodlarını Almalıyıq

Aşağıda Arduino kodunun şablonunu verdim, ancaq hər bir sensörünüzün dəyərlərini tapıb koda yapışdırmalısınız.

Bu saytların hər ikisində bu kodları necə əldə etmək barədə geniş məlumat var;

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

github.com/sui77/rc-switch/wiki

Ancaq burada mənim qısaldılmış versiyam var;

Sensorlarınızın və uzaqdan idarə olunan fobların göndərdiyi kodları əldə etmək üçün Arduino -nu 1 -ci addımda yığılmış şəkildə USB kabel vasitəsilə PC -yə qoşun və Arduino IDE -ni açın. Arduino IDE -də "Fayl" açılan menyusuna gedin, sonra "Nümunələr" bölməsinə gedin və "RCSWITCH" tapana qədər nümunə eskizlər siyahısını aşağı çəkin, sonra "ReceiveDemo_Advanced" eskizini seçin və Arduino -ya yükləyin. Eskiz uğurla yükləndikdən sonra Arduino IDE -nin seriyalı monitorunu kompüterinizə USB vasitəsilə qoşularaq açılır. İndi kodu almaq istədiyiniz sensorlardan birincisini işə salın, RCSwitch -in çıxışı serial monitor pəncərəsində görünəcək. Bu layihə üçün ekran görüntüsü 2 -də göstərildiyi kimi ondalık kodları axtarırıq. Sensoru ən çox görünən ondalık dəyərini bir neçə dəfə işə salmalısınız, bəzən əsl dəyərlə qarışdırılan fərqli dəyərlər olacaq. təsadüfi radio dalğalarının və ya eyni tezlikdə işləyən digər cihazların müdaxiləsi ilə.

Növbəti addımda istifadə etmək üçün sensorun ondalık kodunu qeyd edin. Layihədə istifadə etmək istədiyiniz bütün sensorlar və uzaqdan açılan foblar üçün təkrarlayın, hansı kodun hansı sensorla getdiyini izləyin. Siqnalizasiyanı silahlandırmaq və tərksilah etmək üçün açar tuşlardan istifadə edirsinizsə, hər bir uzaqdan idarəetmə düyməsinin və silahsızlaşdırma düyməsinin fərqli kodlarını qeyd etməlisiniz.

Addım 5: Arduino Kod Şablonu

Aşağıda Wireless_Alarm adlı.ino faylı olaraq Arduino kodumun bir nüsxəsi verilmişdir. Bunun üzərinə vura bilərsiniz və Arduino IDE -də açılmalıdır. Proqramçı deyiləm ki, kodum qismən Arduino IDE -də olan nümunələrdən toplanmışdır, yəqin ki, o qədər də zərif deyil, amma işləyir və uzun müddətdir etibarlıdır.

Şəxsi sensorlardakı kodları daxil etmək üçün dəyişikliklər etdikdən sonra eskizi yenidən saxlamağı unutmayın.

6 -cı addım: 5 -ci addımda əldə etdiyiniz kodları Arduino eskiz şablonuna yapışdırın

İndi istifadə etdiyiniz sensorlar və uzaqdan açılan foblar üçün kodu fərdiləşdirmək üçün addımlar.

IDE -də Wireless_Alarm eskizini açsanız, 111 -ci sətirdə görəcəksiniz.

if (mySwitch.getReceivedValue () == 115166236) // Fob qolu düymə kodu

Mövcud kodda 115166236 yazıldığı yerdə, 5 nömrəli addımda qeyd etdiyiniz uzaqdan açma düyməsinin qol düyməsi üçün bu rəqəmi ondalık kodu ilə əvəz etməlisiniz.

Məsələn, 5 -ci addımda ondalık 1154321 varsa, 111 sətirini indiyə qədər oxumaq üçün dəyişdirərdiniz;

if (mySwitch.getReceivedValue () == 1154321) // Fob qolu düymə kodu

125 -ci xətt üçün eyni proseduru edin.

if (mySwitch.getReceivedValue () == 115166234) // Fob tərksilah düyməsinin kodu

Addım 5 -də qeyd etdiyiniz uzaqdan idarəetmə düyməsini söndürmə düyməsinin kodunu 115166234 ilə əvəz edin.

Silahlandırmaq və tərksilah etmək üçün birdən çox uzaqdan istifadə etmək istəyirsinizsə, 111 -dən 136 -dək sətirləri lazım olduğu qədər kopyalayın və yapışdırın, sonra dəyərləri digər uzaqdan açar düymələrinizə uyğun olaraq dəyişdirin, ancaq ən yaxşısı dəyişdirildiyinizə əmin olana qədər bir pultla başlamaqdır. eskiz işləyir.

İndi 140 -cı sətirdəki eskizdəki siqnalizasiya sensorlarını kodlaşdırmaq üçün

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Siqnal göndərən ofis şkafı üçün hərəkət

1151640 çıxarın və həyəcan sensorlarınızdan birinin ondalık dəyərini daxil edin.

Sonra 158 xəttində.

lcd.print (F ("Ofis şkafı")); // hansı sensorun işə salındığını bilmək üçün lcd -ə mesaj yazın (və gedin oğrunu tapın:)

Ofis şkafını bu sensor üçün LCD -də nə vaxt görmək istəsəniz dəyişdirin. Məsələn, mutfak qapısının oxumasını istəyirsinizsə, xəttin belə görünməsini təmin edin;

lcd.print (F ("Mətbəx qapısı")); // hansı sensorun işə salındığını bilmək üçün lcd -ə mesaj yazın (və gedin oğrunu tapın:)

Adlar 16 işarədən çox olmamalıdır.

165 ilə 187 -ci sətirlər arasında, 187 -nin altındakı sətirlərə lazım olduğu qədər çox dəfə kopyalayıb yapışdırmaq üçün bir şablon var. MySwitch.getReceivedValue () == ardındakı rəqəmi 5 -ci addımda qeyd etdiyiniz digər sensorlarınızın onluğu ilə əvəz edin. və lcd.print (F ("sensornamehere")) "" daxilində adı dəyişdirin; sensorunuzu vermək istədiyiniz ada.

Siqnalizasiyanızı silahlandırmaq və tərksilah etmək üçün uzaqdan açar düymələrdən istifadə etmirsinizsə, 111-136-cı sətirləri görməməzlikdən gələ bilməzsiniz və ya istənməyən sətirlərin hər birinə // yaza bilərsiniz və Arduino onları oxumayacaq.

Dəyişikliklər etdikdən sonra faylı saxlamağı unutmayın.

Addım 7: Dəyişdirilmiş.ino yükləyin Arduino və Test edin

Dəyişdirilmiş.ino yükləyin Arduino və Test edin
Dəyişdirilmiş.ino yükləyin Arduino və Test edin
Dəyişdirilmiş.ino yükləyin Arduino və Test edin
Dəyişdirilmiş.ino yükləyin Arduino və Test edin
Dəyişdirilmiş.ino yükləyin Arduino və Test edin
Dəyişdirilmiş.ino yükləyin Arduino və Test edin

Arduino hələ də kompüterə USB ilə qoşulduqda, eskizi Arduino lövhəsinə yükləyin. Yükləmə uğurla başa çatdıqdan sonra LCD "Silahsızlaşdırma Alarmı" yazmalıdır. Uzaqdan idarəetmə düyməsindəki qol düyməsini basın və LCD "Silahlı Siqnal" yazmalı və LED silahlı olduğunu bildirmək üçün yandırılmalıdır, indi silahlı ikən bir sensoru işə salın, LCD Siqnalın ardınca vaxt möhürünü və Sensorun yerləşdiyi yerdən tərksilah etmə düyməsini basmadığınız müddətdə səs siqnalı 2 dəqiqə ərzində səslənməlidir. Bu nəticəni əldə etmirsinizsə, 5 -ci addımda aldığınız kodları və əvvəlki addımda koda etdiyiniz dəyişiklikləri yenidən yoxlayın, eyni zamanda bütün komponentlərin naqillərini yenidən yoxlayın. LCD ümumiyyətlə oxumursa, LCD modulunun arxa tərəfində bir kontrast tənzimlənməsi var. LCD hələ də oxumursa, kontrast düzgün qurulduqda, eskizin 12 -ci sətrində LCD -nin ünvanını 0x3f -dən 0x27 -ə dəyişməyə çalışın. LCD problemlərinin həlli burada I2C LCD təlimatı

Addım 8: RTC Modulunda Saatı Ayarlama və Qol və Silahsızlanma Zamanlarını Dəyişdirmə

Ümid edirik ki, RTC -də artıq düzgün vaxt təyin olunmuşdu, ancaq IDE -ni açmasanız 'Fayl' seçin və açılan menyudan "Nümunələr" düyməsini basın, "DS1307RTC" -ə enin və "SetTime" eskizini seçin, eskizi yükləyin Arduino və real vaxt saatını kompüterinizdəki vaxtla təyin edəcək, sonra Wireless_Alarm eskizini Arduino -ya yenidən yükləməlisiniz.

Təmin etdiyim Wireless_Alarm.ino, həyəcan siqnalını hər gecə saat 10.15 -də avtomatik olaraq işə salacaq və hər səhər 6.00 -da tərksilah edəcək. Bu vaxtları dəyişdirmək üçün 71 və 72 -ci sətirlərdəki Sketch -i dəyişdirin. Saat Alarm.alarmReat -dan sonra HH, MM, SS formatında mötərizədədir. bunu sizə uyğun olan vaxta dəyişin.

Siqnal.alarmTəkrarla (6, 00, 0, Səhər Siqnalı); // DISARM zamanı

Alarm.alarmTəkrarla (22, 15, 0, EveningAlarm); // Qol vaxtı

Beləliklə, tərksilah vaxtını 9.15 -ə və silahlanma vaxtını 17.30 -a dəyişdirmək üçün kod belə görünür

Siqnal.alarmTəkrarla (9, 15, 0, Səhər Siqnalı); // DISARM zamanı

Alarm.alarmTəkrarla (17, 30, 0, EveningAlarm); // Qol vaxtı

Siqnalın silahlanmasını və tərksilah edilməsini istəmirsinizsə // avtomatik olaraq 2 xəttin önünə // qoyun və istifadə edilməyəcək.

//Alarm.alarmTəkrarla (6, 00, 0, Səhər Siqnalı); // DISARM vaxtı

//Alarm.alarmTəkrarla (22, 15, 0, EveningAlarm); // Silah vaxtı

Siqnal siqnalının səslənmə vaxtı 22 -ci xətt dəyişdirilərək dəyişdirilə bilər

const uzun interval = 120000; // millis gecikməsi üçün uzun müddət həyəcan siqnalı verir

Aralıq milisaniyədədir, buna görə 120000 = 120 saniyə, 120000 -dən 30000 -ə dəyişdirilərkən 30 saniyə ərzində həyəcan siqnalı veriləcək.

Siren, fənər işığı, yüksək səs siqnalı və s. İşlətmək üçün bir solenoid 7 və ya pin 9 -a da bağlana bilər və yuxarıda göstərildiyi kimi "interval" üçün işləyəcək. Bir Arduino pininin maksimum yükünün 40mA -dan çox olmamasını unutmayın.

Addım 9: Əlavə Qeydlər

Arduino üçün 433 və ya 315 MHz qəbuledici modul seçərkən istifadə etmək istədiyiniz siqnalizasiya sensorlarına uyğun tezliyi seçməlisiniz. Ən yaxşı performans üçün kiçik bir spiral anten ilə birlikdə gələn bir modul almağı təklif edirəm, alternativ olaraq 17.3 mm uzunluğunda düz telli antenlər də performansı artırır.

16x2 LCD modulu ilə burada verdiyim təlimatları və kodu istifadə etmək üçün 4 pinli I2C LCD istifadə etməlisiniz, 16 pinli standart LCD ilə hazırlana bilər, ancaq burada kabel və ya kodla işləməyəcəkdir.

Simsiz siqnallı qamış açarları, hərəkət sensorlar və uzaqdan idarəetmə düymələri istifadə etmək istədiyiniz alıcıya uyğun 433Mhz və ya 315Mhz olmalıdır və PT2262 və ya EV1527 kodlaşdırmasını istifadə etməlidir.

Siqnal genişləndirilə və uyğunlaşdırıla bilər, sensorlar işə salındıqda yazmaq üçün bir SD kart əlavə etdim, LCD -ni yalnız bir düyməni basıldıqda yanacaq şəkildə dəyişdirdim və 100dB siren əlavə etdim, ancaq məqaləni olduğu kimi saxlamaq üçün detalları bura daxil etmədim. qısa və mümkün qədər sadə. Ümid edirəm ki, bu həyəcan siqnalı ilə bağlı gördüyüm işləri paylaşmaq başqalarına faydalı olacaq.

Hər hansı bir suala cavab verməkdən məmnunam.

Təşəkkürlər.

Tövsiyə: