Arduino tabanlı kablosuz alarm sistemi. Ev alarmı veya Arduino ile hareket sensörü ve LCD monitör kullanmak Montaj için ne kullanacağız

Son on yılda araba hırsızlıkları dünyada işlenen suçların yapısında en önemli yerlerden birini işgal etti. Bunun nedeni, bu hırsızlık kategorisinin toplam suç sayısına göre özgül ağırlığından değil, arabaların yüksek maliyetinden kaynaklanan hasarın öneminden kaynaklanmaktadır. 90'lı yılların sonunda araç hırsızlığıyla mücadele alanında alınan önlemlerin zayıf etkinliği, bu suçların işlenmesinde uzmanlaşmış ve sahip olan istikrarlı grupların oluşmasına yol açtı. ayırt edici özellikleri Organize suç; Muhtemelen "siyah otomobil işi" terimini duymuşsunuzdur. Avrupa ülkelerinin araç filosu her yıl suç saldırılarına konu olan araçların yaklaşık %2'sinden yoksundur. Bu nedenle Arduino Uno'yu temel alarak arabama GSM alarmı yapma fikri aklıma geldi.

Hadi başlayalım!

Neyden toplayacağız?

Sistemimizin kalbini seçmemiz gerekiyor. Bana göre böyle bir sinyalleme için Arduino Uno'dan daha iyi bir şey yok. Ana kriter yeterli sayıda “pim” ve fiyattır.


Arduino Uno'nun Temel Özellikleri

Mikrodenetleyici - ATmega328
Çalışma voltajı - 5 V
Giriş voltajı (önerilen) - 7-12 V
Giriş voltajı (sınır) - 6-20 V
Dijital Giriş/Çıkış - 14 (6 tanesi PWM çıkışı olarak kullanılabilir)
Analog girişler - 6
Giriş/çıkış üzerinden sabit akım - 40 mA
Çıkış 3,3V - 50mA için sabit akım
Flash bellek - 32 KB (ATmega328), bunun 0,5 KB'si önyükleyici için kullanılır
RAM - 2 KB (ATmega328)
EEPROM-1 KB (ATmega328)
Saat frekansı - 16 MHz


Uyar!

Artık bir GSM modülü seçmeniz gerekiyor çünkü alarm sistemimizin araç sahibini bilgilendirebilmesi gerekiyor. Yani "Google"a ihtiyacınız var... Burada mükemmel bir sensör - SIM800L, boyut tek kelimeyle harika.


Düşündüm ve Çin'den sipariş verdim. Ancak her şeyin o kadar da pembe olmadığı ortaya çıktı. Sensör, SIM kartı ağa kaydetmeyi reddetti. Mümkün olan her şey denendi; sonuç sıfırdı.
Kurmak iyi insanlar bana daha fazlasını kim sağladı havalı şey- Sim900 Kalkanı. Şimdi bu ciddi bir şey. Shield'ın hem mikrofon hem de kulaklık girişi olması onu tam teşekküllü bir telefon haline getiriyor.


Sim900 Shield'in Temel Özellikleri

4 çalışma frekansı standardı 850/ 900/ 1800/ 1900 MHz
GPRS çoklu yuva sınıfı 10/8
GPRS mobil istasyonu sınıf B
GSM faz 2/2+ ile uyumludur
Sınıf 4 (2 W @850/ 900 MHz)
Sınıf 1 (1 W @ 1800/1900MHz)
AT komutlarını kullanarak kontrol (GSM 07.07, 07.05 ve SIMCOM genişletilmiş AT komutları)
Düşük güç tüketimi: 1,5mA (uyku modu)
Çalışma sıcaklığı aralığı: -40°C ila +85°C


Uyar!

Tamam ama sahibini bilgilendirmek için bazı sensörlerden ölçümler almanız gerekiyor. Araba çekilirse, o zaman arabanın konumu uzayda açıkça değişecektir. Bir ivmeölçer ve bir jiroskop alalım. Harika. Tamam, şimdi bir sensör arıyoruz.

GY-521 MPU6050'nin kesinlikle uyacağını düşünüyorum. Aynı zamanda bir sıcaklık sensörüne sahip olduğu ortaya çıktı. Onu da kullanmalıyız, öyle bir “öldürücü özellik” olacak. Diyelim ki araba sahibi evinin altına park edip gitti. Arabanın içindeki sıcaklık "sorunsuz" bir şekilde değişecektir. Davetsiz misafir arabaya girmeye çalışırsa ne olur? Mesela kapıyı açabilecek. Kabindeki hava havayla karışmaya başladıkça araç içindeki sıcaklık hızla değişmeye başlayacaktır. çevre. Bence işe yarayacak.


GY-521 MPU6050'nin Ana Özellikleri

MPU-6050 çipinde 3 eksenli jiroskop + 3 eksenli ivmeölçer GY-521 modülü. Bir nesnenin uzaydaki konumunu ve hareketini, dönüş sırasındaki açısal hızını belirlemenizi sağlar. Ayrıca yerleşik bir sıcaklık sensörüne sahiptir. Çeşitli helikopter ve uçak modellerinde kullanılmakta olup, bu sensörlere dayalı olarak hareket yakalama sistemi de kurulabilmektedir.

Çip - MPU-6050
Besleme voltajı - 3,5V'tan 6V'a (DC);
Jiroskop Aralığı - ±250 500 1000 2000°/s
İvmeölçer aralığı - ±2±4±8±16g
İletişim arayüzü - I2C
Boyut - 15x20 mm.
Ağırlık - 5 gr


Uyar!

Bir titreşim sensörü de kullanışlı olacaktır. Aniden “kaba kuvvetle” arabayı açmaya çalışıyorlar ya da otoparkta başka bir araba sizin arabanıza çarpıyor. SW-420 titreşim sensörünü (ayarlanabilir) alalım.


SW-420'nin temel özellikleri

Besleme gerilimi - 3,3 - 5V
Çıkış sinyali - dijital Yüksek/Düşük (normalde kapalı)
Kullanılan sensör - SW-420
Kullanılan karşılaştırıcı LM393'tür.
Boyutlar - 32x14 mm
Ek olarak - Ayar direnci bulunmaktadır.


Uyar!

SD hafıza kartı modülünü vidalayın. Ayrıca bir günlük dosyası yazacağız.


SD hafıza kartı modülünün ana özellikleri

Modül, mikro denetleyiciye dayalı bir cihazın çalışması için gerekli verileri bir SD karta saklamanıza, okumanıza ve yazmanıza olanak tanır. Cihazın kullanımı, onlarca megabayttan iki gigabayta kadar dosyaları depolarken geçerlidir. Kartta bir SD kart kabı, bir kart güç dengeleyici ve arayüz ile güç hatları için bir konnektör fişi bulunur. Örneğin olayları, sensör verilerini veya web sunucusu bilgilerini depolamak için ses, video veya diğer büyük ölçekli verilerle çalışmanız gerekiyorsa, Arduino için SD hafıza kartı modülü bunlar için bir SD kart kullanılmasını mümkün kılacaktır. amaçlar. Modülü kullanarak SD kartın özelliklerini inceleyebilirsiniz.
Besleme voltajı - 5 veya 3,3 V
SD kart hafıza kapasitesi - 2 GB'a kadar
Boyutlar - 46 x 30 mm


Uyar!

Ve bir servo sürücü ekleyelim; sensörler tetiklendiğinde video kaydedicili servo sürücü dönecek ve olayın videosunu çekecektir. MG996R servo sürücüyü ele alalım.


MG996R Servo Sürücünün Ana Özellikleri

Kararlı ve güvenilir koruma hasardan
- Metal sürücü
- Çift sıralı bilyalı rulman
- Tel uzunluğu 300 mm
- Boyutlar 40x19x43mm
- Ağırlık 55 gr
- Dönme açısı: 120 derece.
- Çalışma hızı: 0,17sn/60 derece (4,8V yüksüz)
- Çalışma hızı: 0,13 sn/60 derece (6V yüksüz)
- Başlangıç ​​torku: 4,8V güç kaynağında 9,4 kg/cm
- Başlangıç ​​torku: 6V güç kaynağında 11kg/cm
- Çalışma voltajı: 4,8 - 7,2V
- Tüm tahrik parçaları metalden yapılmıştır


Uyar!

topluyoruz

Google'da her sensörün bağlanmasıyla ilgili çok sayıda makale var. Ve yeni bisikletler icat etme arzum yok, bu yüzden basit ve çalışan seçeneklere bağlantılar bırakacağım.

Arduino'da GSM alarm sistemi

Bu yazıda, GSM modülünü ve Arduino'yu kullanarak çok ucuza GSM alarmını nasıl yapacağınızı (satın alacağınızı) öğreneceksiniz. GSM alarm güvenlik nesnesi idealdir bir yazlık yapacak, ev, garaj, daire.


1. Adım: Öğeler
Bu proje için ihtiyacınız olacak:


GSM Kalkanı

Zil
Alarm sireni 12V
12V güç kaynağı

Arduino için Klavye
Çerçeve.

Adım 2: Bileşenleri Bağlama


İlk önce sen yerleştir GSM modülü Arduino Uno'da GND ve VCC kablolarını iki sensör, bir zil ve bir röle modülü girişi ile birlikte lehimlemeniz gerekecektir. Bundan sonra, bu lehimli kabloları GSM ekranının ilgili konektörüne bağlayın. Daha sonra bu parçalardan bir G/Ç sinyal konnektörü yapacaksınız ve yapmanız gereken son şey klavyeyi bağlamak olacak

Arduino Uno/GSM Terminalleri:

Pim 0: bağlı değil;
Sonuç 1: ilgili değil;
Pin 2: bağlı değil (GSM bu pini kullanacaktır);
Pin 3: bağlı değil (GSM bu pini kullanacaktır);
Pim 4: klavyeyi kullanan son satır (klavye pimi 4 - 8'den itibaren);
Sonuç 5: ilgisiz;
Pim 6: klavye aracılığıyla ikinci sütun (klavye pimi 6 - 8'den itibaren);
Çıkış 7: klavyeden üçüncü sütun (parmak klavyesi 7 - 8'den);
Pin 8: bağlı değil (GSM bu pini kullanacaktır);
Pin 9: bağlı değil (GSM bu pini kullanacaktır);
Pim 10: PIR sensör verileri No. 2;
Sonuç 11: siren ses sinyali(röle modülü girişine girer);
Pim 12: PIR sensör verileri No. 1;
Pim 13: sesli uyarı giriş sinyali;

Gördüğünüz gibi klavyede 8 pin olmasına rağmen yalnızca üçü bağlı (bir satır ve iki sütun, iki sayının okunmasına izin veriyor - 1×2 matris), yani bu üç kabloyu kullanarak şifreler oluşturabiliyorum ve hiçbir şey yok klavyedeki tüm kişileri kullanmanız gerekir. Çünkü hareket sensörü odada bir kişinin yürüdüğünü algıladığında, kişinin alarmı kapatmak için yalnızca 5 saniyesi olacaktır. Belirli bir saatte alarm kapatılmadıktan sonra GSM kalkanı size SMS gönderir veya telefon numaranızı arar. Arduino bir arama yapacak şekilde programlanmıştır ve siz telefona cevap verdiğiniz anda telefonu kapatacaktır.

Elbette sensörden yanlış okumalar almak mümkündür, bu nedenle telefonunuzdan Arduino'ya SMS göndererek alarmı kapatma seçeneği de vardır. Ek olarak yapabileceğiniz diğer bir seçenek de kalkanın size günde bir mesaj gönderecek şekilde ayarlanmasıdır, böylece kalkanın doğru çalıştığını bilirsiniz.

3. Adım: Kod

Aşağıdaki kodu indirip derlemeniz yeterli. Keypad.h ve GSM.h kütüphanelerini kullanır.
Dosyayı indir: (indirilenler: 181)
Dosyayı indir: (indirilenler: 104)

Adım 4: Sonuç


Arduino Uno kodunun, birisi evinize girdikten sonra yalnızca beş saniye içinde mesaj gönderip telefonunuza çağrı yapacağı göz önüne alındığında, polisi aramak için bolca zamanınız olacağını tahmin ediyorum. Elbette siren hırsızları korkutacak ve bu makalenin yardımıyla eviniz veya diğer mekanlarınız daha güvenli hale gelecektir.

Merhaba sevgili okuyucu! Bugünün makalesi basit bir ev sistemi mevcut bileşenleri kullanarak güvenlik. Bu küçük ve ucuz cihaz, evinizi izinsiz girişlere karşı korumanıza yardımcı olacaktır. Arduino yardımı, hareket sensörü, ekran ve hoparlör. Cihaza pille veya bilgisayarın USB bağlantı noktasından güç verilebilir.

Öyleyse başlayalım!

O nasıl çalışır?

Sıcakkanlı hayvanların vücutları, insan gözüyle görülmeyen ancak sensörler kullanılarak tespit edilebilen kızılötesi radyasyon yayar. Bu tür sensörler, ısıya maruz kaldığında kendiliğinden polarize olabilen ve sensörün menzili içindeki ısı kaynaklarının görünümünü tespit etmeyi mümkün kılan bir malzemeden yapılmıştır.

Daha geniş bir aralık için, farklı yönlerden IR radyasyonunu toplayan ve onu sensörün üzerinde yoğunlaştıran Fresnel lensler kullanılır.

Şekil merceğin üzerine düşen ışınları nasıl bozduğunu göstermektedir.

Özellikle sıcak parçaları olmayan ve soğukkanlı olanları olmayan robotların çok az kızılötesi radyasyon yaydığını belirtmekte fayda var, bu nedenle Boston Dynamics çalışanları veya sürüngenler etrafınızı sarmaya karar verirse sensör çalışmayabilir.

Aralıktaki IR radyasyon seviyesinde bir değişiklik olduğunda, bu Arduino'da işlenecek, ardından durum LCD ekranda görüntülenecek, LED yanıp sönecek ve hoparlör bip sesi çıkaracaktır.

Neye ihtiyacımız var?

  1. (veya başka bir tahta).
  2. (İki satırda 16 karakter)
  3. Tacı Arduino'ya bağlamak için bir konektör
  4. (her ne kadar normal bir hoparlör kullanabilseniz de)
  5. USB kablosu - yalnızca programlama için ( yaklaşık. tercüme: Her zaman Arduino'muzla birlikte gelir!)
  6. Bilgisayar (yine, yalnızca programı yazmak ve yüklemek için).

Bu arada tüm bu parçaları ayrı ayrı almak istemiyorsanız bizimkilere dikkat etmenizi öneririz. Örneğin ihtiyacınız olan her şey ve hatta daha fazlası başlangıç ​​kitimizde mevcut.

Haydi bağlanalım!

Hareket sensörünü bağlamak çok basittir:

  1. Vcc pinini 5V Arduino’ya bağlıyoruz.
  2. Gnd pinini Arduino’nun GND’sine bağlıyoruz.
  3. OUT pinini Arduino'nun 7 numaralı dijital pinine bağlıyoruz.

Şimdi LED'i ve hoparlörü bağlayalım. Burada da her şey çok basit:

  1. LED'in kısa ayağını (eksi) toprağa bağlıyoruz
  2. LED'in uzun ayağını (artı) Arduino'nun 13 numaralı çıkışına bağlıyoruz.
  3. 10 numaralı çıkışa giden kırmızı hoparlör kablosu
  4. Siyah tel - toprağa

Ve şimdi işin zor kısmı 1602 LCD ekranı Arduino'ya bağlamak. I2C'siz bir ekranımız var, bu yüzden çok sayıda Arduino çıkışına ihtiyacımız olacak, ancak sonuç buna değecek. Diyagram aşağıda sunulmuştur:

Devrenin sadece bir kısmına ihtiyacımız var (potansiyometre ile kontrast ayarı yapmayacağız). Bu nedenle yalnızca aşağıdakileri yapmanız gerekir:

Artık 1602 ekranını Arduino UNO R3'e (ve Mini'den Mega'ya kadar Arduino'nun herhangi bir sürümüne) nasıl bağlayacağınızı biliyorsunuz.

Programlama

Programlamaya geçmenin zamanı geldi. Aşağıda doldurmanız gereken kod bulunmaktadır ve her şeyi doğru bir şekilde monte ettiyseniz cihaz hazırdır!

#katmak int ledPin = 13; // LED pin int inputPin = 7; // Out of motion sensörünün bağlı olduğu pin int pirState = LOW; // Mevcut durum (başlangıçta hiçbir şey algılanmadı) int val = 0; // Dijital girişlerin durumunu okumaya yönelik değişken int pinSpeaker = 10; // Hoparlörün bağlı olduğu pin. PWM pini LiquidCrystal lcd(12, 11, 5, 4, 3, 2) gerektirir; // LCD ekranını başlat void setup() ( // Dijital pinlerdeki veri aktarımının yönünü belirleyin pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); pinMode(pinSpeaker, OUTPUT); // Hata ayıklama bilgilerinin çıktısını başlatın Seri seri port üzerinden .begin(9600); // LCD ekrana çıktıyı başlat lcd.begin(16, 2); // Çıkışı başlatacağımız ekranlardaki indeksi ayarlayın // (2 karakter, 0 satır) ) lcd.setCursor(2, 0) ; // LCD ekrana çıktı lcd.print("P.I.R Hareketi"); // Tekrar hareket ettir lcd.setCursor(5, 1); ); // Okumaya zaman ayırmak için duraklatın, çıktı gecikmesi neydi(5000); // lcd.clear() temizleniyor; // lcd.setCursor(0, 0); ile aynı ); lcd.setCursor(3, 0); lcd.print("Bekleniyor"); lcd.setCursor(3, 1); void loop(); Sensör okumasını okuyun val = digitalRead(inputPin); if (val == HIGH) ( // Hareket varsa LED'i yakın ve sireni açın digitalWrite(ledPin, HIGH); playTone(300, 300); gecikme(150); // Bu ana kadar herhangi bir hareket olmadıysa // tespit edildiğini belirten bir mesaj gösteriyoruz // Aşağıdaki kod sadece durum değişikliğini yazmak ve her seferinde değeri yazdırmamak için gereklidir if (pirState == LOW) ( Serial.println( "Hareket algılandı!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Hareket Algılandı!"); pirState = YÜKSEK; ) else ( // Hareket varsa digitalWrite(ledPin, LOW); playTone(0, 0); gecikme(300); if (pirState == YÜKSEK)( // Hareket olduğunu ancak zaten bittiğini belirtin. Serial.println("Hareket sona erdi! "); lcd.clear() ; lcd.setCursor(3, 0); lcd.print("Bekleniyor"); lcd.setCursor(3, 1); lcd.print("Hareket...."); / Ses çalma işlevi. Süre (süre) - milisaniye cinsinden, Frek (frekans) - Hz cinsinden void playTone(long sure, int freq) ( sure *= 1000; int period = (1,0 / freq) * 100000; long elapsed_time = 0; while (elapsed_time)< duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } }

Son on yılda araba hırsızlıkları dünyada işlenen suçların yapısında en önemli yerlerden birini işgal etti. Bunun nedeni, bu hırsızlık kategorisinin toplam suç sayısına göre özgül ağırlığından değil, arabaların yüksek maliyetinden kaynaklanan hasarın öneminden kaynaklanmaktadır. 90'lı yılların sonunda araç hırsızlığıyla mücadele alanında alınan tedbirlerin etkinliğinin zayıf olması, bu suçların işlenmesinde uzmanlaşmış ve organize suçun ayırt edici özelliklerini taşıyan istikrarlı grupların oluşmasına yol açmış; Muhtemelen "siyah otomobil işi" terimini duymuşsunuzdur. Avrupa ülkelerinin araç filosu her yıl suç saldırılarına konu olan araçların yaklaşık %2'sinden yoksundur. Bu nedenle Arduino Uno'yu temel alarak arabama GSM alarmı yapma fikri aklıma geldi.

Hadi başlayalım!

Neyden toplayacağız?

Sistemimizin kalbini seçmemiz gerekiyor. Bana göre böyle bir sinyalleme için Arduino Uno'dan daha iyi bir şey yok. Ana kriter yeterli sayıda “pim” ve fiyattır.


Arduino Uno'nun Temel Özellikleri

Mikrodenetleyici - ATmega328
Çalışma voltajı - 5 V
Giriş voltajı (önerilen) - 7-12 V
Giriş voltajı (sınır) - 6-20 V
Dijital Giriş/Çıkış - 14 (6 tanesi PWM çıkışı olarak kullanılabilir)
Analog girişler - 6
Giriş/çıkış üzerinden sabit akım - 40 mA
Çıkış 3,3V - 50mA için sabit akım
Flash bellek - 32 KB (ATmega328), bunun 0,5 KB'si önyükleyici için kullanılır
RAM - 2 KB (ATmega328)
EEPROM-1 KB (ATmega328)
Saat frekansı - 16 MHz


Uyar!

Artık bir GSM modülü seçmeniz gerekiyor çünkü alarm sistemimizin araç sahibini bilgilendirebilmesi gerekiyor. Yani "Google"a ihtiyacınız var... Burada mükemmel bir sensör - SIM800L, boyut tek kelimeyle harika.


Düşündüm ve Çin'den sipariş verdim. Ancak her şeyin o kadar da pembe olmadığı ortaya çıktı. Sensör, SIM kartı ağa kaydetmeyi reddetti. Mümkün olan her şey denendi; sonuç sıfırdı.
Bana daha havalı bir şey sağlayan nazik insanlar vardı: Sim900 Shield. Şimdi bu ciddi bir şey. Shield'ın hem mikrofon hem de kulaklık girişi olması onu tam teşekküllü bir telefon haline getiriyor.


Sim900 Shield'in Temel Özellikleri

4 çalışma frekansı standardı 850/ 900/ 1800/ 1900 MHz
GPRS çoklu yuva sınıfı 10/8
GPRS mobil istasyonu sınıf B
GSM faz 2/2+ ile uyumludur
Sınıf 4 (2 W @850/ 900 MHz)
Sınıf 1 (1 W @ 1800/1900MHz)
AT komutlarını kullanarak kontrol (GSM 07.07, 07.05 ve SIMCOM genişletilmiş AT komutları)
Düşük güç tüketimi: 1,5mA (uyku modu)
Çalışma sıcaklığı aralığı: -40°C ila +85°C


Uyar!

Tamam ama sahibini bilgilendirmek için bazı sensörlerden ölçümler almanız gerekiyor. Araba çekilirse, o zaman arabanın konumu uzayda açıkça değişecektir. Bir ivmeölçer ve bir jiroskop alalım. Harika. Tamam, şimdi bir sensör arıyoruz.

GY-521 MPU6050'nin kesinlikle uyacağını düşünüyorum. Aynı zamanda bir sıcaklık sensörüne sahip olduğu ortaya çıktı. Onu da kullanmalıyız, öyle bir “öldürücü özellik” olacak. Diyelim ki araba sahibi evinin altına park edip gitti. Arabanın içindeki sıcaklık "sorunsuz" bir şekilde değişecektir. Davetsiz misafir arabaya girmeye çalışırsa ne olur? Mesela kapıyı açabilecek. Kabin içindeki hava ortam havasıyla karışmaya başladıkça araç içindeki sıcaklık hızla değişmeye başlayacaktır. Bence işe yarayacak.


GY-521 MPU6050'nin Ana Özellikleri

MPU-6050 çipinde 3 eksenli jiroskop + 3 eksenli ivmeölçer GY-521 modülü. Bir nesnenin uzaydaki konumunu ve hareketini, dönüş sırasındaki açısal hızını belirlemenizi sağlar. Ayrıca yerleşik bir sıcaklık sensörüne sahiptir. Çeşitli helikopter ve uçak modellerinde kullanılmakta olup, bu sensörlere dayalı olarak hareket yakalama sistemi de kurulabilmektedir.

Çip - MPU-6050
Besleme voltajı - 3,5V'tan 6V'a (DC);
Jiroskop Aralığı - ±250 500 1000 2000°/s
İvmeölçer aralığı - ±2±4±8±16g
İletişim arayüzü - I2C
Boyut - 15x20 mm.
Ağırlık - 5 gr


Uyar!

Bir titreşim sensörü de kullanışlı olacaktır. Aniden “kaba kuvvetle” arabayı açmaya çalışıyorlar ya da otoparkta başka bir araba sizin arabanıza çarpıyor. SW-420 titreşim sensörünü (ayarlanabilir) alalım.


SW-420'nin temel özellikleri

Besleme gerilimi - 3,3 - 5V
Çıkış sinyali - dijital Yüksek/Düşük (normalde kapalı)
Kullanılan sensör - SW-420
Kullanılan karşılaştırıcı LM393'tür.
Boyutlar - 32x14 mm
Ek olarak - Ayar direnci bulunmaktadır.


Uyar!

SD hafıza kartı modülünü vidalayın. Ayrıca bir günlük dosyası yazacağız.


SD hafıza kartı modülünün ana özellikleri

Modül, mikro denetleyiciye dayalı bir cihazın çalışması için gerekli verileri bir SD karta saklamanıza, okumanıza ve yazmanıza olanak tanır. Cihazın kullanımı, onlarca megabayttan iki gigabayta kadar dosyaları depolarken geçerlidir. Kartta bir SD kart kabı, bir kart güç dengeleyici ve arayüz ile güç hatları için bir konnektör fişi bulunur. Örneğin olayları, sensör verilerini veya web sunucusu bilgilerini depolamak için ses, video veya diğer büyük ölçekli verilerle çalışmanız gerekiyorsa, Arduino için SD hafıza kartı modülü bunlar için bir SD kart kullanılmasını mümkün kılacaktır. amaçlar. Modülü kullanarak SD kartın özelliklerini inceleyebilirsiniz.
Besleme voltajı - 5 veya 3,3 V
SD kart hafıza kapasitesi - 2 GB'a kadar
Boyutlar - 46 x 30 mm


Uyar!

Ve bir servo sürücü ekleyelim; sensörler tetiklendiğinde video kaydedicili servo sürücü dönecek ve olayın videosunu çekecektir. MG996R servo sürücüyü ele alalım.


MG996R Servo Sürücünün Ana Özellikleri

Hasara karşı istikrarlı ve güvenilir koruma
- Metal sürücü
- Çift sıralı bilyalı rulman
- Tel uzunluğu 300 mm
- Boyutlar 40x19x43mm
- Ağırlık 55 gr
- Dönme açısı: 120 derece.
- Çalışma hızı: 0,17sn/60 derece (4,8V yüksüz)
- Çalışma hızı: 0,13 sn/60 derece (6V yüksüz)
- Başlangıç ​​torku: 4,8V güç kaynağında 9,4 kg/cm
- Başlangıç ​​torku: 6V güç kaynağında 11kg/cm
- Çalışma voltajı: 4,8 - 7,2V
- Tüm tahrik parçaları metalden yapılmıştır


Uyar!

topluyoruz

Google'da her sensörün bağlanmasıyla ilgili çok sayıda makale var. Ve yeni bisikletler icat etme arzum yok, bu yüzden basit ve çalışan seçeneklere bağlantılar bırakacağım.

Herkese merhaba bugün hareket sensörü denilen bir cihaza bakacağız. Birçoğumuz bu şeyi duymuşuzdur, hatta bazılarımız bu cihazla uğraşmıştır. Hareket sensörü nedir? Bunu anlamaya çalışalım, yani:

Hareket sensörü veya yer değiştirme sensörü - herhangi bir nesnenin hareketini algılayan bir cihaz (cihaz). Bu cihazlar sıklıkla güvenlik, alarm ve izleme sistemlerinde kullanılır. Bu sensörlerin çok çeşitli faktörleri vardır, ancak kartlara bağlantı için hareket sensörü modülünü dikkate alacağız. arduino,ve özellikle şirketten RobotDyn. Neden bu şirket? Bu mağazanın ve ürünlerinin reklamını yapmak istemiyorum ama ürünlerinin son tüketiciye kaliteli sunumu nedeniyle laboratuvar numunesi olarak seçilenler bu mağazanın ürünleriydi. Böylece tanıştık - hareket sensörü(PIR Sensörü) RobotDyn'den:


Bu sensörler boyut olarak küçüktür, az güç tüketir ve kullanımı kolaydır. Ayrıca RobotDyn hareket sensörlerinin serigrafi kontakları da var, bu elbette küçük bir şey ama çok hoş. Pekala, aynı sensörleri kullanan, ancak yalnızca diğer şirketlerden olanlar endişelenmemelidir - hepsi aynı işlevselliğe sahiptir ve kontaklar işaretlenmemiş olsa bile, bu tür sensörlerin pin çıkışını internette bulmak kolaydır.

Temel özellikler hareket sensörü (PIR Sensörü):

Sensör çalışma alanı: 3 ila 7 metre arası

İzleme açısı: 110 o'ya kadar

Çalışma voltajı: 4,5...6 Volt

Akım tüketimi: 50 µA'ya kadar

Not: Sensörün standart işlevselliği, IN ve GND pinlerine bir ışık sensörü bağlanarak genişletilebilir ve ardından hareket sensörü yalnızca karanlıkta çalışacaktır.

Aygıt başlatılıyor.

Açıldığında sensörün başlatılması neredeyse bir dakika sürer. Bu süre zarfında sensör yanlış sinyaller verebilir; kendisine sensör bağlı olan bir mikro denetleyici veya devrelerde programlanırken bu dikkate alınmalıdır. aktüatörler Bağlantı mikrodenetleyici kullanılmadan yapılıyorsa.

Algılama açısı ve alanı.

Algılama(izleme) açısı 110 derecedir, algılama mesafesi aralığı 3 ila 7 metre arasındadır, aşağıdaki resimde bunların tamamı gösterilmektedir:

Hassasiyetin (algılama mesafesi) ve zaman gecikmesinin ayarlanması.

Aşağıdaki tablo hareket sensörünün ana ayarlarını göstermektedir; solda sırasıyla bir zaman geciktirme regülatörü vardır, sol sütunda olası ayarların bir açıklaması vardır. Sağ sütun algılama mesafesi ayarlarını açıklar.


Sensör bağlantısı:

  • PIR Sensörü - Arduino Nano
  • PIR Sensörü - Arduino Nano
  • PIR Sensörü - Arduino Nano
  • PIR Sensörü - ışık sensörü için
  • PIR Sensörü - ışık sensörü için

Tipik bir bağlantı şeması aşağıdaki şemada gösterilmektedir; bizim durumumuzda sensör geleneksel olarak arka taraftan gösterilmiştir ve Arduino Nano kartına bağlanmıştır.

Hareket sensörünün çalışmasını gösteren çizim (programı kullanıyoruz):

/* * PIR Sensörü -> Arduino Nano * PIR Sensörü -> Arduino Nano * PIR Sensörü -> Arduino Nano */ void setup() ( //Port monitörüne bağlantı kurun Serial.begin(9600); ) void loop( ) ( //A0 portundan eşik değerini okuyun //sinyal varsa genellikle 500'den yüksektir if(analogRead(A0) > 500) ( //Hareket sensöründen sinyal Serial.println("Hareket var! !!"); ) else ( / /Sinyal yok Serial.println("Her şey sessiz...");

Taslak, hareket sensörünün çalışmasının yaygın bir testidir; aşağıdakiler gibi birçok dezavantajı vardır:

  1. Olası yanlış alarmlar, sensörün bir dakika içinde kendi kendine başlatılmasını gerektirir.
  2. Port monitörüne sıkı bağlanma, çıkış aktüatörleri yok (röle, siren, LED göstergesi)
  3. Sensör çıkışındaki sinyal süresi çok kısa; hareket algılandığında sinyali programlı olarak daha uzun bir süre geciktirmek gerekir.

Devreyi karmaşıklaştırarak ve sensörün işlevselliğini genişleterek yukarıda açıklanan dezavantajları önleyebilirsiniz. Bunu yapmak için devreyi bir röle modülüyle desteklemeniz ve bu modül aracılığıyla normal 220 voltluk bir lamba bağlamanız gerekecektir. Röle modülünün kendisi Arduino Nano kartındaki pin 3'e bağlanacaktır. Yani şematik diyagram:

Şimdi hareket sensörünü test eden taslağı biraz iyileştirmenin zamanı geldi. Hareket sensörünün kendisi tetiklendiğinde çıkışta çok kısa bir sinyal süresine sahip olduğundan, rölenin kapatılmasında bir gecikmenin uygulanacağı çizimde yer almaktadır. Program, sensör tetiklendiğinde 10 saniyelik bir gecikme uygular. İstenirse değişkenin değeri değiştirilerek bu süre arttırılabilir veya azaltılabilir. Gecikme Değeri. Aşağıda tüm çalışmanın bir taslağı ve videosu bulunmaktadır. monte edilmiş devre:

/* * PIR Sensörü -> Arduino Nano * PIR Sensörü -> Arduino Nano * PIR Sensörü -> Arduino Nano * Röle Modülü -> Arduino Nano */ //reout - röle modülü için pin (çıkış sinyali) const int reout = 3 ; //prevMillis - önceki program tarama döngüsünün süresini saklamak için değişken //aralık - röleyi kapatmadan önceki saniyeleri saymak için zaman aralığı unsigned long prevMillis = 0; int aralık = 1000; //DelayValue - rölenin açık durumda tutulduğu süre int DelayValue = 10; //initSecond - Başlatma döngüsü yineleme değişkeni int initSecond = 60; //countDelayOff - zaman aralığı sayacı static int countDelayOff = 0; //tetikleyici - hareket sensörü tetikleyici işareti statik bool tetikleyici = false; void setup() ( //Röle modülünün bağlı olduğu bağlantı noktasını başlatmak için standart prosedür //ÖNEMLİ!!! - röle modülünün başlangıçta kapalı durumda kalması //ve başlatma sırasında tetiklenmemesi için ihtiyacınız olan şey //giriş/çıkış portuna HIGH değerini yazmak, bu yanlış "tıklamayı" önleyecek ve // ​​rölenin durumunu tüm devre açılmadan önceki haliyle koruyacaktır pinMode(reout, digitalWrite); (reout, HIGH); //Burada her şey basit - 60 döngü bitene kadar bekleriz (initSecond değişkeni) //1 saniye sürer, bu süre zarfında sensör "kendini başlatır" for(int i = 0; i< initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) >500) ( //Hareket sensörü tetikleme bayrağını ayarlayın if(!trigger) ( tetikleyici = doğru; ) ) //Hareket sensörü tetikleme bayrağı ayarlanırken while(trigger) ( //Çalıştır talimatları takip etmek//currMillis değişkenine kaydedin //programın çalıştırılmasının başlangıcından bu yana geçen milisaniye değerini unsigned long currMillis = millis(); //Önceki milisaniye değeriyle karşılaştırın //eğer fark belirtilen aralıktan büyükse, o zaman: if(currMillis - prevMillis > interval) ( //Milisaniyenin mevcut değerini prevMillis değişkenine kaydedin prevMillis = currMillis; // Gecikme sayacını, rölenin AÇIK durumda tutulması gereken //dönem değeri ile karşılaştırarak kontrol edin if(countDelayOff >= DelayValue) ( ​​//Değer eşitse, o zaman: //resetleyin hareket sensörü tetikleme flag tetikleme = false; //Gecikme sayacını sıfırla countDelayOff = 0; // Röleyi kapat digitalWrite(reout, HIGH); //Değer hala küçükse; sonra //Gecikme sayacını bir artırın countDelayOff ++; //Röleyi açık durumda tutun digitalWrite(reout, LOW ) ) ) );

Program aşağıdaki yapıyı içerir:

imzasız uzun öncekiMillis = 0;

int aralık = 1000;

...

işaretsiz uzun currMillis = millis();

if(currMillis - öncekiMillis > aralık)

{

öncekiMillis = currMillis;

....

// İşlemlerimiz yapının gövdesi içerisinde yer almaktadır

....

}

Açıklığa kavuşturmak için bu tasarım hakkında ayrı ayrı yorum yapılmasına karar verildi. Bu yüzden, bu tasarım programda paralel bir görev gerçekleştirmenize olanak tanır. Yapının gövdesi yaklaşık olarak saniyede bir kez tetiklenir, bu değişken tarafından kolaylaştırılır. aralık. İlk olarak değişken currMillis işlev çağrılırken döndürülen değer atanır milis(). İşlev milis() programın başlangıcından bu yana geçen milisaniye sayısını döndürür. Eğer fark currMillis - öncekiMillis değişkenin değerinden daha büyük aralık o zaman bu, programın yürütülmesinin başlangıcından bu yana bir saniyeden fazla zaman geçtiği ve değişkenin değerini kaydetmeniz gerektiği anlamına gelir currMillis bir değişkene öncekiMillis daha sonra yapının gövdesinde bulunan işlemleri gerçekleştirin. Eğer fark currMillis - öncekiMillis değişken değerinden daha az aralık, program tarama döngüleri arasında henüz bir saniye geçmemiştir ve yapının gövdesinde yer alan işlemler atlanır.

Makalenin sonunda yazarın bir videosu var:

Yorumların çalışması için lütfen javascript'i etkinleştirin.

Paylaşmak