Daftar Isi:

Cara Membuat Sistem Alarm Deteksi Banjir Cerdas Menggunakan Raspberry Pi dan Particle Argon: 6 Langkah
Cara Membuat Sistem Alarm Deteksi Banjir Cerdas Menggunakan Raspberry Pi dan Particle Argon: 6 Langkah

Video: Cara Membuat Sistem Alarm Deteksi Banjir Cerdas Menggunakan Raspberry Pi dan Particle Argon: 6 Langkah

Video: Cara Membuat Sistem Alarm Deteksi Banjir Cerdas Menggunakan Raspberry Pi dan Particle Argon: 6 Langkah
Video: Cara membuat alat pendeteksi banjir berbasis IoT dan pesan Telegram || DIY 2024, November
Anonim
Image
Image
Cara Membuat Sistem Alarm Deteksi Banjir Pintar Menggunakan Raspberry Pi dan Particle Argon
Cara Membuat Sistem Alarm Deteksi Banjir Pintar Menggunakan Raspberry Pi dan Particle Argon

Memiliki sensor banjir standar sangat bagus untuk mencegah kerusakan besar pada rumah atau tempat kerja Anda.

Tapi itu membuat sulit jika Anda tidak di rumah untuk menghadiri alarm.

Tentu saja Anda bisa membeli yang pintar itu

Sistem alarm banjir ini mendeteksi cairan apa pun dan memicu alarm dan memperbarui halaman web tentang banjir yang dapat diakses di mana saja di dunia, apakah Anda sedang berlibur atau hanya bekerja dan Anda ingin tahu tentang status rumah Anda.

Perlengkapan

Raspberry pi (saya menggunakan model 3 B+) menjalankan raspbian

Partikel Argon

Sensor Air Grove

Kamera Rasp

Bel

Kabel jumper

Langkah 1: Hubungkan Sensor Air ke Partikel

Hubungkan Sensor Air ke Partikel
Hubungkan Sensor Air ke Partikel
Hubungkan Sensor Air ke Partikel
Hubungkan Sensor Air ke Partikel

sensor air memiliki 4 pin, yaitu GND, VCC, NC dan SIG dan kami hanya akan menggunakan tiga dari mereka

Saya menghubungkan pin SIG ke D2 di Argon.

Sekarang, Anda dapat meluncurkan Particle Web IDE untuk menulis kode dan mem-flash ke Argon

Jadi kita telah mendaftarkan Particle function liquid dan mendefinisikan variabel isFloodPresent, yang dapat dipanggil dari Particle Console dan mendapatkan nilai boolean dari isFloodPresent dan juga memanggil function liquid untuk pengujian tiruan yang mengambil nilai 1 sebagai input yang berarti benar untuk keberadaan banjir (air).

pastikan Anda dapat melihat fungsi dan variabel itu dari Konsol Partikel Perangkat Partikel Anda.

Langkah 2: Hubungkan Sumber Alarm ke Raspberry

Hubungkan Sumber Alarm ke Raspberry
Hubungkan Sumber Alarm ke Raspberry

Di papan tempat memotong roti, Anda dapat menghubungkan Buzzer ke pin GPIO Raspberry

Saya telah menghubungkan ujung buzzer yang lebih kecil ke GND(PIN 6) dan ujung yang lebih panjang ke pin 7 pada raspberry.

Sekarang jalankan kode untuk melihat. Kami akan membutuhkan file python ini berjalan sepanjang waktu sehingga dapat menerima pemicu dari server web dan meresponsnya.

Atau Anda dapat menjalankan file ini saat startup di raspberry Anda yang dapat Anda lakukan dengan mengedit /etc/systemd

dan file ini akan ditempatkan di folder cgi server apache Anda, Saya telah membuat direktori baru flood-cgi di dalam /var/www/html/ dan menempatkan file.py ini yang akan berkomunikasi dengan skrip cgi saya

Langkah 3: Konfigurasikan Server Apache

Konfigurasikan Server Apache
Konfigurasikan Server Apache

Anda dapat menginstal server apache dengan mengetik sudo apt-get install apache2

ketika diinstal, Anda dapat memverifikasi dengan mengetik hostname -I

dan Anda akan mendapatkan alamat IP lokal Anda dan Anda dapat menuju ke browser Anda dan akan melihat server berjalan

Langkah 4: Aktifkan CGI di Apache

Aktifkan CGI di Apache
Aktifkan CGI di Apache

Anda dapat mengaktifkan cgi dengan mengetik sudo a2enmod cgi

Secara default cgi_bin dari Apache terletak di /usr/lib/cgi-bin

di sinilah Anda dapat meletakkan skrip cgi Anda setelah mengaktifkan cgi

untuk mengambil efeknya, Anda perlu me-restart server Apache

Saya ingin direktori khusus untuk skrip cgi saya, jadi saya membuat direktori di /var/www/html/ disebut flood-cgi

untuk mengaktifkan direktori ini saya harus membuat file conf dengan mengetik

sudo nano /etc/Apache2/conf-available/flood-cgi.conf

dan menambahkan perintah seperti yang ditunjukkan pada tangkapan layar

lalu aktifkan direktori ini dengan mengetik

var/www/html $ sudo a2enconf flood-cgi

sekarang Anda dapat me-restart server apache Anda lagi dan semua cgi dari folder ini akan dapat dibaca oleh apache setelah izin.

Langkah 5: Siapkan Halaman Web

Siapkan Halaman Web
Siapkan Halaman Web

Untuk web service sederhana ini, saya menggunakan HTML, Javascript, CSS, jquery dan ajax.

Saya memiliki lima label kontrol yang dapat diklik, Jika mengambil foto diklik dari halaman web, itu akan memicu fungsi klik tombol foto dan fungsi ini terlihat seperti ini

$("#photobutton").click(function() { var floodDate = new Date();

var floodImageName = "Flood_IMG_" + floodDate.toLocaleTimeString();

$.ajax({

url: 'flood-cgi/flood_cgi.py', metode: 'posting', data: { name_for_image: floodImageName }, sukses: fungsi (data) {

waspada (data, status)

$("#recentpic").attr("src", "flood-cgi/" + floodImageName + ".jpg");

}

})

});

ini akan memanggil skrip flood_cgi.py untuk mengambil foto dan menyimpan gambar dengan nama khusus yang dihasilkan oleh tanggal dan waktu saat ini dan ajax memuat hingga halaman.

jika terjadi Alarm, kita dapat menggunakan fungsi ini

fungsi panggilanAlarm(Tipe alarm) {

$.ajax({

url: 'flood-cgi/alarm.cgi', metode: 'posting', data: { alarm_type: alarmType }, sukses: fungsi (data) { alert(data)

}, kesalahan: fungsi (XMLHttpRequest, textStatus, throwError) { alert(throwError) } });

}

fungsi callAlarm akan dipanggil ketika label buzzer diklik, $("#buzzer").click(function() { callAlarm("test");

})

kode di bawah ini adalah ketika Anda ingin mengklik tiruan banjir yaitu memanggil API Partikel dan memanggil fungsi dan mengubah nilai cair 1 dan memeriksa sistem apakah keseluruhan berfungsi seperti yang diharapkan dengan melakukan acara banjir tiruan

$("#mockFlood").click(function() { console.log("mock flood telah meminta");

var floodVal = 1;

$("#signal2").css("ukuran font", "kecil");

var varName = "isFloodPresent";

var deviceID = "ID PERANGKAT ANDA";

var accessToken = "TOKEN AKSES ANDA";

if (nilai banjir) {

$.post("https://api.particle.io/v1/devices/" + deviceID + "/liquid?access_token=" + accessToken, { cair: FloodVal }, fungsi (data, status) {

if (status == "berhasil") {

alert("Banjir tiruan telah terjadi!!!");

} lain {

alert("Maaf, ada masalah");

}

});

}

});

Ini adalah fungsi utama yang Anda perlukan untuk membuat koneksi dengan Particle Api dan raspberry Anda sehingga raspberry pi dan perangkat partikel Argon Anda dapat berkomunikasi.

catatan: Saya ingin mengunggah semua kode, tetapi tidak mengizinkan saya mengunggah file.html

Langkah 6: Buat Skrip untuk Kamera Raspi

kami membuat.py sederhana untuk mengambil gambar dan itu akan memiliki anotasi tanggal dan waktu saat ini di atasnya.

kemudian kita akan membuat script cgi flood_cgi.py sehingga akan dipanggil dari web dan ini akan memerintahkan file.py untuk mengambil foto.

pastikan untuk memulai skrip cgi dengan #! /usr/bin/env python

dan juga memberikan izin apache untuk menjalankan file-file ini.

server apache berjalan pada www-data pengguna jadi setelah kami membuat file.py atau.cgi, Apache harus menjadi pemilik file

sudo chown pi:www-data flood-cgi.py

dan beri izin untuk mengeksekusi

sudo chmod a+x flood-cgi.py

Anda harus melakukan ini untuk semua file yang perlu dijalankan dari server Apache.

CATATAN: mengekspos raspberry Anda ke internet dan memberikan semua izin ini membuat raspberry Anda sangat rentan karena alasan keamanan sehingga pengguna dan izin yang ketat harus diikuti dan menginstal firewall seperti firewall yang tidak rumit (ufw)

Direkomendasikan: