İçindekiler:
- Gereçler
- Adım 1: Sarf Malzemeleri
- Adım 2: Ardunio ve Modülleri Resimde Gösterildiği Gibi Bağlayın
- Adım 3: Arduino IDE'ye Gerekli Kitaplıkları Ekleyin
- Adım 4: Sonraki Sensörlerinizin Kodlarını Almamız Gerekiyor
- Adım 5: Arduino Kod Şablonu
- Adım 6: Adım 5'te Aldığınız Kodları Şablon Arduino Sketch'ine Yapıştırın
- Adım 7: Değiştirilmiş.ino'yu Arduino'nuza Yükleyin ve Test Edin
- Adım 8: RTC Modülünde Zamanın Ayarlanması ve Devreye Alma ve Devre Dışı Bırakma Sürelerinin Değiştirilmesi
- 9. Adım: Ek Notlar
Video: Mevcut Sensörleri Kullanan Arduino Kablosuz Alarm Sistemi: 9 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
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
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
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
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
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
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:
HC12 Kablosuz Modülü Kullanan Kablosuz Arduino Robotu: 7 Adım
HC12 Kablosuz Modülünü Kullanan Kablosuz Arduino Robotu: Merhaba arkadaşlar, tekrar hoş geldiniz. Bir önceki yazımda, H Köprü Devresinin ne olduğunu, L293D motor sürücü IC'sini, yüksek akım motor sürücülerini sürmek için bindirme L293D Motor sürücü IC'sini ve kendi L293D motor Sürücü Kartınızı nasıl tasarlayıp yapabileceğinizi,
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda - Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı - Rc Helikopter - Arduino Kullanan Rc Uçak: 5 Adım (Resimlerle)
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda | Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı | Rc Helikopter | Arduino Kullanan Rc Uçak: Bir Rc araba çalıştırmak için | Quadcopter | dron | RC uçak | RC tekne, her zaman bir alıcı ve vericiye ihtiyacımız var, RC QUADCOPTER için 6 kanallı bir verici ve alıcıya ihtiyacımız olduğunu ve bu tür TX ve RX'in çok maliyetli olduğunu varsayalım, bu yüzden bir tane yapacağız
Kablosuz Titreşim Sensörleri Kullanılarak Sivil Altyapıların Yapısal Sağlık Takibi: 8 Adım
Kablosuz Titreşim Sensörleri Kullanılarak Sivil Altyapıların Yapısal Sağlığının İzlenmesi: Eski bina ve sivil Altyapının bozulması ölümcül ve Tehlikeli duruma yol açabilir. Bu yapıların sürekli izlenmesi zorunludur. Yapısal sağlık izleme, değerlendirmede son derece önemli bir metodolojidir
5 Arduino ve 5 NRF24L01 Kablosuz Modül Kullanan 4 Yönlü Trafik Işık Sistemi: 7 Adım (Resimli)
5 Arduino ve 5 NRF24L01 Kablosuz Modülü Kullanan 4 Yönlü Trafik Işığı Sistemi: Kısa bir süre önce bir breadboard üzerinde tek bir trafik ışığı çiftini detaylandıran bir Eğitilebilir Tablo oluşturdum. Ayrıca bir NRF24L01 kablosuz modülünü kullanmak için temel çerçeveyi gösteren başka bir Eğitilebilir Tablo oluşturdum. beni düşündürdü! Oldukça fazla
Kablosuz Kapı Zilini Kablosuz Alarm Anahtarına veya Açma/Kapama Anahtarına Hackleyin: 4 Adım
Bir Kablosuz Kapı Zilini Kablosuz Alarm Anahtarına veya Açma/Kapama Anahtarına Hackleyin: Yakın zamanda bir alarm sistemi kurdum ve evime kurdum. Kapılarda manyetik anahtarlar kullandım ve onları tavan arasına sabitledim.Pencereler başka bir hikayeydi ve onları sert kablolamak bir seçenek değildi. Kablosuz bir çözüme ihtiyacım vardı ve bu