Sirenli Arduino alarmı. Arduino'dan beyinli düşük maliyetli GSM alarm sistemi

Günün güzel zamanı 🙂 Bugün alarmdan bahsedeceğiz. Hizmet pazarı, güvenlik sistemlerinin kurulumu ve bakımıyla uğraşan şirketler, kuruluşlarla doludur. Bu firmalar alıcıya çok çeşitli alarm sistemleri sunmaktadır. Ancak, maliyetleri ucuz olmaktan uzaktır. Ancak, çok fazla kişisel parası olmayan bir kişi hırsız alarmlarına harcamak için ne yapmalıdır? Bence sonuç kendini gösteriyor - yapmak alarm onlar tarafından elle... Bu makale, bir Arduino uno kartı ve birkaç manyetik sensör 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 ‘’e basarak yapabilirsiniz. B', Ve işlemi atlamak veya kesmek isterseniz, tuşuna basarak yapabilirsiniz. ‘#’. Sistem, belirli bir işlemi gerçekleştirirken çeşitli sesleri çalmak için bir sesli uyarıya sahiptir.

Sistem 'A' düğmesine basılarak etkinleştirilir. Sistem binayı terk etmek için 10 saniye verir. 10 saniye sonra alarm etkinleştirilecektir. Manyetik sensörlerin sayısı kendi arzunuza bağlı olacaktır. Proje 3 sensör içermektedir (iki pencere ve bir kapı için). Cam açıldığında sistem devreye girer ve sesli uyarıcıdan alarm çalar. Şifre girilerek sistem devre dışı bırakılabilir. Kapı açıldığında alarm, ziyaretçiye şifreyi girmesi için 20 saniye verir. Sistem, hareketi algılayabilen bir ultrasonik sensör kullanır.

Cihaz çalışmasının videosu

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

Başlayalım!

Adım 1: neye ihtiyacımız var

  • Arduino uno kartı;
  • yüksek kontrastlı LCD ekran 16 × 2;
  • 4 × 4 klavye;
  • 10 ~ 20kΩ potansiyometre;
  • 3 manyetik sensör (bunlar ayrıca indükleme anahtarıdır);
  • 3 2 pimli vidalı terminaller;
  • HC-SR04 ultrasonik sensör;

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

  • atmega328 + atmega328 mikro denetleyici için DIP konektörü;
  • 16MHz kristal rezonatör;
  • 2 adet 22pF seramik, 2 adet. 0.22uF elektrolitik kapasitör;
  • 1 BİLGİSAYAR. 10k ohm direnç;
  • güç soketi (DC güç girişi);
  • ekmek tahtası;
  • 5V güç kaynağı;

Ve hepsini toplamak için bir kutu!

Araçlar:

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

Adım 2: Alarm devresi

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

Küçük açıklama:

Yüksek kontrastlı LCD:

  • Pin1 - Vdd'den GND'ye;
  • Pin2 - Vss ila 5V;
  • Pin3 - Vo (potansiyometrenin merkez pimine);
  • Pin4 - RS'den Arduino'nun pin 8'ine;
  • Pin5 - RW'den GND'ye;
  • Pin6 - EN Arduino'nun pin 7'sine;
  • Pin11 - D4 - Arduino'nun pin 6'sı;
  • Pin12 - D5 - Arduino'nun pin 5'i;
  • Pin13 - D6'dan Arduino'nun pin 4'üne;
  • Pin14 - D7'den Arduino'nun pin 3'üne;
  • Pin15 - Vee (potansiyometrenin sağ veya sol pinine).

4 × 4 klavye:

Soldan sağa:

  • Arduino'nun Pin1 ila A5 pini;
  • Arduino'nun Pin2 - A4 pini;
  • Arduino'nun Pin3 ila A3 pini;
  • Arduino'nun Pin4 ila A2 pini;
  • Arduino'nun pin 5'ten pin 13'üne;
  • Arduino'nun pin 6'dan pin 12'sine;
  • Arduino'nun pin 7'den pin 11'ine;
  • Arduino'nun pin 8'den pin 10'una.

3. Adım: Bellenim

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

Codebender eklentisini indirin. Arduino'da "Çalıştır" düğmesine tıklayın ve bu programla kartınızı flash edin. Bu kadar. Arduino'yu az önce 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 kullanmayacaksanız, Arduino IDE'ye ek kütüphaneler kurmanız gerekecektir.

Adım 4: Kendi kontrol panonuzu yapmak

Arduino uno tabanlı yeni bir projeyi başarıyla monte edip test ettikten sonra, kendi tahtanızı yapmaya başlayabilirsiniz.

Üstlenilenlerin daha başarılı bir şekilde tamamlanması için birkaç ipucu:

  • Atmega328 mikrodenetleyicinin 1 (reset) ve 7 (Vcc) pinleri arasına 10K'lık bir direnç bağlanmalıdır.
  • XTAL1 ve XTAL2 etiketli pin 9 ve 10'a 16MHz kristal bağlanmalıdır.
  • Rezonatörün her bir ucunu 22pF kapasitörlerle bağlayın. Kurşunsuz kapasitör, mikrodenetleyicinin pim 8'ine (GND) yol açar.
  • İkinci ATmega328 güç hattını güç kaynağına, 20-Vcc ve 22-GND pinlerine bağlamayı unutmayın.
  • Mikrodenetleyici pinleri hakkında daha fazla bilgiyi ikinci görselde bulabilirsiniz.
  • 6V'dan daha yüksek voltajlı bir güç kaynağı kullanmayı planlıyorsanız, bir LM7805 doğrusal regülatörü ve regülatörün giriş ve çıkışına monte edilmesi gereken iki adet 0.22uF elektrolitik kapasitör kullanmalısınız. Bu önemli! Panoya 6V'tan fazla uygulamayın !!! Aksi takdirde Atmega mikrodenetleyicinizi ve LCD ekranınızı yakacaksınız.

Adım 5: Devreyi kutuya yerleştirin

Temel modüller- GSM modülü SIM800L, Arduino Nano (herhangi bir Uno vb. kullanabilirsiniz), düşürme kartı, cep telefonundan pil.

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

sinyal üretimi

Gerekirse modülleri değiştirmenize izin verecek olan pedler aracılığıyla breadboard üzerine monte ediyoruz. SIM800L'ye ve Arduino Nano'ya anahtar üzerinden 4,2 volt güç sağlayarak alarmın etkinleştirilmesi.



İlk döngü tetiklendiğinde, sistem önce ilk numarayı arar, ardından aramayı bırakır ve ikinci numarayı arar. İkinci numara, ilkinin aniden bağlantısının kesilmesi vb. durumlarda eklenir. İkinci, üçüncü, dördüncü ve beşinci döngüler tetiklendiğinde, tetiklenen bölgenin numarasıyla birlikte iki numaraya da SMS gönderilir. Videonun altındaki açıklamayla ilgilenen şema ve kroki.
Tüm elektronikleri uygun bir yuvaya yerleştiriyoruz.



5 stub'a ihtiyacınız yoksa Arduino'nun 5V pinini ihtiyacınız olmayan girişlere bağlayın. Pil ile 5 döngü için GSM alarm sistemi, elektrik kesintisi durumunda cihazın birkaç gün boyunca otonom olarak çalışmaya devam etmesini sağlar. Bunlara herhangi bir güvenlik kontağı sensörü, röle kontağı vb. bağlayabilirsiniz. Sonuç olarak, SMS göndermek ve 2 numarayı aramak için basit, ucuz bir kompakt güvenlik cihazı elde ederiz. Bir yazlık ev, apartman, garaj vb. korumak için kullanılabilir.

Videoda daha fazlası

Bunlar, ve dahil olmak üzere çeşitli elektronik cihazların oluşturulabileceği özel donanım platformlarıdır. Bu tür cihazlar, basit bir tasarım ve çalışmaları için algoritmaları programlama yeteneği ile ayırt edilir. Bu sayede Arduino GSM ile oluşturulan alarm , koruyacağı nesne için mümkün olduğunca yapılandırılabilir.

Arduino modülü nedir?

Arduino'lar, kendi mikroişlemcileri ve hafızaları olan küçük kartlar olarak uygulanmaktadır. Kart ayrıca, güvenlik sistemleri için kullanılan sensörler de dahil olmak üzere çeşitli elektrikli cihazları bağlayabileceğiniz bir dizi işlevsel kontak içerir.

Arduino işlemcisi, kullanıcı tarafından yazılan bir programı kendiniz yüklemenizi sağlar. Kendi benzersiz algoritmanızı oluşturarak, farklı nesneler ve farklı kullanım koşulları ve çözülmesi gereken görevler için hırsız alarmlarının optimum çalışma modlarını sağlayabilirsiniz.

Arduino ile çalışmak zor mu?

Arduino modülleri birçok kullanıcı arasında oldukça popülerdir. Bu, basitliği ve satın alınabilirliği ile mümkün olmaktadır.

Modülleri yönetmek için programlar, normal C ++ kullanılarak yazılır ve modül pinlerinde G / Ç işlemlerini kontrol etmek için basit işlevler şeklinde eklemeler yapılır. Ayrıca programlama için Windows, Linux veya Mac OS altında çalışan ücretsiz bir yazılım olan Arduino IDE kullanılabilir.

Arduino modülleri ile cihazların montaj prosedürü büyük ölçüde basitleştirilmiştir. Arduino'da GSM sinyali bir havyaya ihtiyaç duymadan oluşturulabilir - montaj bir breadboard, jumper ve teller kullanılarak gerçekleşir.

Arduino kullanarak alarm nasıl oluşturulur?

Arduino'da üretilen gsm alarm sisteminin kendi elleriyle karşılaması gereken temel gereksinimler şunlardır:

  • tesis sahibini hırsızlık veya sızma konusunda bilgilendirmek;
  • siren, ikaz lambaları gibi harici sistemlerin desteklenmesi;
  • SMS veya çağrı yoluyla alarm kontrolü;
  • harici güç kaynağı olmadan özerk çalışma.

Bir alarm oluşturmak için ihtiyacınız olacak:

  • Arduino modülü;
  • bir dizi fonksiyonel sensör;
  • veya bir modem;
  • özerk güç kaynağı;
  • harici yürütme cihazları.

Arduino modüllerinin ayırt edici bir özelliği, özel genişletme kartlarının kullanılmasıdır. Onların yardımıyla, güvenlik sistemi konfigürasyonunu birleştirmek için gerekli olan tüm ek cihazlar Arduino'ya bağlanır. Bu tür panolar, Arduino modülünün üstüne bir "sandviç" şeklinde kurulur ve ilgili yardımcı cihazlar panoların kendilerine bağlanır.

Nasıl çalışır?

Bağlı sensörlerden biri tetiklendiğinde Arduino modülünün işlemcisine bir sinyal iletilir. Yüklenen özel yazılımı kullanarak, mikroişlemci onu belirli bir algoritmaya göre işler. Bunun bir sonucu olarak, harici aktüatörü çalıştırmak için bir komut oluşturulabilir ve bu komut, kendisine karşılık gelen genişletme arayüzü kartı aracılığıyla iletilir.

Korunan bir ev veya apartman sahibine uyarı sinyalleri gönderilebilmesini sağlamak için Arduino modülüne bir genişletme kartı aracılığıyla özel bir GSM modülü bağlanır. Hücresel sağlayıcılardan birinden bir SIM kart yükler.

Özel bir GSM adaptörünün yokluğunda, rolü sıradan bir cep telefonu tarafından oynanabilir. Bir alarm ve arama hakkında bir uyarı içeren SMS mesajları göndermenin yanı sıra, hücresel iletişimin varlığı, Arduino üzerindeki GSM alarm sistemini uzaktan kontrol etmenize ve ayrıca özel istekler göndererek nesnenin durumunu izlemenize olanak tanır.

"Not!

Tesis sahibiyle iletişim kurmak için GSM modüllerine ek olarak internet üzerinden iletişim sağlayan sıradan modemler de kullanılabilir."

Bu durumda sensör tetiklendiğinde işlemci tarafından işlenen sinyal modem aracılığıyla özel bir portala veya web sitesine iletilir. Ve zaten siteden, otomatik olarak bir uyarı SMS'i oluşturma veya bağlantılı e-postaya postalama gerçekleştirilir.

sonuçlar

Arduino modüllerinin kullanımı, kullanıcıların bağımsız olarak çeşitli fonksiyonel sensörlerle çalışabilen ve harici cihazları kontrol edebilen GSM alarmları tasarlamasına olanak sağlayacaktır. Çeşitli sensörleri kullanma imkanı nedeniyle, alarm fonksiyonları önemli ölçüde genişletilebilir ve sadece tesisin güvenliğini değil, aynı zamanda durumunu da izleyecek bir kompleks oluşturulabilir. Örneğin tesisteki sıcaklığı kontrol etmek, su ve gaz sızıntısını kaydetmek, bir kaza durumunda beslemelerini kapatmak ve çok daha fazlası mümkün olacaktır.

Merhaba sevgili okuyucu! Bugünün makalesi, mevcut bileşenleri kullanarak basit bir ev güvenlik sistemi oluşturmakla ilgilidir. Bu küçük ve ucuz cihaz, bir Arduino, hareket sensörü, ekran ve hoparlör kullanarak evinizi davetsiz misafirlerden korumanıza yardımcı olacaktır. Cihaz bir pil veya bilgisayarın USB portu ile çalıştırılabilir.

Öyleyse başlayalım!

O nasıl çalışır?

Sıcakkanlı hayvanların vücutları, insan gözüyle görülemeyen, ancak sensörler kullanılarak algılanabilen kızılötesi aralıkta yayar. Bu sensörler, ısının etkisi altında kendiliğinden polarize olabilen ve sensörün menzilindeki ısı kaynaklarının görünümünü algılamayı mümkün kılan bir malzemeden yapılmıştır.

Daha geniş bir etki aralığı için, farklı yönlerden kızılötesi radyasyonu toplayan ve sensörün kendisinde yoğunlaştıran Fresnel lensleri 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ı olmayan robotların kızılötesi aralıkta çok zayıf yaydığını belirtmekte fayda var, bu nedenle Boston Dynamics çalışanları veya sürüngenleri sizi kuşatmaya karar verirse sensör çalışmayabilir.

Eylem aralığında IR radyasyon seviyesinde bir değişiklik olduğunda, bu Arduino tarafından 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 ücret).
  2. (16 karakter, iki satır)
  3. Tacı Arduino'ya bağlamak için bir konektör
  4. (ancak normal bir hoparlör de kullanabilirsiniz)
  5. USB kablosu - yalnızca programlama için ( yaklaşık başına.: her zaman Arduino'larımızla birlikte gelir!)
  6. Bilgisayar (yine, sadece programı yazmak ve yüklemek için).

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

Bağlanalım!

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

  1. Vcc pini 5V Arduino'ya bağlanır.
  2. Gnd pinini Arduino'nun GND'sine bağlıyoruz.
  3. OUT pini Arduino'dan dijital pin #7'ye bağlanır.

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

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

Ve şimdi en zor kısım 1602 LCD ekranı Arduino'ya bağlamak. I2C'siz bir ekranımız var, bu yüzden çok fazla Arduino çıktısı alacak, ancak sonuç buna değecek. Diyagram aşağıda sunulmuştur:

Devrenin sadece bir kısmına ihtiyacımız var (kontrast ayarı için potansiyometremiz olmayacak). Bu nedenle, yalnızca aşağıdakilerin yapılması gerekir:

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

programlıyoruz

Programlamaya geçme zamanı. Aşağıda doldurmanız gereken kod var ve her şeyi doğru bir şekilde kurduysanız, cihaz hazır!

#Dahil etmek int ledPin = 13; // LED pin int inputPin = 7; // Çıkış sensörünün bağlı olduğu pin int pirState = LOW; // Mevcut durum (başlangıçta hiçbir şey bulunamadı) int val = 0; // Dijital girişlerin durumunu okumak için değişken int pinSpeaker = 10; // Hoparlörün bağlı olduğu pin. LiquidCrystal lcd için gerekli PWM pini (12, 11, 5, 4, 3, 2); // LCD ekran void kurulumunu başlat () (// Dijital pinler pinMode (ledPin, OUTPUT); pinMode (inputPin, INPUT); pinMode (pinSpeaker, OUTPUT); // Hata ayıklama bilgilerinin çıkışını başlat seri port üzerinden Seri .begin (9600); // LCD ekrana çıktıyı başlat lcd.begin (16, 2); // Çıktının başlayacağı ekranlarda indeksi ayarlayın // (2 karakter, 0 satır) lcd.setCursor (2, 0) ; // LCD ekrana çıktı lcd.print ("PIR Motion"); // Tekrar hareket et lcd.setCursor (5, 1); // Çıktı lcd.print ("Sensör"); // Okumaya zaman ayırmak için duraklat, çıkış gecikmesi (5000); // lcd.clear () temizleniyor; // lcd.setCursor (0, 0) ile benzer; lcd.print ("Veri İşleniyor."); gecikme (3000); lcd.clear (); lcd.setCursor (3, 0); lcd.print ("Bekliyor"); lcd.setCursor (3, 1); lcd.print ("Hareket ..." );) void loop () (// Sensör okuma değerini oku val = digitalRead (inputPin); if (val == HIGH) (// Hareket varsa LED'i açın ve açın siren digitalWrite (ledPin, YÜKSEK); playTone (300, 300); gecikme (150); // Bu ana kadar herhangi bir hareket olmadıysa, o zaman bir mesaj gösteririz // algılandı // Aşağıdaki kod sadece bir durum değişikliği yazmak için gereklidir ve her zaman if (pirState) değerini görüntülemek için değil == DÜŞÜK) (Serial.println ("Hareket algılandı!"); Lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Hareket Algılandı!"); PirState = YÜKSEK;)) başka ( // Hareket bittiyse digitalWrite (ledPin, LOW); playTone (0, 0); gecikme (300); if (pirState == HIGH) (// Hareketin bittiğini ancak Serial.println ( "Hareket sona erdi!"); Lcd.clear () ; lcd.setCursor (3, 0); lcd.print ("Bekleniyor"); lcd.setCursor (3, 1); lcd.print ("Hareket ... ."); pirState = DÜŞÜK;))) // Ses çalma işlevi. Süre (süre) - milisaniye olarak, Frekans (frekans) - Hz olarak void playTone (uzun süre, int frekans) (süre * = 1000; int periyot = (1.0 / sıklık) * 100000; long elapsed_time = 0; while (geçen_zaman)< duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } }

Arduino Uno'daki basit bir ev güvenlik alarm sistemi bu incelemenin konusudur. Bu ailenin mikrodenetleyicileri aslında öğrencilere öğretmek için tasarlanmış olmasına rağmen, Arduino üzerinde gerçekten faydalı bir proje yapmak oldukça mümkün. Bir ev veya bahçe arsası için güvenlik alarmları, sahibini acil bir durumda uyarabilecek ve sensörlerden akıllı telefona bir mesaj gönderebilecek.

Arduino Ev Alarmı

Arduino Uno veya Nano'da bir ev, banliyö bahçesi veya garaj için nasıl alarm yapılacağını düşünelim. Projede bir hareket sensörü, bir su ve sıcaklık sensörü kullandık - bu, en basit uyarı sistemi için bir dizi temel sensördür. Su temin sistemindeki bir atılım, evdeki sıcaklıktaki bir düşüş veya herhangi bir zamanda ve herhangi bir yerde yabancıların odaya girmesi hakkında bilgi edineceksiniz.

Hırsız alarmları için Arduino sensörleri

Bu projede, internet üzerinden bilgi iletmek için eski bir akıllı telefon kullandık. Buna göre, mülkünüzün bulunduğu yerin bir GPRS sinyaline sahip olması ve herhangi bir mobil operatörün İnternet erişiminin bağlı olduğu en basit tarifeye sahip olması gerekir. Bu şartlar sağlanmadığı takdirde, güvenlik sisteminde hırsızları da korkutabilecek sesli bir siren sağlanmaktadır.

Proje, en basit sensörleri kullanıyor - bir DHT11 sıcaklık sensörü, kendiniz yapabileceğiniz bir su sızıntısı sensörü ve bir hareket sensörü. Daha karmaşık bir alarm yapmaya karar verirseniz, yangın alarmı veya GSM alarmı projesine bakmanızı öneririz. Ayrıca uygulamayı akıllı telefonunuza yüklemeniz ve iki Twitter hesabı kaydetmeniz gerekecektir.

Arduino alarmı nasıl yapılır

Bu proje için ihtiyacımız var:

  • Arduino Uno / Arduino Nano / Arduino Mega kartı;
  • İnternet erişimi olan akıllı telefon;
  • DHT11 sıcaklık ve nem sensörü;
  • su kaçağı sensörü;
  • hareket sensörü ve düğme (anahtar);
  • LED'ler, dirençler, teller vb.


Bir alarm taslağı, gerekli tüm kütüphaneler ve bir akıllı telefon için bir uygulama tek bir arşivde indirilebilir. Proje olabildiğince basit olduğu için Arduino'yu uzaktan kontrol etmenin mümkün olmayacağını unutmayın. Evde kurulu sensörlerin okumalarını, belirli bir süre sonra veya bir sensör tetiklendiğinde yalnızca akıllı telefonunuzdaki mesajlarda öğrenebilirsiniz.

Arduino Uno / Nano üzerinde güvenlik alarmı çizimi

#Dahil etmek // SoftwareSerial.h kitaplığının bağlanması SoftwareSerial mySerial (2, 3); // sırasıyla rx ve tx pinlerini belirtin#Dahil etmek // sensör için kitaplığı bağla DHT dht (16, DHT11); // sensörün hangi portta olacağını söyle int tmp; #define PIR 5 // hareket sensörünü bağlamak için port int pir; #define KNP 7 // anahtarı bağlamak için bağlantı noktası int knp; #define WTR 19 // su sensörünü bağlamak için port int wtr; #define LED 11 // LED'leri bağlamak için bağlantı noktası#define BUZ 9 // Piezo hoparlör bağlamak için bağlantı noktası // akıllı telefonda alınan bilgileri tanımlamak için dizeler String stringT = String ("*"); String stringP = String ("^"); String stringW = String ("-"); String stringH = String ("#"); // sayaçlar, sayma döngüleri vb. için değişkenler imzasız uzun hareket; imzasız uzun saat; bayt m, s1, s2, s3, c = 10; void setup () (mySerial.begin (9600); Serial .begin (9600); dht.begin (); pinMode (PIR, INPUT); analogWrite (PIR, LOW); pinMode (KNP, INPUT); analogWrite (KNP, DÜŞÜK); pinMode (WTR, GİRİŞ); analogWrite (WTR, DÜŞÜK); // güç açıkken LED'leri ve sesli uyarıyı kontrol edin pinMode (BUZ, ÇIKIŞ); pinMode (LED, ÇIKIŞ); analogWrite (LED, 255); ton (BUZ, 100); gecikme (1000); analogWrite (LED, 0); tonsuz (BUZ); gecikme (1000); ) geçersiz döngü () (tmp = dht.readTemperature (); pir = digitalRead (PIR); knp = digitalRead (KNP); wtr = analogRead (WTR); // sayacı başlat saat = milis (); // 3600000 milisaniye 1 saat, 10800000 - 3 saat // 3 saat geçmişse - akıllı telefona veri gönder // gerekirse 10800000 yerine değerlerinizi koyun if (milis () - saat> 10800000) (mySerial.println (tmp + stringT); mySerial.println (stringH); // 3 saatin geçtiğine dair bir sinyal gönder } // döngüleri sayarak, her onuncu döngüde akıllı telefona veri gönderiyoruz C--; Seri .print (c); Seri .println ("- döngü"); Seri .println (""); gecikme (1000); tonsuz (BUZ); if (c> 10) (c = 10;) if (c)< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // sıcaklık değerini gönder mySerial.println (pir + stringP); // evdeki hareketin varlığını gönder mySerial.println (wtr + stringW); // su sensörlerinden veri gönder // HAREKET SENSÖRÜ ÇALIŞTI VE BUTON KAPALI - IŞIĞI AÇIYOR if (pir == YÜKSEK && knp == DÜŞÜK) (analogWrite (LED, 255);) // HAREKET SENSÖRÜ BAĞLANTISI YOK VE BUTON KAPALI - IŞIĞI KAPATIN if (pir == DÜŞÜK && knp == DÜŞÜK) (hareket = milis (); while (pir == DÜŞÜK) (tmp = dht.readTemperature (); pir = digitalRead (PIR); knp = digitalRead (KNP); wtr = analogRead (WTR); c--; Seri .print (c); Seri .println ("- döngü"); Seri .println (""); gecikme (1000); tonsuz (BUZ); if (c> 10) ) (c = 10;) ise (c< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // sıcaklık değerini gönder mySerial.println (pir + stringP); // evdeki hareketin varlığını gönder mySerial.println (wtr + stringW); // su sensörlerinden veri gönder // sensörlerden gelen tüm verileri port monitöründe göster Seri .print ("TMP ="); Seri .println (tmp); Seri .print ("PIR ="); Seri .println (pir); Seri .print ("KNP ="); Seri .println (knp); Seri .print ("WTR ="); Seri .println (wtr); Seri .println (""); ) // MİLİSANİYE OLARAK IŞIK KAPANMA ARALIĞI if (millis () - hareket> 5000) (analogWrite (LED, 0); break;) if (pir == HIGH) (analogWrite (LED, 255); break;))) // HAREKET SENSÖRÜ ÇALIŞTI VE DÜĞME AÇIK - ZAMANLAYICIYI BAŞLATMA if (pir == YÜKSEK && knp == YÜKSEK) (hareket = milis (); gecikme (1000); analogWrite (LED, 255); Seri .println ( "SENSÖR ÇALIŞIYOR"); Seri .println (""); gecikme (1000); while (knp == YÜKSEK) (tmp = dht.readTemperature (); pir = digitalRead (PIR); knp = digitalRead (KNP); wtr = analogRead (WTR); c--; Seri .print (c); Seri. println ("- döngü"); Seri. println (""); gecikme (1000); tonsuz (BUZ); if (c> 10) (c = 10;) if (c)< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // sıcaklık değerini gönder mySerial.println (pir + stringP); // evdeki hareketin varlığını gönder mySerial.println (wtr + stringW); // su sensörlerinden veri gönder // sensörlerden gelen tüm verileri liman monitöründe göster Seri .print ("TMP ="); Seri .println (tmp); Seri .print ("PIR ="); Seri .println (pir); Seri .print ("KNP ="); Seri .println (knp); Seri .print ("WTR ="); Seri .println (wtr); Seri .println (""); ) // HAREKET SENSÖRÜNÜN BAĞLANTISI YOKSA - BLUES'A MESAJ GÖNDERİLİYOR if (knp == LOW) (Seri .println ( "ALARM DEVRE DIŞI"); Seri .println (""); gecikme (1000); ) // 10 SANİYEDEN DAHA FAZLA OLMUŞSA - BLUES'A MESAJ GÖNDERME if (milis () - hareket> 10000 && s1! = 1) (m = 1; mesaja git1;) gecikme (1000); )) // SU KAÇIRSA - BLUES'A MESAJ ATIN if (wtr> 500 && s2! = 2) (m = 2; mesaja git2;) if (wtr> 500) (ton (BUZ, 400);) if (wtr<= 500) { noTone (BUZ); } // SICAKLIK DÜŞÜRSE - BLUES'A MESAJ GÖNDERME eğer (tmp< 20 && s3 != 3) { m = 3; goto message3; } if (tmp < 20) { tone (BUZ, 200); } if (tmp >= 20) (noTone (BUZ);) message1: while (m == 1) (Seri .println ( "BLUESE'E ALARM GÖNDERİLDİ" // sıcaklık değerini gönder mySerial.println (1 + stringP); // evdeki hareketin varlığını gönder mySerial.println (wtr + stringW); // su sensörlerinden veri gönder s1 = 1; m = 0; kırmak; ) message2: while (m == 2) (Seri .println ( "BLUESE'E SU KAÇAK SİNYALİ GÖNDERİLDİ"); Seri .println (""); gecikme (1000); mySerial.println (tmp + stringT); // sıcaklık değerini gönder mySerial.println (pir + stringP); // evdeki hareketin varlığını gönder mySerial.println (500 + stringW); // su sensörlerinden veri gönder s2 = 2; m = 0; kırmak; ) message3: while (m == 3) (Seri .println ( "MAVİ'YE SICAKLIK SİNYALİ GÖNDERİLDİ"); Seri .println (""); gecikme (1000); mySerial.println (20 + stringT); // sıcaklık değerini gönder mySerial.println (pir + stringP); // evdeki hareketin varlığını gönder mySerial.println (wtr + stringW); // su sensörlerinden veri gönder s3 = 3; m = 0; kırmak; ))

Kod için açıklamalar:

İlk bakışta, şema karmaşık görünebilir, ancak değil. Sinyalizasyon, Arduino Uno dahil olmak üzere herhangi bir kart üzerine monte edilebilir. LED'ler yerine bir LED şerit kullanabilirsiniz, ancak aynı zamanda, kartın gücü zaten 12 Volt'a ihtiyaç duyacaktır ve LED şeridi 5V'a değil, Arduino'nun Vin pinine bağlayacaktır. LED'lerle devreye güç sağlamak için normal bir 5 voltluk telefon şarj cihazı kullanabilirsiniz.

Akıllı telefona alarm uygulaması yükleme

Uygulamayı yüklemek için home_twit.apk dosyasını USB kablosu ile telefonunuza indirin, telefonun hafızasında bulun ve “Yükle”ye tıklayın. Bu telefon her zaman Arduino sinyalinin bluetooth bölgesinde olmalıdır. Kurulumdan sonra uygulamayı açın ve "Yapılandır" düğmesine tıklayın. Burada mesajın gönderileceği minimum ve maksimum sıcaklık değerlerini belirtmeniz gerekecektir.

Şimdi en zor kısım Twitter hesapları kurmak. Ayarlarda, mesajı göndereceğiniz Twitter kullanıcı adını belirtin. Ayrıca bir giriş belirtmeniz gerekir, API anahtarı ve API gizli anahtarı kimin adına mesajlar alınacak. En son yenilikler, spam'e karşı mücadele ve sosyal ağdaki kullanıcılar hakkında bilgi toplanmasından kaynaklanmaktadır. API anahtarı ve API sırrı nasıl alınır - bu incelemeyi okuyun.

Her zaman yanınızda olacak ve mesaj alacak olan telefonda PlayMarket'ten resmi Twitter uygulamasını yüklemeniz ve istediğiniz kullanıcı adı ile girmeniz gerekecek. Sonuç olarak evdeki telefondan gelen signalizaciya.apk uygulaması Arduino sensörlerinden veri toplayacak ve Twitter uygulamasını oturum açtığınız kullanıcıya Twitter üzerinden kişisel bir mesaj olarak gönderecektir.

Arduino'daki alarm ayarlarıyla ilgili herhangi bir sorununuz varsa - sorularınızı bu incelemenin yorumlarına yazın.