İçindekiler:

Raspberry Pi ve Parçacık Argon Kullanarak Akıllı Taşkın Algılama Alarm Sistemi Nasıl Yapılır: 6 Adım
Raspberry Pi ve Parçacık Argon Kullanarak Akıllı Taşkın Algılama Alarm Sistemi Nasıl Yapılır: 6 Adım

Video: Raspberry Pi ve Parçacık Argon Kullanarak Akıllı Taşkın Algılama Alarm Sistemi Nasıl Yapılır: 6 Adım

Video: Raspberry Pi ve Parçacık Argon Kullanarak Akıllı Taşkın Algılama Alarm Sistemi Nasıl Yapılır: 6 Adım
Video: 21. Yüzyıl Türkiye Buluşmaları’nda Bu Hafta "Bilim Ve Teknolojide Zamanın İvmelenmesi" 2024, Kasım
Anonim
Image
Image
Raspberry Pi ve Parçacık Argon Kullanarak Akıllı Taşkın Algılama Alarm Sistemi Nasıl Yapılır
Raspberry Pi ve Parçacık Argon Kullanarak Akıllı Taşkın Algılama Alarm Sistemi Nasıl Yapılır

Standart sel sensörlerine sahip olmak, evinize veya iş yerinize büyük zarar gelmesini önlemek için harikadır.

Ama alarma katılmak için evde değilseniz, bu zorlaştırır.

Tabii ki akıllı olanları satın alabilirsin

Bu taşkın alarm sistemi, herhangi bir sıvıyı algılar ve alarmı tetikler ve dünyanın her yerinden erişilebilen, ister tatilde ister iş yerinde, evinizin durumunu öğrenmek istediğinizde sel ile ilgili web sayfasını günceller.

Gereçler

Raspbian çalıştıran Raspberry pi (model 3 B+ kullanıyorum)

Parçacık Argon

Koru Su Sensörü

Raspi Kamera

zil

Atlama telleri

Adım 1: Su Sensörünü Parçacıklara Bağlayın

Su Sensörünü Parçacıklara Bağlayın
Su Sensörünü Parçacıklara Bağlayın
Su Sensörünü Parçacıklara Bağlayın
Su Sensörünü Parçacıklara Bağlayın

su sensörünün GND, VCC, NC ve SIG olmak üzere 4 pini vardır ve bunlardan sadece üçünü kullanacağız.

SIG pinini Argon'da D2'ye bağlıyorum.

Şimdi, kodu yazmak ve Argon'a flash yapmak için Particle Web IDE'yi başlatabilirsiniz.

Bu nedenle, Particle function Liquid'i kaydettik ve Particle Console'dan çağrılabilen ve isFloodPresent'in boole değerini elde edebilen bir değişken isFloodPresent tanımladık ve ayrıca giriş olarak 1 değerini alan, yani mevcut sel (su) için doğru anlamına gelen sahte test için sıvı işlevini çağırdık..

Parçacık Cihazınızın Parçacık Konsolundan bu işlevi ve değişkeni görebildiğinizden emin olun.

Adım 2: Alarm Kaynağını Raspberry'ye Bağlayın

Alarm Kaynağını Raspberry'ye Bağlayın
Alarm Kaynağını Raspberry'ye Bağlayın

Breadboard'da Buzzer'ı Raspberry'nin GPIO pinine bağlayabilirsiniz.

Buzzer'ın daha küçük ucunu GND'ye (PIN 6) ve daha uzun ucunu ahudududaki pim 7'ye bağladım.

Şimdi görmek için kodu çalıştırın. Web sunucusundan tetikleyicileri alabilmesi ve buna göre yanıt verebilmesi için bu python dosyasının her zaman çalışıyor olmasına ihtiyacımız olacak.

Alternatif olarak, /etc/systemd dosyasını düzenleyerek yapabileceğiniz ahududunuzda başlangıçta bu dosyayı çalıştırabilirsiniz.

ve bu dosya apache sunucunuzun cgi klasörüne yerleştirilecektir, /var/www/html/ içinde yeni bir flood-cgi dizini oluşturdum ve cgi betiğim ile iletişim kuracak bu.py dosyasını yerleştirdim

3. Adım: Apache Sunucusunu Yapılandırın

Apache Sunucusunu Yapılandırın
Apache Sunucusunu Yapılandırın

apache sunucusunu sudo apt-get install apache2 yazarak kurabilirsiniz.

kurulduğunda, hostname -I yazarak doğrulayabilirsiniz.

ve yerel IP adresinizi alacaksınız ve tarayıcınıza gidebilir ve sunucunun çalıştığını görmelisiniz.

Adım 4: Apache'de CGI'yı etkinleştirin

Apache'de CGI'yı etkinleştirin
Apache'de CGI'yı etkinleştirin

sudo a2enmod cgi yazarak cgi'yi etkinleştirebilirsiniz

Varsayılan olarak apache'nin cgi_bin'i /usr/lib/cgi-bin içinde bulunur

burası, cgi'yi etkinleştirdikten sonra cgi betiklerinizi koyabileceğiniz yerdir.

efekti almak için apache sunucusunu yeniden başlatmanız gerekir

Cgi betiklerim için özel bir dizin istedim, bu yüzden /var/www/html/ içinde flood-cgi adında bir dizin oluşturdum

bu dizini etkinleştirmek için yazarak conf dosyası yapmak zorunda kaldım

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

ve ekran görüntüsünde gösterildiği gibi komut ekleme

daha sonra yazarak bu dizini etkinleştirin

var/www/html $ sudo a2enconf flood-cgi

şimdi apache sunucunuzu yeniden başlatabilirsiniz ve bu klasördeki tüm cgi'ler izin alındıktan sonra apache tarafından okunabilir.

Adım 5: Web Sayfasını Ayarlayın

Web Sayfasını Ayarlayın
Web Sayfasını Ayarlayın

Bu basit web hizmeti için HTML, Javascript, CSS, jquery ve ajax kullanıyorum.

Tıklanabilir beş kontrol etiketim var, Web sayfasından fotoğraf çek tıklandığında fotoğraf buton tıklama fonksiyonunu tetikleyecek ve bu fonksiyon şu şekilde görünecektir.

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

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

$.ajax({

url: 'flood-cgi/flood_cgi.py', yöntem: 'gönder', veri: { name_for_image: floodImageName }, başarı: işlev (veri) {

uyarı(veri, durum)

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

}

})

});

bu, fotoğraf çekmek için flood_cgi.py komut dosyasını çağırır ve resmi geçerli tarih ve saat tarafından oluşturulan özel adla kaydeder ve sayfaya ajax yüklenir.

Alarm durumunda bu fonksiyonu kullanabiliriz.

function callAlarm(alarmType) {

$.ajax({

url: 'sel-cgi/alarm.cgi', yöntem: 'gönder', veri: { alarm_type: alarmType }, başarı: işlev (veri) { uyarı (veri)

}, hata: function (XMLHttpRequest, textStatus, throwError) { alert(throwError) } });

}

Buzzer etiketine tıklandığında callAlarm fonksiyonu çağrılır, $("#buzzer").click(function () { callAlarm("test");

})

aşağıdaki kod, sahte sel'e tıklamak, yani Parçacık API'sini çağırmak ve işlevi çağırmak ve sıvı değerini 1 değiştirmek ve sahte bir sel olayı gerçekleştirerek sistemin tamamının beklendiği gibi çalışıp çalışmadığını kontrol etmek istediğiniz zamandır.

$("#mockFlood").click(function () { console.log("sahte sel istedi");

var selVal = 1;

$("#signal2").css("yazı tipi boyutu", "küçük");

var varName = "isFloodPresent";

var deviceID = "CİHAZ KİMLİĞİNİZ";

var accessToken = "ERİŞİM TOKENİNİZ";

if (floodVal) {

$.post("https://api.particle.io/v1/devices/" + deviceID + "/liquid?access_token=" + accessToken, { sıvı: floodVal }, işlev (veri, durum) {

if (durum == "başarılı") {

alert("Mock Flood yapıldı!!!");

} Başka {

alert("Üzgünüz, bir sorun oluştu");

}

});

}

});

Bunlar, ahududu pi ve parçacık aygıtınız Argon'un iletişim kurabilmesi için Particle Api ve ahududunuzla bağlantı kurmanız gereken ana işlevlerdir.

not: Tüm kodu yüklemek istedim, ancak.html dosyasını yüklememe izin vermiyor

Adım 6: Raspi Kamera için Komut Dosyası Oluşturun

görüntü yakalamak için basit.py oluşturuyoruz ve bu, üzerinde geçerli tarih ve saatin ek açıklamasına sahip olacak.

sonra cgi betiği flood_cgi.py oluşturacağız, böylece web'den çağrılacak ve bu.py dosyasına fotoğraf çekme komutu verecek.

cgi betiğini # ile başlattığınızdan emin olun! /usr/bin/env piton

ve ayrıca bu dosyaları çalıştırmak için apache'ye izin verin.

apache sunucusu www-data kullanıcısı üzerinde çalışır, bu nedenle.py veya.cgi dosyasını oluşturduğumuzda, apache'nin dosyanın sahibi olması gerekir

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

ve yürütme izni verin

sudo chmod a+x flood-cgi.py

apache sunucusundan çalıştırılması gereken tüm dosyalar için bunu yapmanız gerekecek.

NOT: Ahududunuzu internete maruz bırakmak ve tüm bu izinleri vermek, ahududunuzu güvenlik nedeniyle çok savunmasız hale getirir, bu nedenle katı kullanıcı ve izinlere uyulmalı ve karmaşık olmayan güvenlik duvarı (ufw) gibi güvenlik duvarı kurulmalıdır.

Önerilen: