Havalandırma. Su temini. Kanalizasyon. Çatı. Ayarlama. Planlar-Projeler. Duvarlar
  • Ev
  • Havalandırma
  • Ev alarmı veya Arduino ile hareket sensörü ve LCD monitör kullanma. Arduino Testine dayalı ev için GSM güvenlik sistemi. Bu nasıl çalışır

Ev alarmı veya Arduino ile hareket sensörü ve LCD monitör kullanma. Arduino Testine dayalı ev için GSM güvenlik sistemi. Bu nasıl çalışır

İyi zaman günler 🙂 Bugün alarmlardan bahsedeceğiz. Hizmet pazarı, güvenlik sistemlerini kuran ve bakımını yapan şirket ve kuruluşlarla doludur. Bu şirketler alıcıya geniş seçenek alarm. Ancak bunların maliyeti ucuz olmaktan uzaktır. Ancak harcanabilecek çok fazla kişisel fonu olmayan bir kişi ne yapmalıdır? hırsız alarmı? Sanırım sonuç kendini gösteriyor - Yapmak alarm onların eller. Bu makale, Arduino uno kartını ve çeşitli manyetik sensörleri kullanarak kendi kodlu güvenlik sisteminizi nasıl oluşturabileceğinize dair bir örnek sunmaktadır.

Tuş takımından şifre girilip ‘ tuşuna basılarak sistem devre dışı bırakılabilir. * '. Mevcut şifreyi değiştirmek isterseniz ‘ tuşuna basarak bunu yapabilirsiniz. B', ve işlemi atlamak veya yarıda kesmek istiyorsanız tuşuna basarak bunu yapabilirsiniz. ‘#’. Sistemde, belirli bir işlemi gerçekleştirirken çeşitli sesler çalacak bir zil bulunur.

Sistem 'A' tuşuna basılarak aktif hale getirilir. Sistem odadan çıkmak için 10 saniye süre veriyor. 10 saniye geçtikten sonra alarm devreye girecektir. Manyetik sensörlerin sayısı kendi isteğinize bağlı olacaktır. Proje 3 sensör içermektedir (iki pencere ve bir kapı için). Pencere açıldığında sistem devreye girer ve buzzerdan gelen alarm sinyali açılır. Sistem şifre girilerek devre dışı bırakılabilir. Kapı açıldığında alarm, giren kişiye şifreyi girmesi için 20 saniye süre verir. Sistem şunu kullanır: ultrasonik sensör, hareketi algılayabilen.

Cihazın çalışmasının videosu

Zanaat Bilgilendirme/eğitim amaçlı yapılmıştır. Evde kullanmak istiyorsanız değiştirmeniz gerekecektir. Kontrol ünitesini metal bir kutuya koyun ve güç hattını olası hasarlardan koruyun.

Hadi başlayalım!

Adım 1: Neye ihtiyacımız olacak?

  • Arduino uno kartı;
  • yüksek kontrastlı LCD ekran 16×2;
  • klavye 4x4;
  • 10~20kΩ potansiyometre;
  • 3 manyetik sensör (diğer adıyla manyetik anahtarlar);
  • 3 adet 2 pinli vidalı terminal;
  • HC-SR04 ultrasonik sensör;

Arduino kullanmadan bir sistem kurmak istiyorsanız aşağıdakilere de ihtiyacınız olacak:

  • atmega328 + atmega328 mikrodenetleyici için DIP konektörü;
  • 16MHz kuvars rezonatörü;
  • 2 adet. 22pF seramik, 2 adet. 0,22 uF elektrolitik kapasitör;
  • 1 adet 10kOhm direnç;
  • DC güç girişi;
  • ekmek tahtası;
  • 5V güç kaynağı;

Ve hepsini sığdıracak bir kutu!

Aletler:

  • Plastik bir kutuyu kesecek bir şey;
  • Sıcak tutkal tabancası;
  • Matkap/tornavida.

Adım 2: Alarm Devresi

Bağlantı şeması oldukça basittir.

Küçük bir açıklama:

Yüksek kontrastlı LCD:

  • Pin1 - Vdd'den GND'ye;
  • Pin2 - Vss'den 5V'a;
  • Pin3 - Vo (potansiyometrenin merkezi terminaline);
  • Pin4 - RS'den Arduino pin 8'e;
  • Pin5 - RW'den GND'ye;
  • Pin6 - EN'den Arduino pin 7'ye;
  • Pin11 - D4'ten Arduino pin 6'ya;
  • Pin12 - D5'ten Arduino pin 5'e;
  • Pin13 - D6'dan Arduino pin 4'e;
  • Pin14 - D7'den Arduino pin 3'e;
  • Pin15 - Vee (potansiyometrenin sağ veya sol terminaline).

Klavye 4x4:

Soldan sağa:

  • Pin1'den A5'e Arduino pini;
  • Arduino'nun Pin2 ila A4 pini;
  • Arduino'nun Pin3 ila A3 pini;
  • Arduino'nun Pin4 ila A2 pini;
  • Pin5'ten Arduino pin 13'e;
  • Pin6'dan Arduino pin 12'ye;
  • Pin7'den Arduino pin 11'e;
  • Pin8'den Arduino pin 10'a.

Adım 3: Firmware

Adım, yerleşik ! tarafından kullanılan kodu sunar.

Codebender eklentisini indirin. Arduino'da "Çalıştır" butonuna tıklayın ve kartınızı bu programla flaşlayın. Hepsi bu. Az önce Arduino'nuzu programladınız! Kodda değişiklik yapmak istiyorsanız "Düzenle" düğmesini tıklayın.

Not: Arduino kartınızı programlamak için Codebender IDE'yi kullanmayacaksanız, Arduino IDE'ye ek kütüphaneler yüklemeniz gerekecektir.

Adım 4: Kendi kontrol panelinizi oluşturma

Arduino uno tabanlı yeni projenizi başarıyla birleştirip test ettikten sonra, kendi kartınızı oluşturmaya başlayabilirsiniz.

Girişimin daha başarılı bir şekilde tamamlanması için birkaç ipucu:

  • Atmega328 mikrokontrolcünün 1 (reset) ve 7 (Vcc) pinleri arasına 10kOhm'luk bir direnç monte edilmelidir.
  • 16MHz kristal, XTAL1 ve XTAL2 olarak işaretlenmiş 9 ve 10 numaralı pinlere bağlanmalıdır.
  • Rezonatörün her bir ucunu 22pF kapasitörlere bağlayın. Serbest kapasitör uçlarını mikro denetleyicinin pin 8'ine (GND) bağlayın.
  • İkinci ATmega328 güç hattını güç kaynağına, 20-Vcc ve 22-GND pinlerine bağlamayı unutmayın.
  • Mikrodenetleyici pinleri hakkında ek bilgiyi ikinci resimde bulabilirsiniz.
  • 6V'tan yüksek voltajlı bir güç kaynağı kullanmayı planlıyorsanız, regülatörün giriş ve çıkışına monte edilmesi gereken bir LM7805 doğrusal regülatör ve iki adet 0,22 uF elektrolitik kapasitör kullanmalısınız. Bu önemli! Panele 6V'tan fazla besleme yapmayın!!! Aksi takdirde Atmega mikrokontrolcünüzün ve LCD ekranınızın yanmasına neden olursunuz.

Adım 5: Devreyi kasaya yerleştirin

Bildiğiniz gibi bahara her türlü ağırlaşma eşlik ediyor ve şimdi asıl "şiddetlenme", kendisine ait olmayanı kendine mal etmek için deliklerinden sokağa doğru sürünerek çıktı. Bu, mülkünüzü koruma konusunun her zamankinden daha önemli hale geldiği anlamına geliyor.
Sitede zaten ev yapımı olanlarla ilgili birkaç inceleme var. Elbette işlevseldirler, ancak herkesin genel özellik- çıkışa bağımlılık. Bu, elektriğin halihazırda sağlandığı bir mülkte sorun değilse, prizin uzakta olduğu veya çevresinin tamamen elektriksiz olduğu bir mülkte ne olur? Farklı bir yol izlemeye karar verdim - mümkün olduğu kadar basit ve şebeke gücünden bağımsız, her zaman uyuyacak ve soyguncular içeri girdiğinde çalışacak ve sahibinin telefonunu arayacak uzun ömürlü bir cihaz toplamak için, basit bir alarm çağrısıyla sinyal verme.

Öğeleri İncele

Satın alınan:
1. Breadboard tek taraflı 5x7 cm: getinak'lar- veya fiberglas
* - fiberglas getinax'a göre çok daha kalitelidir.
2. Neoway M590 modülü - PCB üzerinde antenli -
3. Arduino Pro Mini "RobotDyn" ATmega168PA 8MHz 3.3V -
4. Lityum şarj-deşarj kontrol panosu -

Medeniyetin kalıntılarından çıkarıldı:
1. Cihaz muhafazalarından kesilmiş panolar için raflar - 6 adet.
2. Lityum düz pil 1300mAh
3. Kabloyu duvara sabitlemek için kullanılan zımbalar
4. Kırtasiye silgisi
5. Bakır tel 1,5 mm kalınlık
6. Yerel radyo pazarından cihaz muhafazası - 1.5$
7. LED çifti farklı renkler(VHS oynatıcısından alınmıştır)
8. Anten ve kapaklı düğme (Wi-Fi yönlendiricisinden alınmıştır)
9. 4 pinli terminal bloğu (dimerden alınmıştır)
10. Güç konektörü (18650 için eski bir şarj cihazından alınmıştır)
11. 6 pinli konnektör (DVD sürücüsünden alınır)
12. Olabilmek(örneğin kahveden)

Arduino Pro Mini "RobotDyn" Atmega 168PA 3.3V 8MHz

Özellikler:
Mikrodenetleyici: ATmega168PA
Doğrudan çalışma voltajı: 0,8 - 5,5 V
LE33 dengeleyici aracılığıyla çalışma voltajı: 3,3 V veya 5 V (modele bağlı olarak)
Çalışma sıcaklığı:-40°C… 105°C
Giriş voltajı: 3,35-12V (3,3V modeli) veya 5-12V (5V modeli)
Dijital Girişler/Çıkışlar: 14 (bunlardan 6'sı PWM çıkışı olarak kullanılabilir: 3, 5, 6, 9, 10 ve 11)
Analog girişler: 6
Zamanlayıcılar-sayaçlar: iki adet 8 bit ve bir adet 16 bit
Enerji Tasarruf Modları: 6
Giriş/çıkış yoluyla DC akımı: 40 mA
Flaş bellek: 16 KB (2 tanesi önyükleyici için kullanılır)
VERİ DEPOSU: 1 KB
EEPROM: 512 bayt
Bellek kaydetme/silme kaynağı: 10.000 Flaş/100.000 EEPROM
Saat frekansı: 8 MHz (3,3 V modeli) veya 16 MHz (5 V modeli)
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
I2C: A4 (SDA) ve A5 (SCL)
UART TTL'si: 0 (RX) ve 1 (TX)
Veri sayfası:

Seçim tamamen tesadüfen bu atmega'ya düştü. Enerji verimli projelerin tartışıldığı bir forumda yorumlarda 168. atmega'nın kullanılması tavsiyesi vardı.
Bununla birlikte, böyle bir kart bulmak için uğraşmam gerekiyordu, çünkü çoğu zaman tüm partiler 5V ile çalışan 16 MHz frekansında 328 atmeg ile dolduruluyordu. Projem için bu tür özellikler en başından beri gereksiz ve uygunsuzdu ve araştırma daha karmaşık hale geldi.
Sonuç olarak 3,3 voltluk bir voltajla karşılaştım Profesyonel sürüm Mini, eBay'de Atmega 168PA'da ve sadece basit bir Çin değil, aynı zamanda bir Rus geliştiricinin RobotDyn markası altında. Evet, ilk başta sizin gibi benim de biraz şüphem vardı. Ama boşuna. Proje zaten toplandığında ve AliExpress ucuz mallar için zorunlu ücretli teslimatı uygulamaya koyduğunda (bundan sonra paketler çok daha sık kaybolmaya başladı), daha sonra normal bir Pro Mini Atmega168 (PA olmadan) 3.3V 8MHz sipariş ettim. Her iki kartta da güç tasarrufu modlarını biraz denedim, her birine mikro denetleyiciyi maksimum güç tasarrufu moduna sokan özel bir taslak çizdim ve ortaya çıkan şey şu:
1) Arduino Pro Mini "RobotDyn": ~250μA
2) Arduino Pro Mini “İsim Yok”: Gerilim dengeleyiciye (RAW pin) güç sağlandığında ve LED lehimlendiğinde akım tüketimi ~3.92mA




- anladığınız gibi, enerji tüketimindeki fark neredeyse 16 kattır, bunun nedeni NoName'in Pro Mini'sinin, yalnızca MK'nin yediği Atmega168+ kombinasyonunu kullanmasıdır. 20uA akım (bunu ayrı olarak kontrol ettim), oburluğun geri kalanı AMS1117 doğrusal voltaj dönüştürücü tarafından açıklanıyor - veri sayfası yalnızca bunu doğruluyor:


RobotDyn anakartında kombinasyon biraz farklı - bu Atmega168PA+ - burada enerji tasarrufu açısından özellikleri daha hoş olan farklı bir LDO dengeleyici kullanılıyor:


Lehimini sökmedim, bu yüzden Atmega168PA'nın saf haliyle ne kadar akım tükettiğini söyleyemem. Bu durumda bana yetti ~250μA Nokia lityum piliyle çalıştırıldığında. Ancak AMS1117'yi NoName" anakartından çıkarırsanız, yukarıda söylediğim gibi normal ATmega168 saf haliyle tüketir 20uA.
Güç kaynağına sahip LED'ler keskin bir şeyle kesilebilir. Bu bir sorun değil. Stabilizatörün lehimi bir saç kurutma makinesi ile söküldü. Bununla birlikte, herkesin bir saç kurutma makinesi ve onunla çalışma becerisi yoktur, bu nedenle yukarıdaki seçeneklerin her ikisinin de var olma hakkı vardır.

Neoway M590E modülü

Özellikler:
Frekanslar: EGSM900/DCS1800 Çift bant veya GSM850/1900 veya Dört bant
Hassasiyet:-107dBm
Maksimum iletim gücü: EGSM900 Sınıf4(2W), DCS1800 Sınıf1(1W)
Tepe akımı: 2A
Çalışma akımı: 210mA
Uyku akımı: 2,5mA
Çalışma sıcaklığı:-40°C… +85°C
Çalışma voltajı: 3,3V…4,5V (önerilen 3,9V)
Protokoller: GSM/GPRS Faz2/2+, TCP/IP, FTP, UDP vb.
İnternet: GPRS SINIF 10
Veri sayfası:

Piyasada bulunabilecek en ucuz GSM modülü genellikle ikinci eldir ve her zaman ekipmandan usta Çinli eller tarafından lehimlenmez. Neden her zaman hünerli olmuyorsunuz? Evet, hepsi saç kurutma makinesiyle lehim sökme nedeniyle - çoğu zaman insanlar bu modülleri artı ve eksi kısa devre ile alırlar, bu da çalışamamalarının nedenlerinden biridir. Bu nedenle ilk adım, güç kontaklarında kısa devre olup olmadığını kontrol etmektir.

Not. Bence ayrı bir önemli noktaya dikkat çekmek isterim ki, bu modüller anten için yuvarlak bir koaksiyel konektörle birlikte gelebilir, bu da daha ciddi bir anteni ayrıca sipariş etmenize ve onu tefle dans etmeden modüle bağlamanıza olanak tanır. Veya bu konnektör olmadan da gelebilirler. Bu en ucuz setlerden bahsedersek. Mutlu bir kazaya güvenmek istemiyorsanız, bu konektörün bulunduğu + kitin bir textolite kartı üzerinde harici bir anten içerdiği biraz daha pahalı setler vardır.

Bu modül aynı zamanda güç kaynağı konusunda da kaprislidir, çünkü zirvede 2A'ya kadar akım tüketir ve kitte bulunan diyot, voltajı 5V'tan düşürmek için tasarlanmış gibi görünmektedir (bu nedenle kartın kendisinde 5V yazıyor) ) 4,2V'a kadar, ancak insanların şikayetlerine göre değerlendirildiğinde değerinden daha fazla sorun yaratıyor.
Diyelim ki bu modülü zaten monte ettiniz ve bir diyot yerine bir jumper lehimlendi, çünkü ona 5V'luk bir voltaj vermeyeceğiz, ancak onu doğrudan izin verilen aralıktaki bir lityum pilden çalıştıracağız. 3,3-4,2V voltaj sınırları.
Bir şekilde bilgisayara bağlamak ve işlevselliği kontrol etmek gerekli olacaktır. Bu durumda, önceden kendiniz için bir tane satın almak daha iyidir - bunun aracılığıyla modül ve Arduino kartlarıyla UART seri arayüzü (USART) aracılığıyla iletişim kuracağız.
Bağlantı aşağıdaki resimde gösterilmiştir (elimden geldiğince çizdim):
TX modem >>> RX dönüştürücü
RX modem<<< TX конвертера
Pil artı - Modem artı
Lityum pilin negatifi modemin GND'si ve dönüştürücünün GND'si ile birleştirilir
Modemi başlatmak için BOOT pinini 4,7 kOhm'luk bir direnç üzerinden GND'ye uygulayın.


Bu arada programı bilgisayarınızda çalıştırın. Ayarlara dikkat edin:
1) TTL dönüştürücünün bağlı olduğu COM portunu seçin, benim durumumda COM4, ​​sizinki farklı olabilir.
2) Veri aktarım hızını seçin. (Burada bir nüans var, çünkü modüllerin kendileri farklı hızlar için yapılandırılabilir, çoğunlukla 9600 baud veya 115200 baud. Burada onu ampirik olarak seçmeniz, biraz hız seçmeniz, bağlanmanız ve çatlaklar gelirse AT komutunu göndermeniz gerekir. yanıt olarak bağlantıyı kesecek, farklı bir hız seçecek ve yanıtı tamam olana kadar bu şekilde devam edecektir.
3) Paket uzunluğunu (bu durumda 8 bit), eşlik biti devre dışı (yok), durdurma bitini (1) seçin.
4) Kutuyu işaretlediğinizden emin olun +CR ve ardından modüle gönderdiğimiz her komutun sonuna otomatik olarak bir satırbaşı karakteri eklenecektir - modül yalnızca sonunda bu karakter bulunan komutları anlar.
5) Bağlantı, burada her şey açık, tıklayın ve modülle çalışabiliriz.

“Bağlantı” seçeneğine tıklarsanız ve ardından 4,7K direnç üzerinden BOOT'u toprağa uygulayarak modülü başlatırsanız, terminalde önce “MODEM:STARTUP” yazısını, ardından bir süre sonra “+PBREADY” yazısını görüntüleyecektir, boş da olsa telefon numarasının kitap okunduğu anlamına gelir:

Bu spoylerin altında örneklerle birlikte AT komutları bulunmaktadır

AT komutunu yazdırıyoruz - yanıt olarak, yankı modu etkinleştirildiği için modül bize komutumuzu gönderir ve Tamam:

AT+CPAS komutu ile modemin durumunu kontrol edelim - yanıt yine bizim komutumuz +CPAS: 0 ve OK oluyor.
0, modülün çalışmaya hazır olduğu anlamına gelir ancak duruma göre başka numaralar da olabilir, örneğin 3 – gelen çağrı, 4 – bağlantı modunda, 5 – uyku modunda. 1 ve 2 ile ilgili bilgi bulamadım.

UART aracılığıyla veri aktarım hızının değiştirilmesi AT+IPR=9600 komutuyla yapılır - bu, 9600 hıza ihtiyacınız varsa geçerlidir. Başka bir şey varsa, örneğin AT+IPR=19200 veya AT+IPR=115200.

Ağ sinyalini kontrol edelim. AT+CSQ, yanıt gelir +CSQ: 22.1 - ondalık noktadan önceki değer 0... 31 (115... 52 dBl) aralığına sahiptir - bu sinyal seviyesidir, ne kadar yüksek olursa o kadar iyidir. Ancak 99 onun yokluğu anlamına gelir. Ondalık noktadan sonraki değer sinyal kalitesi 0... 7'dir - burada durum tam tersidir, sayı ne kadar düşükse o kadar iyidir.

Yinelenen komutların karışmaması için ATE0 komutunu göndererek yankı modunu devre dışı bırakalım. Bu mod ATE1 komutu kullanılarak tekrar açılır.

Ürün yazılımı sürümünü +GETVERS adresinde görüntüleyin



Bunlar ve diğer birçok komut görüntülenebilir

Panoları hizalama

Pro Mini'yi devre tahtasına lehimlemek zor değilse, GSM modülünde durum biraz daha karmaşıktır çünkü temas tarağı yalnızca bir tarafta bulunur ve yalnızca onu lehimlerseniz, tahtanın diğer tarafı havada asılı kalır. Daha sonra tahtanın üç köşesine yakın bir yerde tekrar 3 delik daha açmak zorunda kaldım. Daha sonra her bir deliğin etrafındaki alanlar maskelendi. Kolaylık sağlamak için, taraktan bağlantısı kesilmiş kabloları lehimsiz bir devre tahtasına (beyaz) yerleştirdim ve üzerlerine GSM modül kartını takarak normal şekilde lehimledim:

Daha sonra, benim durumumda, tahtanın kenarından "Çin Malı" yazan "I" harfinin üzerine bir delik daha açmak zorunda kaldım.


Temelde GND olan eklenen kontağın Pro Mini kartının GND'sinin yanına yerleştirildiği ve böylece GSM modülü ile Pro Mini'nin topraklarını bir damla lehim (uzun uç) ile bağlamanın mümkün olduğu ortaya çıktı. ortadaki pin ve sağındaki Pro Mini pini) - Bunları oklarla işaretledim. Elbette biraz çarpık çıktı ama artık sağlam bir şekilde duruyor:



Kartlar arasında bir miktar boşluk kaldı - içine önceden lehimlenmiş microUSB konnektörü ve lehimli telleri olan bir lityum deşarj şarj kontrol panosu yerleştirdim.

Eşarp oraya çok sıkı oturuyor ve yan taraftaki LED'lerin parıltısı kasadaki küçük bir delikten açıkça görülebiliyor.



Kart rafları

Tahtayı kasanın içine güvenli bir şekilde monte etmek için bunun nasıl uygulanabileceğini düşünerek birkaç gün harcamam gerekti. Sıcakta eriyen yapıştırıcı seçeneği birkaç nedenden dolayı dikkate alınmadı - düşebilir, deforme olabilir ve en önemlisi yapının sökülmesi zor olabilir.
Burada en basit ve en doğru seçeneğin doğal olarak bende olmayan standları kullanmak olacağı sonucuna vardım. Bununla birlikte, kendinden kılavuzlu vidalar için dişli uzun bir standın kesildiği birkaç çalışmayan şarj cihazı vardı. Her bir stand ikiye kesilmiş ve yaklaşık 9,5 mm'ye kadar eğelenmiştir - bu yükseklikte, panelin altında bulunan pilin yaklaşık 2 mm'lik yeterli bir marjı vardır - bu, panelin lehimli temas noktalarının uçlarıyla birlikte yapılması için yapılır. dokunmayın ve sabitlemek için aralarına bir parça köpük koymak mümkün olsun.
Tahtayı doğrudan kasaya takmaya gelince, burada bir kahve kutusundan dört şerit kestim, uçlarında bir delik açtım ve ardından bunları raflara vidalanan aynı vidalarla sabitledim. Aşağıdaki fotoğrafta neye benzediğini görün.
Bir sonraki adım, tahtanın diğer tarafına, yani üstüne birkaç stand vidalamaktır, böylece kasa kapatıldığında kapak bu standların üzerine hafifçe yaslanarak ek sabitleme oluşturur. Kısa bir süre sonra, bu amaçla, bir Sovyet propaganda radyosundan bir muhafazayla karşılaştım (daha önce bulunmuş olsaydı, tüm standları buradan alırdım), burada birkaç aşağı yukarı uygun yükseklik buldum, ancak önce kendinden kılavuzlu vidaların altında bir matkapla ortalarını deldim Daha sonra onları kestim ve fazlalıkları gidererek bir eğe ile bitirdim. Burada bir incelik buldum - fotoğrafta bir beyaz standın getinaks kartına kenardan vidalandığını, diğer beyaz standın ise doğrudan modül kartına vidalandığını görebilirsiniz, çünkü modem kartı bir kenardan alt paneli tamamen kaplıyor ve karşı kenardan - tam tersine - alt kısım zaten dışarı bakıyor. Aynı zamanda vida başlarının serbestçe geçebilmesi için her iki panele de ilave deliklerin açılması gerekiyordu.
Ve son olarak, tahtanın her zaman gövdeye paralel olduğundan emin olmak için kalır - telleri ve kabloları duvara sabitlemek için kullanılan zımbalar bu görev için mükemmeldir; daha önce çivileri onlardan çıkarmıştım. Braketler içbükey tarafı ile herhangi bir ek cihaz olmadan tahtaya iyi yapışıyor, tek şey SIM kartın sağında, braketin genişliği aşırı çıktı ve ben de onu zımparalamak zorunda kaldım.
Tüm ayrıntılar gözle ve deneysel olarak ayarlandı; aşağıda yukarıdakilerin hepsinin bir fotoğrafı bulunmaktadır:



Konektörler. LED'ler. Düğme.

Tarağım bittiği için, DVD sürücü kartındaki 6 pinli konnektörü çıkarmak zorunda kaldım, bunu daha sonra Pro Mini'ye lehimledim, bu, kartın yanıp sönme kolaylığı için. Yakınlarda lityum şarj etmek için yuvarlak bir konektörü (Nokiev 3,5 mm) lehimledim.

6 pimli konektörün gövdesi, kenarları gövdenin biraz üzerine çıktığı için bir eğe ile hafifçe tamamlandı. Şarj soketi kasanın duvarına mükemmel şekilde oturur.

Kartın diğer tarafına, cihazı yeniden başlatmak için bir düğme ve aygıt yazılımında hata ayıklamak için iki LED lehimledim - kırmızı LED GSM modülüne bağlı, ikinci yeşil LED Pro Mini'nin 10. pinine bağlı - bu programda hata ayıklamak benim için daha kolay.

Pil modifikasyonu

Nokia telefonlarındaki düz Nokia bataryası, 18650'den daha az yaygın değildir, ancak çoğu, bataryanın derinliklerine gömülü olan kontakları bağlamanın zorluğu nedeniyle onu kullanmayı reddediyor. Bunları lehimlemek istenmez, bu nedenle bunların önerdiği yöntemin kullanılmasına, yani bir ofis silgisinden ve bakır telden (1,5 mm kalınlığında) kendiniz bir kontak bloğu yapılmasına karar verildi.
İlk önce, uçları önceden soyulmuş iki telli bir silgi parçasını deldim ve bunları pil kontaklarına, aralarındaki mesafe çakışacak şekilde ayarladım,
Uçlarını büktüm, havyayla kalayladım ve uzun uçlarından hafifçe geriye doğru çektim, böylece ortaya çıkan temas noktaları silgiye gömüldü.



Pille deneme:

Kontak bloğunu bir lastik bantla sabitleyebilir veya mavi elektrik bandıyla sarabilirsiniz, ben de bunu yaptım.

Toplantı.

İşin esas kısmı bitti, geriye sadece montajı ve kayıt altına alınması kaldı.
Daha sonra kasanın içinde hareket etmesin diye pil ile kart arasına bir parça köpük kauçuk koydum. Ayrıca modüle güç sağlamak için 2200 uF'lik bir kapasitör lehimledim.

Şarj bağlandığında:

Çerçeve. Harici terminal bloğu.

95x60x25 mm ölçülerinde, neredeyse bir sigara paketi büyüklüğündeki kasa, yerel radyo pazarında dolara çevrildiğinde yaklaşık 1,5 dolara satılıyordu. Üzerine birkaç delik açtım. İlk olarak çalışmayan bir dimmerden alınan 4 pinli terminal bloğu için.
Ara parçalarla iki dış kontağı cıvatalardan tamamen kurtardım, daha uzun cıvatalar için tüm terminal bloğunu gövde üzerinde tutacak delikler açtım. Kasanın kendisinde, elbette, iki dış delik büyük olacak ve ortadaki iki delik daha küçük olacak - içlerinden geçen kontaklara sahip olacak, bunlardan biri VCC Pro Mini'ye ve ikinci kontak pime bağlı olacak 2.

Delik açmak, ilk bakışta basit bir iş olsa da, yine de daha az emek yoğun değildir, gözden kaçırılması çok kolaydır, bu yüzden bunu önce daha küçük çaplı bir matkapla, sonra daha büyük bir matkapla yaptım.

İncelik düğmesi için üst kısmı hafif içbükey olan bir kapak seçtim, böylece kasadaki dar delikten bir kibrit veya ataşla kolayca ulaşabilecektim.

USB-TTL dönüştürücü kablosunun bağlı olduğu bir kutudaki kart:

Anten hakkında.
İnceleme boyunca fark etmiş olabileceğiniz gibi, farklı ev yapımı antenleri denedikçe anten sürekli değişiyordu. Başlangıçta modül kartında yuvarlak bir koaksiyel konektör vardı, ancak beşinci kez harici bir anten olarak kullanıldığında parçalandı, bu yüzden dayanıksız olduğunu unutmayın. Sonuç olarak, PCB üzerindeki anteni eski yönlendiriciden söktüm ve modül kartına lehimledim çünkü... ağı yay ve telden biraz daha iyi yakalar.

Tamamen monte edilmiş, şarj cihazı bağlıyken şuna benzer:

Test. Bu nasıl çalışır:

Antenlerle yapılan testlerin yanı sıra -15 derecelik don koşullarında alarmın dışarıda nasıl davranacağını da kontrol ettim. Bunu yapmak için, tüm iç kısımları bir kaba koydum ve gece boyunca balkonda bıraktım, alarm başlamadı, nedeninin genel olarak açık olduğu ortaya çıktı - lityum dondan hoşlanmıyor. Bu, pili evde bıraktığım ve kartı uzun kablolar aracılığıyla dışarıya çıkardığım ve aynı donda bir gün boyunca bu şekilde bıraktığım başka bir testle doğrulandı - sanki hiçbir şey olmamış gibi çalıştı. Öte yandan alarmın çalışmaması garip olurdu çünkü... Atmega, modüller ve kuvars için veri sayfalarında izin verilen çalışma sıcaklıkları -40 dereceye kadardır.

Çalışma prensibi harici bir kesme kullanılarak düzenlenir, başlangıçta pin 2 VCC'ye kapatılır ve böylece mantıksal 1 pinde tutulur ve kontrolör uykuda olur. Kontak kesildiğinde ve pin 2'de 0 göründüğünde, mikrodenetleyici uyanır, 3. pini (modemin BOOT'unun bir direnç aracılığıyla bağlandığı) toprağa indirir - modül başlar, MK periyodik olarak modül hazırdır ve ağı yakaladığı anda derhal sahibinin kodda belirtilen telefon numarasına çağrı gönderir. Çağrıyı reddettikten sonra cihaz, artık sonsuz çağrı göndermeden kapanıyor; bu, birçok Çin alarm sisteminin sorunudur.

Ek Bilgiler

#katmak #katmak // UART yazılım kütüphanesi SoftwareSerial gsm(7, 6); // RX(7), TX(6) void uyandırma()() // boş kesme işleyicisi ///////////////////////////// //////////////// void gsmOFF())( // PORTD|=(1<<3); // ВЫКЛЮЧЕНИЕ МОДУЛЯ _delay_ms(10); // gsm.println("AT+CPWROFF"); // ПЕЧАТАЕМ КОМАНДУ OFF PORTB &=~ (1<<2); // выключить LED 10 } // //========================================= void gsmON(){ // PORTD|=(1<<6); // 6-му порту (TX) назначить 1 PORTD &= ~(1<<3); // ЗАПУСК МОДУЛЯ _delay_ms(10); // while(!gsm.find("+PBREADY")); // ждём прочтения тел. книги PORTB |= (1<<2); // включить LED 10 _delay_ms(100); // while(1){ // gsm.println("AT+CREG?"); // проверяем в сети ли модуль if (gsm.find("0,1")) break; // если сеть есть, выходим из цикла _delay_ms(400); // проверка раз в 0,4 сек } // } // /////////////////////////////////////////// // void sleepNow(){ // функция засыпания ADCSRA = 0x00; // отключить подсистему АЦП (экономия 140 мкА) PORTD&=~(1<<6); // в вывод TX поставить 0 _delay_ms(100); // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна PWR_DOWN sleep_enable(); // включение сна attachInterrupt(0, wakeUp, LOW); // включить прерывания sleep_mode(); // sleep_disable(); // detachInterrupt(0); // отключить прерывания } void setup(){ gsm.begin(9600); // скорость работы UART DDRD = B01001000; // 3-й и 6-й выводы на выход DDRB |= (1<<2); // вывод 10 на выход gsmON(); // запуск модуля для теста gsmOFF(); // выключаем модуль } void loop(){ if (!(PIND&(1<<2))){ // если на 0-ом прерывании появился 0 gsmON(); gsm.println("ATD+79xxxxxxxxx;"); // отзваниваемся, в ответ приходит OK и CONNECT _delay_ms(100); if (gsm.find("OK")) while(1){ // ожидание сброса вызова gsm.println("AT+CPAS"); // при каждой итерации опрашиваем модуль if (gsm.find("0")) break; // если 0, то выходим из цикла while _delay_ms(100); // проверка раз в 0,1 сек } for (char i=0; i<14; i++){ PORTB|=(1<<2); // LED 10 ON _delay_ms(200); PORTB&=~(1<<2); // LED 10 OFF _delay_ms(200); } gsmOFF(); // выключить модуль _delay_ms(10); while(1); // блокируем программу } else { sleepNow(); // укладываем контроллер спать } }

Devre şeması (şarj-deşarj kontrol panosu olmadan)



Sonuçlar ve düşünceler. Planlar.

Alarm kulübede kullanılıyor, işten memnunum, ancak AVR üzerinde daha fazla çalışma yapıldıkça daha fazla değişiklik için giderek daha fazla fikir ortaya çıkıyor. Sahte dil kablolaması ile Arduino beni gerçekten üzdü, çünkü... Çalışmada hoş olmayan bir an keşfedildi. Bağlantı noktası işlevlerini kullandığımda digitalWrite(); veya pinMode(); - bazı nedenlerden dolayı GSM modülü çok sık dondu. Ancak bunları DDRB|=(1 gibi hilelerle değiştirmeye değerdi.<Yalnızca bağlantı noktalarına doğrudan erişim işlemi, cihazın amaçlandığı gibi çalışmasını sağladı.

Enerji tasarrufu konusunda...
Monte edilen cihaz dört ay boyunca şarj edilmeden çalıştı ve çalışmaya devam ediyor, ancak "uyku" demek daha doğru olur. Bu, beyaz düğme aracılığıyla yeniden başlatılarak kontrol edilebilir. 250 μA güç tüketimi (LE33 sabitleyici aracılığıyla) ve ~1430 mAh pil ile, sorun olmasa da, pilin yeniliği nedeniyle bunu 1000 mAh'a yuvarlayacağız, cihazın uyuyabileceği ortaya çıkıyor yaklaşık 5,5 ay şarj etmeden. Dengeleyiciyi hala çıkarırsanız, çalışma süresi güvenli bir şekilde 10 kat artırılabilir. Ancak benim durumumda buna gerek yok çünkü yine de SIM karttaki bakiyeyi üç ayda bir harcamanız gerekiyor, aynı zamanda cihaz kontrol edilip şarj edilebilir.
İncelemede verilen enerji tasarrufu örneği sınırdan uzaktır çünkü veri sayfasındaki bilgilere göre mikro denetleyicinin saat frekansını (ve bu sigortalar takılarak yapılır) 1 MHz'e düşürebilirsiniz ve 1,8 V voltaj uygularsanız aktif modda tüketim 1 μA çubuğunun altına düşecektir. . Çok güzel! Ancak MK dahili RC osilatöründen saatlenirse, o zaman başka bir sorun ortaya çıkacaktır - özellikle kontrolör ısıtıldığında veya soğutulduğunda UART havası çöp ve hatalarla tıkanacaktır.

Tamamlandığında...
1) Kırılacak sıradan bir tel pek uygun değil, bir Hall sensörü ve bir kamış anahtarıyla deneme yapmayı planlıyorum, ancak ikincisi hakkında bunun çok güvenilir olmadığını çünkü içindeki kontakların yapışabileceğini söylüyorlar.
2) Bir bilgisayarın katılımı olmadan ve yanıp sönmeden "sahip numarasını" değiştirme yeteneğinin eklenmesi güzel olurdu. EEPROM ile çalışmanız gerekecek.
3) Bekçi zamanlayıcısındaki kesintileri deneyin, ancak sadece merak uğruna değil, mikro denetleyicinin periyodik olarak kendi kendine uyanması, akü voltajını ölçmesi ve pilin ne kadar düşük olduğunun farkında olmak için ortaya çıkan değeri SMS yoluyla göndermesi için.
4) Bir güneş paneli, cihazı yeniden şarj etme ihtiyacını tamamen ortadan kaldırabilir; bu özellikle düşük kapasiteli piller için geçerli olacaktır.
5) Uzun zamandır incelemelere göre dona karşı iyi dayanabilen LiFePo4 piller satın almak istiyordum, ancak uygun bir parti ararken bahar çoktan sessizce gelmişti.
6) Estetik bileşen üzerinde çalışın

Hangi Pro Mini'yi satın almalısınız?
Saç kurutma makineniz yoksa Pro Mini “RobotDyn” Atmega168PA 3.3V, LED'i keskin bir şeyle kaldırın ve ~250 µA elde edersiniz.
Bir saç kurutma makineniz varsa, herhangi bir kartı, dengeleyiciyi ve güç kaynağı için LED'i lehimleyin - ~ 20 µA akım tüketimi elde edersiniz.

Şimdilik bu kadar, umarım inceleme ilginç ve faydalı olmuştur.

+174 almayı planlıyorum Favorilere ekle İncelemeyi beğendim +143 +278

Bu proje, hırsızların sızma girişimlerini önleyecek/kontrol edecek bir sistemin geliştirilmesi ve iyileştirilmesiyle ilgilidir. Geliştirilen güvenlik cihazı, GSM (Mobil İletişim için Küresel Sistem) teknolojisini temel alan gömülü bir sistem (açık kaynak yazılım kullanan bir donanım mikro denetleyicisi ve bir GSM modemi içerir) kullanır.

Eve bir güvenlik cihazı kurulabilir. Hırsız alarmı arayüz sensörü aynı zamanda kontrolör tabanlı güvenlik sistemine de bağlıdır.
Sızma girişiminde bulunulduğunda sistem, daha ileri işlemler için sahibinin cep telefonuna veya önceden yapılandırılmış herhangi bir cep telefonuna bir uyarı mesajı (örneğin sms) gönderir.

Güvenlik sistemi bir Arduino Uno mikrokontrolcüsü ve GSM/GPRS tabanlı standart bir SIM900A modemden oluşur. Tüm sistem herhangi bir 12V 2A güç kaynağı/pil ile çalıştırılabilir.

Aşağıda Arduino tabanlı bir güvenlik sisteminin şeması bulunmaktadır.

Sistemin işleyişi oldukça basittir ve açıklama gerektirmez. Sisteme güç verildiğinde bekleme moduna geçer. J2 konnektör pinleri kısa devre yaptığında gerekli cep telefonu numarasına önceden programlanmış bir uyarı mesajı gönderilir. Herhangi bir izinsiz giriş dedektörünü (ışık koruması veya hareket sensörü gibi) J2 giriş konektörüne bağlayabilirsiniz. J2 konnektörünün 1 numaralı pimindeki aktif-düşük (L) sinyalinin hırsız alarmını etkinleştireceğini unutmayın.

Ayrıca sisteme opsiyonel olarak “çağrı-alarm” cihazı eklenmiştir. Kullanıcı S2 düğmesine bastığında (veya başka bir elektronik ünite alarm başlattığında) telefon çağrısını etkinleştirir. “Ara” düğmesine (S2) bastıktan sonra, başka bir S3 düğmesine, yani “bitirme” düğmesine basılarak çağrı iptal edilebilir. Bu seçenek izinsiz giriş durumunda bir "cevapsız çağrı" alarmı oluşturmak için kullanılabilir.

Devre çok esnektir, bu nedenle herhangi bir SIM900A modemi (ve tabii ki Arduino Uno kartını) kullanabilir. Montaja başlamadan önce lütfen modem belgelerini dikkatlice okuyunuz. Bu, sistemin üretim sürecini daha kolay ve daha keyifli hale getirecektir.

Radyo elemanlarının listesi

Tanım Tip Mezhep Miktar NotMağazanot defterim
Arduino kurulu

Arduino Uno

1 Not defterine
GSM/GPRS modemiSIM900A1 Not defterine
IC1 Doğrusal regülatör

LM7805

1 Not defterine
C1 100uF 25V1 Not defterine
C2 Elektrolitik kapasitör10uF 16V1 Not defterine
R1 Direnç

1 kOhm

1 Not defterine
LED1 NEDEN OLMUŞ 1 Not defterine
S1 DüğmeSabitleme ile1

Kızılötesi (IR) sensörler genellikle mesafeleri ölçmek için kullanılır ancak nesneleri algılamak için de kullanılabilirler. Birkaç IR sensörünü Arduino'ya bağlayarak bir güvenlik alarmı oluşturabiliriz.

Gözden geçirmek

Kızılötesi (IR) sensörler genellikle mesafeleri ölçmek için kullanılır ancak nesneleri algılamak için de kullanılabilirler. IR sensörleri bir kızılötesi verici ve bir kızılötesi alıcıdan oluşur. Alıcı herhangi bir yansımayı algılarken verici kızılötesi radyasyon darbeleri yayar. Alıcı bir yansıma tespit ederse, bu, sensörün önünde belirli bir mesafede bir nesne olduğu anlamına gelir. Yansıma yoksa nesne de yoktur.

Bu projede kullanacağımız IR sensörü belli bir aralıktaki yansımayı tespit ediyor. Bu sensörler, IR ışığının sensöre geri döndüğü açıyı algılayan küçük bir doğrusal yük bağlantılı cihaza (CCD) sahiptir. Aşağıdaki şekilde görüldüğü gibi sensör uzaya kızılötesi bir darbe gönderiyor ve sensörün önüne bir nesne çıktığında darbe, nesne ile sensör arasındaki mesafeyle orantılı bir açıyla sensöre geri yansıyor. Sensör alıcısı açıyı algılayıp bildirir ve bu değeri kullanarak mesafeyi hesaplayabilirsiniz.

Arduino'ya birkaç IR sensörü bağlayarak basit bir güvenlik alarmı yapabiliriz. Kapı çerçevesine sensörler takacağız ve sensörleri doğru şekilde hizalayarak birisinin kapıdan içeri girdiğini algılayabileceğiz. Bu gerçekleştiğinde IR sensörünün çıkışı değişecektir ve bu değişikliği Arduino kullanarak sensörlerin çıkışını sürekli okuyarak tespit edeceğiz. Bu örnekte IR sensörü çıkış değeri 400'ü aştığında kapıdan bir nesnenin geçtiğini biliyoruz. Bu olduğunda Arduino bir alarm tetikleyecektir. Alarmı sıfırlamak için kullanıcı bir düğmeye basabilir.

Aksesuarlar

  • 2 x IR mesafe sensörü;
  • 1 x Arduino Mega 2560;
  • 1 x zil;
  • 1 x düğme;
  • 1 x 470 Ohm direnç;
  • 1 x NPN transistörü;
  • atlayıcılar.

Bağlantı şeması

Bu projenin şeması aşağıdaki şekilde gösterilmektedir. İki IR sensörünün çıkışları A0 ve A1 pinlerine bağlanır. Diğer iki pin ise 5V ve GND pinlerine bağlanır. 12 voltluk zil, bir transistör aracılığıyla pim 3'e bağlanır ve alarmı susturmak için kullanılan düğme, pim 4'e bağlanır.


Aşağıdaki fotoğraf, bu deney için sensörleri kapı çerçevesine nasıl yapıştırdığımızı göstermektedir. Elbette düzenli kullanırsanız sensörleri farklı şekilde kurarsınız.


Kurulum

  1. Arduino kartının 5V ve GND pinlerini sensörlerin power ve GND pinlerine bağlayın. Ayrıca onlara harici güç de sağlayabilirsiniz.
  2. Sensörlerin çıkış pinlerini Arduino kartının A0 ve A1 pinlerine bağlayın.
  3. Arduino'nun pin 3'ünü 1k ohm'luk bir direnç aracılığıyla transistörün tabanına bağlayın.
  4. Transistörün toplayıcısına 12V uygulayın.
  5. 12 voltluk zilin pozitif ucunu emitöre, negatif ucunu ise topraklama barasına bağlayın.
  6. Bir düğme aracılığıyla pin 4'ü pin 5V'ye bağlayın. Güvenlik nedeniyle, büyük akım akışını önlemek için, bunu ek bir küçük direnç aracılığıyla yapmak her zaman daha iyidir.
  7. Arduino kartınızı bilgisayarınıza USB kablo ile bağlayın ve Arduino IDE’yi kullanarak programı mikrodenetleyiciye yükleyin.
  8. Arduino kartına bir güç kaynağı, pil veya USB kablosu kullanarak güç verin/

Kod

const int buzzer=3; // pin 3, buzzer const int butonu=4'ün çıkışıdır; // pin 4, butonun girişidir void setup() ( pinMode(zil, OUTPUT); // pin 3'ü çıkışa ayarlayın pinMode(buton, INPUT); // pin 4'ü girişe ayarlayın) void loop() ( / / her iki sensörün çıkışını okuyun ve sonucu eşik değeriyle karşılaştırın int sensör1_değeri = analogRead(A0); int sensör2_değeri = analogRead(A1); if (sensör1_değeri > 400 || sensör2_değeri > 400) ( while(true) ( ​​​digitalWrite(zil, YÜKSEK) ; // alarmı aç if(digitalRead(buton) == YÜKSEK) break; ) else ( digitalWrite(zil, DÜŞÜK); // alarmı kapat ))

Video

Ana modüller– GSM modülü SIM800L, Arduino Nano (herhangi bir Uno vb. kullanabilirsiniz), düşürücü kart, cep telefonu pili.

Pirinç. 1. Arduino'daki güvenlik alarm modüllerinin yerleşimi

Alarm üretimi

Gerekirse modülleri değiştirmenize olanak sağlayacak pedler aracılığıyla bir devre tahtasına monte ediyoruz. SIM800L ve Arduino Nano üzerindeki anahtardan 4,2 volt güç vererek alarmı açın.



İlk döngü tetiklendiğinde sistem önce ilk numarayı arar, ardından aramayı bırakır ve ikinci numarayı tekrar arar. İkinci numara, birincisinin aniden bağlantısının kesilmesi vb. durumlara karşı eklenmiştir. İkinci, üçüncü, dördüncü ve beşinci döngüler tetiklendiğinde, tetiklenen bölgenin numarasını içeren bir SMS ayrıca iki numaraya da gönderilir. İlgilenenler için şeması ve krokisi videonun altındaki açıklamadadır.
Tüm elektronikleri uygun bir muhafazaya yerleştiriyoruz.



5 kabloya ihtiyacınız yoksa 5V Arduino pinini gereksiz girişlere bağlayın. Elektrik kesintisi sırasında bile cihazın birkaç gün boyunca bağımsız olarak çalışmaya devam etmesini sağlayacak 5 döngülü ve bataryalı GSM alarm sistemi. Bunlara herhangi bir güvenlik kontak sensörünü, röle kontaklarını vb. bağlayabilirsiniz. Sonuç olarak, SMS göndermek ve 2 numarayı aramak için basit, ucuz, kompakt bir güvenlik cihazı elde ederiz. Bir yazlık evi, daireyi, garajı vb. korumak için kullanılabilir.

Videoda daha fazla ayrıntı

Konuyla ilgili en iyi makaleler