Isi kandungan:

Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada: 9 Langkah (dengan Gambar)
Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada: 9 Langkah (dengan Gambar)

Video: Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada: 9 Langkah (dengan Gambar)

Video: Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada: 9 Langkah (dengan Gambar)
Video: Tonton Sampai Habis !!! Belajar Arduino Di Jamin Bisa 2024, Julai
Anonim
Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada
Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada
Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada
Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada
Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada
Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada
Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada
Sistem Penggera Tanpa Wayar Arduino Menggunakan Sensor Sedia Ada

Projek ini boleh dibina dalam masa setengah jam dengan kos kira-kira $ 20.00 jika anda mempunyai sensor penggera tanpa wayar 433Mhz atau 315Mhz yang ada.

Ia juga boleh menjadi projek baru lengkap dengan sensor penggera tanpa wayar, seperti pengesan gerakan inframerah dan suis reed, tersedia dengan mudah dan murah dalam talian. Cari sahaja 433Mhz atau 315Mhz sensor yang menggunakan pengekodan PT2262 atau EV1527.

Saya pasti ada banyak orang seperti saya yang telah membeli sistem penggera GSM / 2G dengan sensor tanpa wayar dan berpuas hati dengannya, namun ketika rangkaian 2G / GSM dimatikan di tempat saya tinggal, saya ditinggalkan dengan sistem penggera yang saya dapat tidak lagi atur cara atau bahkan menetapkan masa di dalamnya. Suatu hari sambil bertanya-tanya apa yang boleh saya lakukan untuk menjadikan penggera saya berfungsi semula, saya terpikir untuk memeriksa apakah Arduino dapat menerima isyarat dari sensor. Saya terjumpa https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ dan setelah beberapa percubaan memutuskan bahawa saya dapat menerima isyarat dari sensor yang ada. Saya memulakan proses untuk membina sistem penggera yang dapat menggantikan penggera yang ada dan juga akan memberikan peningkatan fungsi. Salah satu masalah dengan penggera lama tidak pernah benar-benar mengetahui dengan tepat dari 25 sensor yang padam, dengan menambahkan skrin LCD ke binaan penggera baru saya sekarang saya mendapat teks pada LCD yang menunjukkan dengan tepat sensor mana yang diaktifkan. Penggera baru masih boleh dipersenjatai secara manual oleh kekunci wayarles tanpa wayar saya yang ada dan mempunyai jam masa nyata untuk membolehkannya melancarkan dan melucutkan senjata secara automatik pada waktu yang ditetapkan sebelumnya dalam sehari.

Bekalan

Lihat nota tambahan pada akhir untuk memastikan anda menggunakan versi bahagian yang betul.

Arduino Uno atau yang serupa

Modul penerima 433 atau 315 MHz untuk Arduino

Modul Jam Sebenar DS3231 untuk Arduino

Modul I2C 16x2 LDC untuk Arduino

Suis reed Alarm tanpa wayar, sensor gerakan dan fob kunci jauh seperti yang dikehendaki

Buzzer Piezo

Perintang LED & 220 ohm

Papan roti (pilihan tetapi disyorkan)

Bekalan kuasa yang sesuai untuk Arduino

Wayar pelompat dll

PC dengan Arduino IDE dipasang

Pengetahuan asas mengenai Arduino

Langkah 1: Bekalan

Bekalan
Bekalan
Bekalan
Bekalan
Bekalan
Bekalan

Beberapa gambar di atas bekalan yang anda perlukan untuk projek ini

Langkah 2: Wire Up Ardunio dan Modul Seperti yang ditunjukkan dalam Gambar

Wire Up Ardunio dan Modul Seperti yang ditunjukkan dalam Gambar
Wire Up Ardunio dan Modul Seperti yang ditunjukkan dalam Gambar

Piezo antara pin 5 Arduino dan bumi

LED antara pin 8 Arduino dan ke perintang 220ohm kemudian ke bumi

Penerima 433 atau 315 Mhz, VCC hingga 5V, GND ke arde dan salah satu daripada 2 pin data ke pin2 Arduino

Modul LCD I2C 16X2 VCC hingga 5V, GND ke tanah, pin SDA SCL ke SCL SDA dari Arduino (pin A5 adalah SCL, pin A4 adalah SDA)

DS3231 RTC Module VCC hingga 5V, GND ke ground, pin SCL SDA ke SCL SDA Arduino (terdapat set ke-2 yang terletak di atas pin GND dan AREF kebanyakan Arduino)

Saya tahu ada di antara anda yang tidak memerlukan maklumat lagi daripada lakaran ini dan lakaran yang dilampirkan di bawah tetapi saya akan menerangkan lebih terperinci bagi sesiapa sahaja yang memerlukan sedikit bantuan.

Langkah 3: Tambahkan Perpustakaan yang Diperlukan ke Arduino IDE

Tambahkan Perpustakaan yang Diperlukan ke Arduino IDE
Tambahkan Perpustakaan yang Diperlukan ke Arduino IDE
Tambahkan Perpustakaan yang Diperlukan ke Arduino IDE
Tambahkan Perpustakaan yang Diperlukan ke Arduino IDE
Tambahkan Perpustakaan yang Diperlukan ke Arduino IDE
Tambahkan Perpustakaan yang Diperlukan ke Arduino IDE

Sketsa Arduino untuk menjalankan penggera menggunakan beberapa perpustakaan yang belum dipasang pada Arduino IDE secara lalai.

Untuk menambahkan perpustakaan RCSwitch ke Arduino IDE. Buka Arduino IDE di menu atas pilih "Sketch" kemudian dari drop down pilih "Include library" dan dari drop down seterusnya pilih "Manage library". Kemudian pada kotak "Filter your search" taip "RCSW", klik seterusnya pada install untuk "rc-switch by sui77"

Arahan terperinci mengenai penambahan perpustakaan di

Semasa kita melakukannya, kita juga perlu menambahkan perpustakaan yang disebut Time, TimeAlarms, DS1307RTC dan LiquidCrystal_I2C, prosedur yang sama seperti di atas tetapi mencari nama setiap perpustakaan baru dan memasang. Lihat tangkapan skrin di atas jika tidak pasti perpustakaan mana yang akan digunakan.

Jam masa nyata DS3231 serasi dengan dan menggunakan perpustakaan DS1307RTC.

Langkah 4: Seterusnya Kita Perlu Mendapatkan Kod untuk Sensor Anda

Seterusnya Kami Perlu Mendapatkan Kod untuk Sensor Anda
Seterusnya Kami Perlu Mendapatkan Kod untuk Sensor Anda
Seterusnya Kami Perlu Mendapatkan Kod untuk Sensor Anda
Seterusnya Kami Perlu Mendapatkan Kod untuk Sensor Anda

Saya telah memberikan templat kod Arduino di bawah tetapi anda perlu mencari nilai untuk setiap sensor anda dan menampalnya ke dalam kod tersebut.

Terdapat banyak maklumat mengenai cara mendapatkan kod ini di kedua laman web ini;

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

Walau bagaimanapun, inilah versi ringkas saya;

Untuk mendapatkan kod yang dihantar oleh sensor dan fob kunci jarak jauh, pasangkan Arduino seperti yang dipasang pada langkah 1 ke PC melalui kabel USB dan buka Arduino IDE. Kemudian di Arduino IDE pergi ke menu "Fail", kemudian pergi ke "Contoh" tatal ke bawah senarai contoh lakaran sehingga anda menjumpai "RCSWITCH" kemudian pilih lakaran "ReceiveDemo_Advanced" dan muat naik ke Arduino. Setelah lakaran berjaya dimuat, buka monitor bersiri dari Arduino IDE yang masih terpasang pada PC anda melalui USB. Sekarang cetuskan sensor pertama yang anda inginkan untuk mendapatkan kodnya, output dari RCSwitch akan muncul di tetingkap monitor bersiri. Untuk projek ini, kami mencari kod perpuluhan seperti yang disorot dalam tangkapan layar 2. Anda perlu mencetuskan sensor berkali-kali mencari nilai perpuluhan yang paling kerap muncul, kadang-kadang akan ada nilai yang berbeza dicampur dengan nilai sebenarnya, ini disebabkan oleh gangguan gelombang radio rawak atau peranti lain yang beroperasi pada frekuensi yang sama.

Perhatikan kod perpuluhan sensor untuk digunakan pada langkah seterusnya. Ulangi untuk semua sensor dan kekunci kekunci jarak jauh yang anda mahu gunakan dalam projek, menjejaki kod mana yang sesuai dengan sensor mana. Sekiranya menggunakan tombol kekunci untuk mempersenjatai dan melepaskan senjata penggera, anda perlu perhatikan kod yang berbeza untuk butang lengan dan butang pelucutan senjata setiap alat kawalan jauh.

Langkah 5: Templat Kod Arduino

Di bawah ini adalah salinan kod Arduino saya sebagai fail.ino yang dipanggil Wireless_Alarm. Anda boleh mengkliknya dan ia akan terbuka di Arduino IDE. Saya bukan pengaturcara kod saya dikumpulkan sebahagian daripada contoh yang terdapat dalam Arduino IDE, ia mungkin tidak terlalu elegan tetapi berfungsi dan boleh dipercayai dalam jangka masa yang panjang.

Ingatlah untuk menyimpan semula lakaran setelah anda membuat perubahan untuk memasukkan kod dari sensor anda sendiri.

Langkah 6: Tampal Kod yang Anda Perolehi dalam Langkah 5 Ke dalam Sketsa Arduino Templat

Sekarang langkah-langkah untuk menyesuaikan kod untuk sensor dan kekunci jarak jauh yang anda gunakan.

Sekiranya anda membuka lakaran Wireless_Alarm di IDE anda, anda akan melihat pada baris 111.

if (mySwitch.getReceivedValue () == 115166236) // Kod butang lengan Fob

Di mana dalam kod yang ada tertera 115166236 anda perlu mengganti nombor itu dengan kod perpuluhan untuk butang lengan tombol kekunci jauh anda yang anda rakam pada Langkah 5.

Contohnya jika pada langkah 5 anda mendapat perpuluhan 1154321, anda akan mengubah baris 111 untuk dibaca sekarang;

if (mySwitch.getReceivedValue () == 1154321) // Kod butang lengan Fob

Ikuti prosedur yang sama untuk baris 125.

if (mySwitch.getReceivedValue () == 115166234) // Kod butang pelucutan senjata

Ganti 115166234 untuk kod butang pelucutan kunci remote anda yang anda rakam pada Langkah 5.

Sekiranya anda ingin menggunakan beberapa fob jarak jauh untuk mempersenjatai dan melucutkan senjata, salin dan tampal garis 111 hingga 136 sebanyak yang diperlukan, kemudian ubah nilai agar sesuai dengan kekunci jarak jauh anda yang lain, tetapi sebaiknya mulakan dengan satu alat kawalan jauh sehingga anda pasti diubah lakaran berfungsi.

Sekarang untuk mengkodkan sensor penggera dalam lakaran pada baris 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Tindakan untuk almari pejabat pengirim isyarat

Keluarkan 1151640 dan masukkan nilai perpuluhan salah satu sensor penggera anda.

Kemudian pada baris 158.

lcd.print (F ("Almari pejabat")); // cetak mesej ke lcd untuk mengetahui sensor mana yang diaktifkan (dan pergi dan cari pencuri:)

Tukar almari Office kepada apa sahaja yang anda mahu dipaparkan pada LCD untuk sensor tersebut. Contohnya jika anda mahu membaca kitchendoor buat garis seperti ini;

lcd.print (F ("Kitchendoor")); // cetak mesej ke lcd untuk mengetahui sensor mana yang diaktifkan (dan pergi dan cari pencuri:)

Nama tidak boleh melebihi 16 aksara.

Di antara garis 165 dan 187 adalah templat untuk menyalin dan menampal seberapa banyak yang diperlukan ke garis tepat di bawah 187. Ganti nombor selepas mySwitch.getReceivedValue () == dengan perpuluhan salah satu sensor anda yang lain yang anda rakam pada langkah 5 dan menukar nama dalam "" di lcd.print (F ("sensornamehere")); dengan nama yang anda mahu berikan kepada sensor anda.

Sekiranya anda tidak menggunakan tombol kekunci jarak jauh untuk mempersenjatai dan melucutkan penggera anda, anda boleh mengabaikan garis 111-136 atau meletakkan // pada permulaan setiap baris yang tidak diingini dan Arduino tidak akan membacanya.

Ingatlah untuk menyimpan fail setelah anda membuat perubahan.

Langkah 7: Muat naik.ino yang Diubah ke Arduino dan Uji Anda

Muat naik Amino.ino ke Arduino dan Uji Anda
Muat naik Amino.ino ke Arduino dan Uji Anda
Muat naik Amino.ino ke Arduino dan Uji Anda
Muat naik Amino.ino ke Arduino dan Uji Anda
Muat naik.ino yang Diubah ke Arduino dan Uji Anda
Muat naik.ino yang Diubah ke Arduino dan Uji Anda

Dengan Arduino masih disambungkan ke PC anda dengan USB muat naik lakaran ke Arduino Board. Setelah muat naik berjaya diselesaikan LCD harus membaca "Alarm On Disarmed". Tekan butang lengan pada alat kawalan jauh anda dan LCD harus berbunyi "Alarm On Armed" dan LED harus menyala untuk memberitahu anda bahawa ia bersenjata, sekarang memicu sensor semasa ia bersenjata, LCD harus membaca Alarm diikuti dengan cap waktu dan lokasi sensor, bunyi bip akan berbunyi selama 2 minit kecuali anda menekan butang pelucutan senjata. Sekiranya anda tidak mendapat hasil ini, periksa semula kod yang anda dapat pada Langkah 5 dan perubahan yang anda buat pada kod pada langkah sebelumnya, periksa juga kabel semua komponen. Sekiranya LCD tidak membaca sama sekali, terdapat pelarasan kontras di bahagian belakang modul LCD. Setelah kontras ditetapkan dengan betul jika LCD masih tidak membaca, cuba ubah Alamat LCD dari 0x3f menjadi 0x27 pada baris 12 dalam lakaran. Penyelesaian masalah LCD di sini tutorial I2C LCD

Langkah 8: Menetapkan Masa pada Modul RTC dan Mengubah Masa Lengan dan Melucutkan Senjata

Mudah-mudahan RTC anda sudah ditetapkan dengan waktu yang tepat tetapi jika tidak membuka IDE, pilih 'File' dan dari menu dropdown pada "Contoh", tatal ke bawah ke "DS1307RTC" dan pilih lakaran "SetTime", muat turun lakaran ke Arduino dan ia akan menetapkan jam masa nyata dengan waktu dari PC anda. Anda kemudian perlu memuatkan semula lakaran Wireless_Alarm ke Arduino anda.

Wireless_Alarm.ino yang saya sediakan secara lalai akan menetapkan penggera agar menyala secara automatik pada pukul 10.15 malam setiap malam dan melucutkan senjata pada jam 6.00 pagi setiap pagi. Untuk mengubah masa ini, ubah Sketsa pada baris 71 dan 72. Masanya dalam kurungan selepas Alarm.alarmRepeat dalam format HH, MM, SS. ubah ini kepada masa yang sesuai dengan anda.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // HILANGKAN masa

Alarm.alarmRepeat (22, 15, 0, Alarm Petang); // Masa ARM

Oleh itu, untuk menukar masa pelucutan senjata menjadi 9.15 pagi dan waktu lengan hingga 5.30 petang kodnya akan kelihatan seperti ini

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // HILANGKAN masa

Alarm.alarmRepeat (17, 30, 0, Alarm Petang); // Masa ARM

Sekiranya anda tidak mahu penggera menyala dan melucutkan senjata secara automatik letakkan // di hadapan 2 baris dan ia tidak akan digunakan.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // HILANGKAN masa

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Masa lengan

Masa bunyi penggera penggera dapat diubah dengan mengubah baris 22

selang panjang const = 120000; // untuk kelewatan milis untuk jangka masa bunyi penggera

Selang dalam milisaat sehingga 120000 = 120 saat, mengubah 120000 hingga 30000 akan membuat penggera berbunyi selama 30 saat.

Solenoid untuk menjalankan siren, lampu strob, bip volume tinggi dan lain-lain juga boleh disambungkan ke pin 7 atau pin 9 dan akan berjalan untuk "selang" seperti yang ditetapkan di atas. Ingatlah beban maksimum untuk pin Arduino tidak boleh melebihi 40mA.

Langkah 9: Nota Tambahan

Semasa memilih modul penerima 433 atau 315 MHz untuk Arduino, anda harus memilih frekuensi agar sesuai dengan sensor penggera yang ingin anda gunakan. Saya cadangkan membeli modul yang dilengkapi dengan antena heliks spiral kecil untuk prestasi terbaik, sebagai alternatif antena dawai lurus 17.3mm juga meningkatkan prestasi.

Dengan modul LCD 16x2 anda mesti menggunakan LCD I2C 4 pin untuk menggunakan arahan dan kod yang saya berikan di sini, ia boleh dibuat dengan LCD standard 16 pin tetapi tidak akan berfungsi dengan pendawaian atau kod di sini.

Suis reed penggera tanpa wayar, sensor gerakan dan fob kunci jauh harus 433Mhz atau 315Mhz agar sesuai dengan penerima yang ingin anda gunakan dan harus menggunakan pengekodan PT2262 atau EV1527.

Penggera boleh dikembangkan dan boleh disesuaikan, saya telah menambahkan kad SD untuk merakam ketika sensor dipicu, mengubah suai LCD agar hanya menyala ketika butang dipegang dan menambahkan siren 100dB, tetapi belum memasukkan butiran di sini untuk memastikan artikel itu tetap pendek dan sesederhana mungkin. Saya harap perkongsian kerja yang saya lakukan pada penggera ini berguna kepada orang lain.

Selamat menjawab sebarang pertanyaan.

Terima kasih.

Disyorkan: