Alarm Pencuri Instan dengan Notifikasi SMS – Panduan DIY Arduino Yun
Komponen dan Perlengkapan
- Arduino Yun – 1 unit
- Baterai 9V (generic) – 1 unit
- Kabel Jumper (generic) – 1 set
- Sensor Jarak HC-SR04 – 1 unit
Aplikasi dan Layanan Online
- Temboo
- Twilio SMS Messaging API
Tentang Proyek Ini
Ini sangat mudah dilakukan dan tidak memerlukan pemelasan atau keterampilan canggih.
Ini cara kerjanya:
Sensor jarak mendeteksi gangguan dalam ping --->
Memanggil Temboo melalui WIFI --->
Memberi tahu API Twilio untuk mengirim teks!
Tutorial ini menunjukkan kepada Anda cara membuat alarm pencuri yang mengirim pesan teks kepada Anda ketika gerakan terdeteksi. Ini mungkin terdengar rumit tetapi saya cukup yakin pemula dalam elektronik apa pun seharusnya dapat melakukannya dengan baik. Sensor jarak merasakan gerakan dan memberitahu papan Arduino Anda untuk mengirim teks. Jadi Anda dapat meninggalkan detektor pencuri di rumah, terhubung ke jaringan Anda, dan tetap menerima notifikasi SMS, tidak di mana pun Anda berada, asalkan Anda memiliki layanan telepon seluler.
Ini adalah proyek yang cukup cepat dan mudah, memakan waktu sekitar 45 menit untuk diselesaikan. Bagian-bagian dapat didapatkan di Amazon dengan harga sekitar $80-$90, atau sekitar $50 jika Anda tidak keberatan menunggu dari AliExpress.com. Biaya utama adalah papan Arduino dengan kemampuan WIFI, namun setelah Anda memilikinya, itu dapat digunakan dalam banyak proyek lain dan banyak kesenangan lainnya...
Bagian yang ANDA PERLU:
-Sensor Jarak HC-SR04
-Papan Arduino Yun atau Leonardo dengan WIFI shield
-4 kabel jumper
-Papan rohok mini (jika Anda ingin)
-Baterai 9V
-Kotak baterai 9V dengan steker barrel dan saklar on/off
Tautan ke bagian dan kode dapat ditemukan di sini:
Tautan Bagian dan Kode
Langkah 1: Buat koneksi ini dan uji!
Hubungkan sensor jarak Anda ke papan seperti yang ditunjukkan dalam diagram di sini.
Pertama kita akan menguji sensor jarak kita dan memastikan itu bekerja.
Pergi ke blok kode pertama di sini https://wirebeings.com/arduino-intruder-alarm.html
dan salin/tempel ke Arduino IDE.
Colokkan papan Anda dan unggah sketsa.
Buka monitor serial dan pastikan itu pada 9600 BAUD.
Anda akan melihat deretan angka yang dicetak
(ini adalah jarak objek terdekat dari sensor dalam inci)
Setiap kali selisih yang cukup besar dalam ping terdeteksi oleh sensor itu akan mencetak "Intruder Detected" ke monitor serial.
Langkah 2: Hubungkan papan Anda ke jaringan WiFi Anda.
Jika Anda menggunakan Arduino Yun ikuti instruksi di sini:
https://www.arduino.cc/en/Main/ArduinoBoardYun
Jika Anda menggunakan Leonardo dengan Iduino wifi shield ikuti instruksi di sini:
https://www.geeetech.com/wiki/index.php/Iduino_Yun_Shield
Untuk menguji dan memastikan itu terhubung ke jaringan yang sama dengan komputer Anda Anda dapat menggunakan terminal dan melakukan skan LAN cepat dari jaringan Anda atau unduh program gratis yang akan melakukannya untuk Anda.
Saya menggunakan Mac jadi saya mengunduh LanScan dari Mac store.
Langkah 3: Menambahkan fungsionalitas pesan teks.
Buka Arduino IDE dan buat sketsa baru.
Salin dan tempel blok kode kedua dari sini ke Arduino IDE:
https://wirebeings.com/arduino-intruder-alarm.html
Klik panah bawah di sisi kanan dan buat tab baru.
Panggil TembooAccount.h
Kembali ke situs web di atas dan salin dan tempel blok kode terakhir (file header) ke sana.
Simpan.
Sekarang Anda perlu membuat Akun di Temboo dan di Twilio sehingga Anda dapat menambahkan informasi Anda ke dalam kode.
Langkah 4: Tambahkan kredensial Twilio dan Temboo Anda ke sketsa.
Pergi ke pengaturan akun di akun Twilio Anda untuk menemukan Account SID dan Auth Token (klik tombol kunci untuk menampilkannya)
Tambahkan ini ke sketsa utama di dalam tanda kutip di tempat yang sesuai "***********"
Kembali ke halaman utama Twilio dan tekan Account lagi. Tekan nomor telepon dan ini akan memberi Anda nomor telepon "Sent From", tambahkan ini ke kode.
Terakhir, tambahkan nomor telepon yang ingin Anda terima teks, dan sesuaikan pesan jika Anda ingin.
(Jaga nomor telepon dalam format ini atau tidak akan bekerja "+1*******")
Sekarang pergi ke file header dan tambahkan informasi akun Temboo Anda. Masuk ke akun Temboo Anda dan tekan Aplikasi untuk mendapatkan semua informasi ini.
Simpan dan tekan unggah.
Berikan daya pada papan Anda dengan paket baterai 9V (tekan saklar on) dan buka monitor serial untuk memastikan itu bekerja!!!
Mungkin memakan waktu 20 detik atau lebih untuk terhubung.
Langkah 5: Dan....SELESAI!
Jika Anda mengalami masalah di mana tidak bekerja dengan benar. Ubah rentang angka dalam pernyataan yang disorot dalam gambar di sini.
Pernyataan ini berarti Anda akan mengirim pesan jika jarak ke objek terdekat kurang dari 20 atau lebih dari 500. Bergantung pada di mana itu terletak di rumah Anda dan objek terdekat apa, nilai-nilai ini perlu dicoba untuk membuatnya bekerja dengan benar.
Ini paling baik dilakukan di tahap pengujian di mana kode tidak sebenarnya mengirim pesan teks (blok kode pertama di situs web), karena Anda hanya mendapatkan sejumlah panggilan gratis terbatas ke Temboo dan API Twilio, jadi jangan membazirnya! Jangan khawatir meski kode sebenarnya mencegah Anda mengirim lebih dari 10 panggilan sebelum papan harus dicabut dan dihidupkan ulang.
Hubungi saya dengan pertanyaan apa pun saya akan senang membantu!
Kode
- IntruderDectectorTEST
- Kode Lengkap dengan Fungsionalitas Teks
IntruderDectectorTESTArduino
//TEST CODE #include <SoftwareSerial.h> int trigPin = 2; int echoPin = 4; long duration, cm, inches; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); delay(5000); Serial.println("Patrol Mode Initiated..."); } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(1); digitalWrite(trigPin, HIGH); delayMicroseconds(2); digitalWrite(trigPin, LOW); pinMode(echoPin, INPUT); duration = pulseIn(echoPin, HIGH); inches = (duration / 2) / 74; Serial.println(inches); if (inches < 20 || inches > 1000) { Serial.println("Intruder Detected!"); Serial.println("Sending text Notification..."); delay(5000); Serial.println("Patrol Mode Initiated..."); }//end if statement }//ends loop Kode Lengkap dengan Fungsionalitas TeksArduino
#include <Bridge.h> #include <Temboo.h> #include "TembooAccount.h" // contains Temboo account information, as described below #include <SoftwareSerial.h> int numRuns = 1; // Execution count, so this doesn't run forever int maxRuns = 5; // Maximum number of times the Choreo should be executed int trigPin = 2; int echoPin = 4; long duration, cm, inches; void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); // For debugging, wait until the serial console is connected delay(5000); Bridge.begin(); Serial.println("Patrol Mode Initiated..."); } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(1); digitalWrite(trigPin, HIGH); delayMicroseconds(2); digitalWrite(trigPin, LOW); pinMode(echoPin, INPUT); duration = pulseIn(echoPin, HIGH); inches = (duration / 2) / 74; Serial.println(inches); if (inches < 20 || inches > 1100) { Serial.println("Intruder Detected!"); Serial.println("Sending text Notification..."); if (numRuns <= maxRuns) { Serial.println("Running SendSMS - Run #" + String(numRuns++)); TembooChoreo SendSMSChoreo; // Invoke the Temboo client SendSMSChoreo.begin(); // Set Temboo account credentials SendSMSChoreo.setAccountName(TEMBOO_ACCOUNT); SendSMSChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME); SendSMSChoreo.setAppKey(TEMBOO_APP_KEY); // Set Choreo inputs SendSMSChoreo.addInput("AuthToken", "e684a4f37ee686636e2b1e24c12f4279"); SendSMSChoreo.addInput("To", "+14125236422"); SendSMSChoreo.addInput("From", "+14123608633"); SendSMSChoreo.addInput("Body", "Intruder Detected!!!!!!"); SendSMSChoreo.addInput("AccountSID", "ACf3be01a84d78829e5619c16b6e16a9e4"); // Identify the Choreo to run SendSMSChoreo.setChoreo("/Library/Twilio/SMSMessages/SendSMS"); // Run the Choreo; when results are available, print them to serial SendSMSChoreo.run(); while(SendSMSChoreo.available()) { char c = SendSMSChoreo.read(); Serial.print(c); } SendSMSChoreo.close(); } Serial.println("Waiting..."); delay(10000); // wait 10 seconds between SendSMS calls Serial.println("Patrol Mode Initiated..."); }//end if statement }//ends loop
Skematik