Isi kandungan:

Cara Membuat Sistem Penggera Pengesanan Banjir Pintar Menggunakan Raspberry Pi dan Particle Argon: 6 Langkah
Cara Membuat Sistem Penggera Pengesanan Banjir Pintar Menggunakan Raspberry Pi dan Particle Argon: 6 Langkah

Video: Cara Membuat Sistem Penggera Pengesanan Banjir Pintar Menggunakan Raspberry Pi dan Particle Argon: 6 Langkah

Video: Cara Membuat Sistem Penggera Pengesanan Banjir Pintar Menggunakan Raspberry Pi dan Particle Argon: 6 Langkah
Video: Detik-Detik Pegawai PLN Kesetrum di Tiang Listrik 2024, November
Anonim
Image
Image
Cara Membuat Sistem Penggera Banjir Pintar Menggunakan Raspberry Pi dan Particle Argon
Cara Membuat Sistem Penggera Banjir Pintar Menggunakan Raspberry Pi dan Particle Argon

Mempunyai sensor banjir standard sangat bagus untuk mencegah kerosakan besar di rumah atau tempat kerja anda.

Tetapi menyukarkan jika anda tidak berada di rumah untuk menghadiri penggera.

Sudah tentu anda boleh membeli yang pintar

Sistem penggera banjir ini mengesan sebarang cecair dan mencetuskan penggera dan mengemas kini laman web mengenai banjir yang boleh diakses di mana sahaja di dunia, sama ada anda sedang bersantai atau hanya di tempat kerja dan anda ingin mengetahui mengenai status rumah anda.

Bekalan

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

Argon Zarah

Sensor Air Grove

Kamera Raspi

Buzzer

Wayar pelompat

Langkah 1: Sambungkan Sensor Air ke Zarah

Sambungkan Sensor Air ke Zarah
Sambungkan Sensor Air ke Zarah
Sambungkan Sensor Air ke Zarah
Sambungkan Sensor Air ke Zarah

sensor air mempunyai 4 pin, iaitu GND, VCC, NC dan SIG dan kami hanya akan menggunakan tiga daripadanya

Saya menyambungkan pin SIG ke D2 di Argon.

Sekarang, anda boleh melancarkan IDE Partikel Web untuk menulis kod dan mem-flash ke Argon

Oleh itu, kami telah mendaftarkan cecair fungsi Partikel dan menentukan pemboleh ubahnya adalahFloodPresent, yang boleh dipanggil dari Particle Console dan memperoleh nilai boolean isFloodPresent dan juga memanggil fungsi cecair untuk ujian tiruan yang mengambil nilai 1 sebagai input yang bermaksud benar untuk banjir (air) yang ada.

pastikan anda dapat melihat fungsi dan pemboleh ubah tersebut dari Particle Console dari Particle Device anda.

Langkah 2: Sambungkan Sumber Penggera ke Raspberry

Sambungkan Sumber Penggera ke Raspberry
Sambungkan Sumber Penggera ke Raspberry

Di papan roti anda boleh menyambungkan Buzzer ke pin GPIO Raspberry

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

Sekarang jalankan kod untuk melihat. Kami memerlukan fail python ini berjalan sepanjang masa sehingga dapat menerima pencetus dari pelayan web dan bertindak balas dengan sewajarnya.

Sebagai alternatif anda boleh menjalankan fail ini pada permulaan pada raspberry anda yang boleh anda lakukan dengan menyunting / etc / systemd

dan fail ini akan diletakkan di folder cgi pelayan apache anda, Saya telah membuat direktori baru banjir-cgi di dalam / var / www / html / dan meletakkan fail.py ini yang akan berkomunikasi dengan skrip cgi saya

Langkah 3: Konfigurasikan Pelayan Apache

Konfigurasikan Pelayan Apache
Konfigurasikan Pelayan Apache

anda boleh memasang pelayan apache dengan menaip sudo apt-get install apache2

apabila dipasang, anda boleh mengesahkan dengan menaip nama host -I

dan anda akan mendapat alamat IP tempatan anda dan anda boleh menuju ke penyemak imbas anda dan sepatutnya melihat pelayan berjalan

Langkah 4: Aktifkan CGI di Apache

Dayakan CGI di Apache
Dayakan CGI di Apache

anda boleh mengaktifkan cgi dengan menaip sudo a2enmod cgi

Secara lalai cgi_bin apache terletak di / usr / lib / cgi-bin

di sinilah anda boleh meletakkan skrip cgi anda setelah mengaktifkan cgi

untuk mengambil kesannya, anda perlu memulakan semula pelayan apache

Saya mahukan direktori tersuai untuk skrip cgi saya jadi saya membuat direktori di / var / www / html / dipanggil flood-cgi

untuk mengaktifkan direktori ini saya terpaksa membuat fail conf dengan menaip

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

dan menambahkan arahan seperti yang ditunjukkan dalam tangkapan skrin

kemudian aktifkan direktori ini dengan menaip

var / www / html $ sudo a2enconf banjir-cgi

sekarang anda boleh menghidupkan semula pelayan apache anda dan semua cgi dari folder ini akan dapat dibaca oleh apache setelah mendapat kebenaran.

Langkah 5: Sediakan Laman Web

Sediakan Halaman Web
Sediakan Halaman Web

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

Saya mempunyai lima label kawalan yang boleh diklik, Sekiranya mengambil gambar diklik dari laman web, ia akan memicu fungsi klik butang foto dan fungsi ini terlihat seperti ini

$ ("# photobutton"). klik (fungsi () {var floodDate = Tarikh baru ();

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

$.ajax ({

url: 'banjir-cgi / banjir_cgi.py', kaedah: 'post', data: {name_for_image: floodImageName}, kejayaan: fungsi (data) {

amaran (data, status)

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

}

})

});

ini akan memanggil skrip flood_cgi.py untuk mengambil gambar dan menyimpan gambar dengan nama tersuai yang dihasilkan oleh tarikh dan masa semasa dan ajax dimuat hingga ke halaman.

sekiranya berlaku Penggera, kita boleh menggunakan fungsi ini

fungsi callAlarm (alarmType) {

$.ajax ({

url: 'banjir-cgi / alarm.cgi', kaedah: 'post', data: {alarm_type: alarmType}, kejayaan: fungsi (data) {alert (data)

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

}

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

})

kod di bawah adalah ketika anda ingin mengklik mock mock iaitu memanggil Particle API dan memanggil fungsi dan menukar nilai cecair 1 dan periksa sistem jika keseluruhan berfungsi seperti yang diharapkan dengan melakukan peristiwa banjir palsu

$ ("# mockFlood"). klik (function () {console.log ("mock mock telah diminta");

var floodVal = 1;

$ ("# signal2"). css ("font-size", "small");

var varName = "isFloodPresent";

var deviceID = "ID PERANTI ANDA";

var accessToken = "TOKEN AKSES ANDA";

jika (floodVal) {

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

jika (status == "kejayaan") {

amaran ("Mock Flood telah dilakukan !!!");

} lain {

amaran ("Maaf, ada masalah");

}

});

}

});

Ini adalah fungsi utama yang anda perlukan untuk membuat hubungan dengan Particle Api dan raspberry anda supaya raspberry pi dan peranti zarah anda Argon dapat berkomunikasi.

nota: Saya mahu memuat naik semua kod, tetapi tidak membenarkan saya memuat naik fail.html

Langkah 6: Buat Skrip untuk Kamera Raspi

kami membuat.py mudah untuk menangkap gambar dan yang akan mempunyai penjelasan tarikh dan masa semasa di atasnya.

maka kita akan membuat script cgi flood_cgi.py sehingga akan dipanggil dari web dan ini akan memerintahkan fail.py untuk mengambil gambar.

pastikan memulakan skrip cgi dengan #! / usr / bin / env python

dan juga memberikan kebenaran apache untuk menjalankan fail-fail ini.

pelayan apache berjalan pada data www pengguna jadi setelah kami membuat fail.py atau.cgi, apache perlu menjadi pemilik fail tersebut

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

dan memberi kebenaran untuk melaksanakan

sudo chmod a + x banjir-cgi.py

anda perlu melakukan ini untuk semua fail yang perlu dijalankan dari pelayan apache.

CATATAN: mengekspos raspberry anda ke internet dan memberikan semua kebenaran ini menjadikan raspberry anda sangat terdedah kerana alasan keselamatan sehingga pengguna dan kebenaran yang ketat harus diikuti dan memasang firewall seperti firewall yang tidak rumit (ufw)

Disyorkan: