Mündəricat:

Raspberry Pi və Argon Particle istifadə edərək Ağıllı Daşqın Alarm Sistemini Necə Etmək olar: 6 addım
Raspberry Pi və Argon Particle istifadə edərək Ağıllı Daşqın Alarm Sistemini Necə Etmək olar: 6 addım

Video: Raspberry Pi və Argon Particle istifadə edərək Ağıllı Daşqın Alarm Sistemini Necə Etmək olar: 6 addım

Video: Raspberry Pi və Argon Particle istifadə edərək Ağıllı Daşqın Alarm Sistemini Necə Etmək olar: 6 addım
Video: Raspberry Pi 4B в корпусе Argon ONE M.2 c SSD диском 128 ГБ, собираем сервер для Home Assistant 2024, Noyabr
Anonim
Image
Image
Raspberry Pi və Argon Particle istifadə edərək Ağıllı Daşqın Alarm Sistemini Necə Hazırlamaq olar
Raspberry Pi və Argon Particle istifadə edərək Ağıllı Daşqın Alarm Sistemini Necə Hazırlamaq olar

Standart daşqın sensorlarının olması evinizə və ya iş yerinizə böyük ziyan vurmamaq üçün əladır.

Ancaq evdə olmadıqda həyəcan siqnalı verməyi çətinləşdirir.

Əlbəttə ki, bu ağıllıları satın ala bilərsiniz

Bu daşqın siqnalizasiya sistemi hər hansı bir mayeni aşkar edir və həyəcan siqnalı verir və dünyanın hər yerində əldə edilə bilən daşqınla bağlı veb səhifəni yeniləyir, istər istirahət etmək istər istirahət, istərsə də iş yerində və evinizin vəziyyəti haqqında bilmək istəyirsiniz.

Təchizat

Raspberry pi (mən 3 B+modelindən istifadə edirəm) raspbian işləyir

Hissəcik Argon

Grove Su Sensoru

Raspi Kamera

Buzzer

Jumper telləri

Addım 1: Su Sensorunu Partikula bağlayın

Su Sensorunu Partikula Bağlayın
Su Sensorunu Partikula Bağlayın
Su Sensorunu Partikula Bağlayın
Su Sensorunu Partikula Bağlayın

su sensoru GND, VCC, NC və SIG olan 4 sancağa malikdir və onlardan yalnız üçünü istifadə edəcəyik

SIG pinini Argonda D2 -yə bağlayıram.

İndi, Argon -a kodu yazmaq və flash etmək üçün Particle Web IDE -ni işə sala bilərsiniz

Beləliklə, biz hissəcik funksiyası mayesini qeydiyyatdan keçirdik və PartFile Console -dan çağırıla bilən və isFloodPresent -in boole dəyərini əldə edə biləcəyimiz isFloodPresent dəyişənini təyin etdik və eyni zamanda daşqın (su) üçün doğru olan 1 mənasını daxil edən saxta test üçün funksiya mayesini çağırırıq..

Partikül Cihazınızın Particle Console -dan bu funksiyanı və dəyişəni görə bildiyinizə əmin olun.

Addım 2: Siqnal mənbəyini Moruqla birləşdirin

Siqnal mənbəyini Raspberry -yə qoşun
Siqnal mənbəyini Raspberry -yə qoşun

Çörək taxtasında Buzzer -i Raspberry -nin GPIO pininə qoşa bilərsiniz

Zilin daha kiçik ucunu GND -ə (PIN 6) və daha uzun ucunu moruqda 7 -ci pinlə bağladım.

İndi görmək üçün kodu işlədin. Bu python faylının hər zaman işləyəcəyinə ehtiyacımız olacaq ki, tetikleyiciləri veb serverdən alsın və buna uyğun olaraq cavab versin.

Alternativ olaraq, bu faylı /etc /systemd redaktə etməklə edə biləcəyiniz moruqda işə sala bilərsiniz

və bu fayl apache serverinizin cgi qovluğuna yerləşdiriləcək, /Var/www/html/daxilində yeni bir daşqın cgi qovluğu yaratdım və cgi skriptimlə əlaqə quracaq bu.py faylını yerləşdirdim

Addım 3: Apache Serveri konfiqurasiya edin

Apache serverini konfiqurasiya edin
Apache serverini konfiqurasiya edin

sudo apt-get install apache2 yazaraq apache server qura bilərsiniz

quraşdırıldıqda, hostname -I yazaraq yoxlaya bilərsiniz

və yerli IP ünvanınızı alacaqsınız və brauzerinizə gedə bilərsiniz və serverin işlədiyini görməlisiniz

Addım 4: Apache -də CGI -ni aktivləşdirin

Apache -də CGI -ni aktivləşdirin
Apache -də CGI -ni aktivləşdirin

sudo a2enmod cgi yazaraq cgi -ni aktivləşdirə bilərsiniz

Varsayılan olaraq apache-nin cgi_bin/usr/lib/cgi-bin-də yerləşir

cgi -ni aktiv etdikdən sonra cgi skriptlərinizi bura yerləşdirə bilərsiniz

təsir etmək üçün apache serverini yenidən başlatmalısınız

Cgi skriptlərim üçün xüsusi bir kataloq istədim, buna görə/var/www/html/-də daşqın-cgi adlı bir kataloq yaratdım

Bu qovluğu aktiv etmək üçün yazaraq conf faylını hazırlamalı oldum

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

və ekran görüntüsündə göstərildiyi kimi əmrlər əlavə edin

sonra yazaraq bu qovluğu aktiv edin

var/www/html $ sudo a2enconf sel-cgi

indi apache serverinizi yenidən başlata bilərsiniz və bu qovluqdakı bütün cgi icazədən sonra apache tərəfindən oxunacaq.

Addım 5: İnternet səhifəsini qurun

Veb səhifəni qurun
Veb səhifəni qurun

Bu sadə veb xidməti üçün HTML, Javascript, CSS, jquery və ajax istifadə edirəm.

Tıklana bilən beş nəzarət etiketim var, Veb səhifədən fotoşəkil çəkildikdə, fotoşəkil düyməsini vurma funksiyasını işə salacaq və bu funksiya belə görünür

$ ("#photobutton"). klikləyin (function () {var FloodDate = yeni Tarix ();

var FloodImageName = "Flood_IMG_" + FloodDate.toLocaleTimeString ();

$.ajax ({

url: 'sel-cgi/sel_cgi.py', üsul: 'post', məlumatlar: {name_for_image: FloodImageName}, uğur: funksiya (data) {

xəbərdarlıq (məlumat, status)

$ ("#latestpic"). attr ("src", "sel-cgi/" + FloodImageName + ".jpg");

}

})

});

bu, şəkil çəkmək üçün Flood_cgi.py skriptini çağıracaq və səhifəyə qədər cari tarix və vaxt və ajax yükləmələri ilə yaradılan xüsusi adla şəkil saxlayacaq.

siqnalizasiya vəziyyətində bu funksiyadan istifadə edə bilərik

funksiyası callAlarm (alarmType) {

$.ajax ({

url: 'sel-cgi/alarm.cgi', üsul: 'post', məlumatlar: {alarm_type: alarmType}, müvəffəqiyyət: funksiya (data) {xəbərdarlıq (məlumat)

}, səhv: funksiya (XMLHttpRequest, textStatus, throwError) {xəbərdarlıq (throwError)}});

}

zəng siqnalı tıklandığında callAlarm funksiyası çağırılacaq, $ ("#buzzer"). basın (function () {callAlarm ("test");

})

Aşağıdakı kod, istehza daşqınını vurmaq istədiyiniz zaman, yəni Particle API -ni çağırmaq və funksiyanı çağırmaq və maye dəyərini 1 dəyişdirmək və sistemin saxta daşqın hadisəsi keçirərək gözlənildiyi kimi işlədiyini yoxlamaqdır.

$ ("#mockFlood"). basın (function () {console.log ("istehza daşqını istədi");

var selVal = 1;

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

var varName = "isFloodPresent";

var deviceID = "CİHAZIN ID";

var accessToken = "SİZİN GİRİŞ TOKENİNİZ";

if (FloodVal) {

$.post ("https://api.particle.io/v1/devices/" + deviceID + "/liquid? access_token =" + accessToken, {maye: selVal}, funksiya (məlumat, status) {

əgər (status == "uğur") {

xəbərdarlıq ("Mock Flood keçirdi !!!");

} başqa {

xəbərdarlıq ("Bağışlayın, bir problem oldu");

}

});

}

});

Moruq pi və hissəcik cihazınız Argonun ünsiyyət qura bilməsi üçün Particle Api və moruq ilə əlaqə qurmaq üçün lazım olan əsas funksiyalar bunlardır.

Qeyd: Bütün kodu yükləmək istədim, amma.html faylını yükləməyimə icazə vermir

Addım 6: Raspi Camera üçün Script yaradın

şəkil çəkmək üçün sadə.py yaradırıq və bunun üzərində cari tarix və vaxtın qeydləri olacaq.

sonra cgi skriptini Flood_cgi.py yaradacağıq ki, internetdən çağırılsın və bu.py faylını çəkmək üçün əmr verəcək.

cgi skriptini #ilə başladığınızdan əmin olun! /usr/bin/env python

və həmçinin apache -dən bu faylları işə salmağa icazə verin.

apache serveri istifadəçi www-data üzərində işləyir, buna görə.py və ya.cgi faylını yaratdıqdan sonra apache faylın sahibi olmalıdır.

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

və icrasına icazə verin

sudo chmod a+x sel-cgi.py

apache serverindən işləməsi lazım olan bütün fayllar üçün bunu etməlisiniz.

QEYD: moruqunuzu internetə çıxarmaq və bütün bu icazələri vermək moruqunuzu təhlükəsizlik baxımından çox həssas edir, buna görə ciddi istifadəçi və icazələrə riayət olunmalı və mürəkkəb olmayan bir təhlükəsizlik duvarı (ufw) kimi təhlükəsizlik duvarı quraşdırılmalıdır.

Tövsiyə: