İçindekiler:

Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi: 9 Adım (Resimli)
Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi: 9 Adım (Resimli)

Video: Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi: 9 Adım (Resimli)

Video: Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi: 9 Adım (Resimli)
Video: Arduino 433 mhz RF Alıcı (Receiver) Verici (Trasmitter) Modül Kullanımı | Virtual Wire 2024, Temmuz
Anonim
Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi
Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi
Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi
Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi
Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi
Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi
Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi
Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi

Mevcut 433Mhz veya 315Mhz kablosuz alarm sensörleriniz varsa, bu proje yaklaşık 20,00 $ maliyetle yaklaşık yarım saatte inşa edilebilir.

Kızılötesi hareket dedektörleri ve reed anahtarları gibi kablosuz alarm sensörleri ile çevrimiçi olarak kolayca ve ucuza bulunabilen tamamen yeni bir proje olabilir. PT2262 veya EV1527 kodlamasını kullanan 433Mhz veya 315Mhz sensörleri aramanız yeterlidir.

Eminim benim gibi kablosuz sensörlü GSM/2G alarm sistemi alıp memnun olan çok kişi vardır ama yaşadığım yerde 2G/GSM şebekesi kapatılınca elimde alarm sistemi kaldı. artık programlamayın ve hatta zamanı ayarlamayın. Bir gün alarmımı tekrar çalışır hale getirmek için ne yapabilirim diye düşünürken, bir Arduino'nun sensörlerden sinyal alıp alamayacağını kontrol etmek geldi aklıma. Bir https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ ile karşılaştım ve bazı deneylerden sonra sinyalleri mevcut sensörlerimden alabileceğimi belirledim. Mevcut alarmımın yerini alabilecek ve aynı zamanda daha fazla işlevsellik sağlayacak bir alarm sistemi kurma sürecine başladım. Eski alarmla ilgili sorunlardan biri, 25 sensörden hangisinin tam olarak çalıştığını asla bilememekti, yeni alarm sistemime bir LCD ekran ekleyerek şimdi LCD'de tam olarak hangi sensörün etkinleştirildiğini gösteren metin alıyorum. Yeni alarm, mevcut kablosuz anahtarlıklarım tarafından hala manuel olarak kurulabilir ve günün önceden ayarlanabilen saatlerinde otomatik olarak kurulmasını ve devre dışı bırakılmasını sağlamak için gerçek zamanlı bir saate sahiptir.

Gereçler

Bu parçaların doğru sürümünü kullandığınızdan emin olmak için sondaki ek notlara bakın.

Arduino Uno veya benzeri

Arduino için 433 veya 315 MHz alıcı modülü

Arduino için DS3231 Gerçek Zamanlı Saat modülü

Arduino için I2C 16x2 LDC modülü

İsteğe göre Kablosuz Alarm kamış anahtarları, hareket sensörleri ve uzaktan anahtarlıklar

Piezo zili

LED & 220 ohm direnç

Breadboard (isteğe bağlı ancak önerilir)

Arduino için uygun güç kaynağı

Jumper kabloları vb.

Arduino IDE'nin kurulu olduğu PC

Arduino ile ilgili temel bilgiler

Adım 1: Sarf Malzemeleri

Gereçler
Gereçler
Gereçler
Gereçler
Gereçler
Gereçler

Bu proje için ihtiyaç duyacağınız sarf malzemelerinin bazı resimleri

Adım 2: Ardunio ve Modülleri Resimde Gösterildiği Gibi Bağlayın

Ardunio ve Modülleri Resimde Gösterildiği Gibi Bağlayın
Ardunio ve Modülleri Resimde Gösterildiği Gibi Bağlayın

Arduino'nun pin 5'i ile toprak arasındaki Piezo

Arduino'nun pim 8'i ile 220ohm rezistör arasındaki LED, ardından toprağa

433 veya 315 Mhz alıcı, VCC'den 5V'a, GND'den toprağa ve Arduino'nun pin2'sine 2 veri pininden biri

I2C 16X2 LCD Modülü VCC'den 5V'a, GND'den toprağa, SCL SDA pinleri Arduino'nun SCL SDA'sına (pin A5 SCL, pin A4 SDA'dır)

DS3231 RTC Modülü VCC'den 5V'a, GND'den toprağa, SCL SDA pinleri Arduino'nun SCL SDA'sına (birçok Arduino'nun GND ve AREF pinlerinin üzerinde 2. set bulunur)

Bazılarınızın bundan ve aşağıda ekli taslaktan daha fazla bilgiye ihtiyacı olmayacağını biliyorum ama biraz daha fazla yardım isteyenler için biraz daha ayrıntıya gireceğim.

Adım 3: Arduino IDE'ye Gerekli Kitaplıkları Ekleyin

Arduino IDE'ye Gerekli Kitaplıkları Ekleyin
Arduino IDE'ye Gerekli Kitaplıkları Ekleyin
Arduino IDE'ye Gerekli Kitaplıkları Ekleyin
Arduino IDE'ye Gerekli Kitaplıkları Ekleyin
Arduino IDE'ye Gerekli Kitaplıkları Ekleyin
Arduino IDE'ye Gerekli Kitaplıkları Ekleyin

Alarmı çalıştırmak için Arduino Sketch, varsayılan olarak Arduino IDE'de yüklü olmayan bazı kitaplıkları kullanır.

Arduino IDE'ye RCSwitch kitaplığı eklemek için. Arduino IDE'yi üst menüden açın "Sketch" i seçin, ardından açılır menüden "Kütüphaneyi dahil et" i seçin ve bir sonraki açılır menüden "Kitaplıkları yönet" i seçin. Ardından "Aramanızı filtreleyin" kutusuna "RCSW" yazın, ardından "rc-switch by sui77" kurulumunu tıklayın

www.arduino.cc/en/guide/libraries adresinde kitaplık eklemeyle ilgili ayrıntılı talimatlar

Bu sırada Time, TimeAlarms, DS1307RTC ve LiquidCrystal_I2C adlı kitaplıkları da eklememiz gerekiyor, yukarıdaki prosedürle aynı, ancak her yeni kitaplığın adını arama ve yükleme. Hangi kitaplıkların kullanılacağından emin değilseniz yukarıdaki ekran görüntülerine bakın.

DS3231 gerçek zamanlı saat, DS1307RTC kitaplığıyla uyumludur ve bu kitaplığı kullanır.

Adım 4: Sonraki Sensörlerinizin Kodlarını Almamız Gerekiyor

Sonraki Sensörlerinizin Kodlarını Almamız Gerekiyor
Sonraki Sensörlerinizin Kodlarını Almamız Gerekiyor
Sonraki Sensörlerinizin Kodlarını Almamız Gerekiyor
Sonraki Sensörlerinizin Kodlarını Almamız Gerekiyor

Aşağıda Arduino kodunun şablonunu sağladım ancak sensörlerinizin her birinin değerlerini bulmanız ve kodun içine yapıştırmanız gerekecek.

Her iki sitede de bu kodların nasıl elde edileceğine dair kapsamlı bilgiler bulunmaktadır;

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

github.com/sui77/rc-switch/wiki

Ancak işte benim kısaltılmış halim;

Sensörlerinizin ve uzaktan kumanda anahtarlıklarınızın gönderdiği kodları almak için, Arduino'yu 1. adımda monte edildiği gibi USB kablosuyla bir PC'ye bağlayın ve Arduino IDE'yi açın. Ardından Arduino IDE'de "Dosya" açılır menüsüne gidin, ardından "Örnekler"e gidin, "RCSWITCH" bulana kadar örnek çizimler listesini aşağı kaydırın, ardından "ReceiveDemo_Advanced" taslağını seçin ve Arduino'ya yükleyin. Kroki başarıyla yüklendikten sonra, Arduino IDE'nin seri monitörünü USB üzerinden PC'nize bağlıyken açın. Şimdi kodunu almak istediğiniz sensörlerden ilkini tetikleyin, seri monitör penceresinde RCSwitch'ten gelen çıktı görünecektir. Bu proje için ekran görüntüsü 2'de vurgulandığı gibi ondalık kodları arıyoruz. En sık görünen ondalık değeri aramak için sensörü birkaç kez tetiklemeniz gerekecek, bazen gerçek değerle karıştırılan farklı değerler olabilir, bu neden olur. rastgele radyo dalgalarından veya aynı frekansta çalışan diğer cihazlardan kaynaklanan parazitler nedeniyle.

Bir sonraki adımda kullanmak için sensörün ondalık kodunu not edin. Projede kullanmak istediğiniz tüm sensörler ve uzaktan kumanda anahtarlıkları için tekrarlayın ve hangi kodun hangi sensörle birlikte gittiğini takip edin. Alarmı kurmak ve devre dışı bırakmak için anahtarlıklar kullanıyorsanız, her uzaktan kumandanın kurma düğmesi ve devre dışı bırakma düğmesi için farklı kodları not etmeniz gerekir.

Adım 5: Arduino Kod Şablonu

Aşağıda, Wireless_Alarm adlı bir.ino dosyası olarak Arduino kodumun bir kopyası var. Üzerine tıklayabilirsiniz ve Arduino IDE'de açılmalıdır. Ben bir programcı değilim, kodum kısmen Arduino IDE'de bulunan örneklerden derlendi, muhtemelen özellikle zarif değil ama çalışıyor ve uzun süredir güvenilir.

Kendi sensörlerinizden gelen kodları dahil etmek için değişiklikleri yaptıktan sonra taslağı yeniden kaydetmeyi unutmayın.

Adım 6: Adım 5'te Aldığınız Kodları Şablon Arduino Sketch'ine Yapıştırın

Şimdi, kullandığınız sensörler ve uzaktan kumandalı anahtarlıklar için kodu özelleştirme adımları.

IDE'nizde Wireless_Alarm taslağını açarsanız, 111. satırda göreceksiniz.

if (mySwitch.getReceivedValue() == 115166236) //Fob kol düğmesi kodu

Mevcut kodda 115166236 yazıyorsa, bu sayıyı 5. Adımda kaydettiğiniz uzaktan kumanda anahtarlığınızın kol düğmesi için ondalık kodla değiştirmeniz gerekir.

Örneğin, 5. adımda bir ondalık sayı 1154321 aldıysanız, 111 satırını şimdi okunacak şekilde değiştirirsiniz;

if (mySwitch.getReceivedValue() == 1154321) //Fob kol düğmesi kodu

125. satır için aynı prosedürü izleyin.

if (mySwitch.getReceivedValue() == 115166234) //Fob devre dışı bırakma düğmesi kodu

Adım 5'te kaydettiğiniz uzaktan anahtarlığı devre dışı bırakma düğmenizin kodunu 115166234 ile değiştirin.

Devreye almak ve devre dışı bırakmak için birden fazla uzaktan kumanda kullanmak istiyorsanız, 111'den 136'ya kadar olan satırları gerektiği kadar kopyalayıp yapıştırın, ardından değerleri diğer uzaktan kumanda anahtarlıklarınıza uyacak şekilde değiştirin, ancak en iyisi, değiştirdiğinizden emin olana kadar yalnızca bir uzaktan kumandayla başlamaktır. kroki çalışıyor.

Şimdi, 140. satırdaki çizimdeki alarm sensörlerini kodlamak için

if(ledState == HIGH && mySwitch.getReceivedValue() == 1151640) //Sinyal gönderen ofis dolabı için eylem

1151640'ı çıkarın ve alarm sensörlerinizden birinin ondalık değerini girin.

Sonra 158. satırda.

lcd.print(F("Ofis dolabı")); // hangi sensörün aktif olduğunu öğrenmek için mesajı lcd'ye yazdır (ve git ve hırsızı bul:)

Office dolabını, o sensör için LCD'de görüntülenmesini istediğiniz şekilde değiştirin. Örneğin mutfak kapısı okumasını istiyorsanız satırı şu şekilde yapın;

lcd.print(F("Mutfak Kapısı")); // hangi sensörün aktif olduğunu öğrenmek için mesajı lcd'ye yazdır (ve git ve hırsızı bul:)

İsimler 16 karakteri geçmemelidir.

165 ve 187 arasındaki satırlar, 187'nin hemen altındaki satırlara gerektiği kadar kopyalayıp yapıştırmak için bir şablondur. mySwitch.getReceivedValue() =='den sonraki sayıyı, 5. adımda kaydettiğiniz diğer sensörlerinizden birinin ondalık basamağıyla değiştirin. ve lcd.print(F("sensornamehere")); içindeki " " içindeki adı değiştirin. sensörünüze vermek istediğiniz isme.

Alarmınızı kurmak ve devre dışı bırakmak için uzak anahtarlıklar kullanmıyorsanız, 111-136 satırlarını görmezden gelebilir veya istenmeyen satırların her birinin başına // koyabilirsiniz ve Arduino bunları okumaz.

Değişikliklerinizi yaptıktan sonra dosyayı kaydetmeyi unutmayın.

Adım 7: Değiştirilmiş.ino'yu Arduino'nuza Yükleyin ve Test Edin

Değiştirilmiş.ino'yu Arduino'nuza Yükleyin ve Test Edin
Değiştirilmiş.ino'yu Arduino'nuza Yükleyin ve Test Edin
Değiştirilmiş.ino'yu Arduino'nuza Yükleyin ve Test Edin
Değiştirilmiş.ino'yu Arduino'nuza Yükleyin ve Test Edin
Değiştirilmiş.ino'yu Arduino'nuza Yükleyin ve Test Edin
Değiştirilmiş.ino'yu Arduino'nuza Yükleyin ve Test Edin

Arduino hala PC'nize USB ile bağlıyken, taslağı Arduino Kartına yükleyin. Yükleme başarıyla tamamlandığında LCD'de "Alarm On Disarmed" yazısı görünmelidir. Uzaktan kumandanızdaki kol düğmesine basın ve LCD'de "Alarm On Armed" yazısı görünmelidir ve LED'in kurulu olduğunu bildirmek için yanması gerekir, şimdi alarm kuruluyken bir sensörü tetikleyin, LCD'de Alarmı takip eden bir zaman damgası yazmalı ve Sensörün konumu, devre dışı bırakma düğmesine basmadığınız sürece bip sesi 2 dakika boyunca çalmalıdır. Bu sonucu alamıyorsanız, 5. Adımda aldığınız kodları ve önceki adımda kodda yaptığınız değişiklikleri tekrar kontrol edin, ayrıca tüm bileşenlerin kablolarını yeniden kontrol edin. LCD hiç okumuyorsa LCD modülünün arkasında kontrast ayarı vardır. Kontrast doğru bir şekilde ayarlandığında, LCD hala okunmuyorsa, çizimde 12. satırda LCD'nin Adresini 0x3f'den 0x27'ye değiştirmeyi deneyin. Burada LCD sorun giderme I2C LCD öğreticisi

Adım 8: RTC Modülünde Zamanın Ayarlanması ve Devreye Alma ve Devre Dışı Bırakma Sürelerinin Değiştirilmesi

Umarım RTC'niz zaten doğru zamanla ayarlanmıştır, ancak IDE'yi açmazsanız, 'Dosya'yı seçin ve açılır menüden "Örnekler"e tıklayın, "DS1307RTC"ye gidin ve "SetTime" taslağını seçin, taslağı bilgisayarınıza indirin. Arduino ve PC'nizdeki zamanla gerçek zamanlı saati ayarlayacaktır. Ardino'nuza Wireless_Alarm taslağını yeniden yüklemeniz gerekecek.

Sağladığım Wireless_Alarm.ino, varsayılan olarak alarmı her gece 22.15'te otomatik olarak devreye girecek ve her sabah 6.00'da devre dışı bırakacak şekilde ayarlayacaktır. Bu süreleri değiştirmek için, Çizimi 71 ve 72. satırlarda değiştirin. Saat, Alarm.alarmRepeat'ten sonra HH, MM, SS formatında parantez içindedir. bunu size uygun olan zamana değiştirin.

Alarm.alarmTekrar(6, 00, 0, SabahAlarm); // ÇÖZME zamanı

Alarm.alarmTekrar(22, 15, 0, AkşamAlarmı); // ARM zamanı

Böylece, silahsızlanma zamanını 9.15am ve silahlanma zamanını 5.30pm olarak değiştirmek için kod şöyle görünecektir.

Alarm.alarmRepeat(9, 15, 0, MorningAlarm); // DISARM zamanı

Alarm.alarmTekrar(17, 30, 0, AkşamAlarmı); // ARM zamanı

Alarmın otomatik olarak kurulmasını ve devre dışı bırakılmasını istemiyorsanız, 2 satırın önüne // koyun ve bunlar kullanılmayacaktır.

//Alarm.alarmTekrar(6, 00, 0, SabahAlarm); // ÇÖZME zamanı

//Alarm.alarmTekrar(22, 15, 0, AkşamAlarmı); //Kurma zamanı

Alarm sinyalinin çaldığı süre, 22. satır değiştirilerek değiştirilebilir.

const uzun aralık = 120000; // alarmın çaldığı süre için milis gecikme için

Aralık milisaniye cinsindendir, yani 120000 = 120 saniye, 120000'i 30000'e değiştirmek alarmın 30 saniye boyunca çalmasına neden olur.

Bir siren, flaş ışığı, yüksek sesli bipleyici vb. çalıştırmak için bir solenoid de pim 7 veya pim 9'a bağlanabilir ve yukarıda ayarlandığı gibi "aralık" için çalışacaktır. Bir Arduino pini için maksimum yükün 40mA'yı geçmemesi gerektiğini unutmayın.

9. Adım: Ek Notlar

Arduino için 433 veya 315 MHz alıcı modülü seçerken, kullanmayı düşündüğünüz alarm sensörlerine uygun frekansı seçmelisiniz. En iyi performans için küçük spiral sarmal antenli bir modül satın almanızı öneririm, alternatif olarak 17,3 mm uzunluğunda düz tel anten de performansı artırır.

16x2 LCD modülü ile burada verdiğim talimatları ve kodu kullanmak için 4 pinli I2C LCD kullanmalısınız, 16 pin standart LCD ile yapılabilir ancak buradaki kablolama veya kod ile çalışmayacaktır.

Kablosuz alarm reed anahtarları, hareket sensörleri ve uzaktan kumandalı anahtarlıklar, kullanmayı düşündüğünüz alıcıyla eşleşmesi için 433Mhz veya 315Mhz olmalı ve PT2262 veya EV1527 kodlamasını kullanmalıdır.

Alarm genişletilebilir ve uyarlanabilir, sensörler tetiklendiğinde kayıt yapmak için bir SD kart ekledim, LCD'yi yalnızca bir düğme basılı tutulduğunda yanacak şekilde değiştirdim ve 100dB siren ekledim, ancak makaleyi şu şekilde tutmak için ayrıntıları buraya eklemedim. mümkün olduğunca kısa ve basit. Umarım bu alarmda yaptığım çalışmaları paylaşmak başkalarına da yarar sağlar.

Herhangi bir soruyu cevaplamaktan mutluluk duyarım.

Teşekkürler.

Önerilen: