Sisukord:

Kuidas teha nutikat üleujutuste tuvastamise häiresüsteemi Raspberry Pi ja osakeste argooni abil: 6 sammu
Kuidas teha nutikat üleujutuste tuvastamise häiresüsteemi Raspberry Pi ja osakeste argooni abil: 6 sammu

Video: Kuidas teha nutikat üleujutuste tuvastamise häiresüsteemi Raspberry Pi ja osakeste argooni abil: 6 sammu

Video: Kuidas teha nutikat üleujutuste tuvastamise häiresüsteemi Raspberry Pi ja osakeste argooni abil: 6 sammu
Video: EX14 robot - kuidas teha joonejälgimist 2024, November
Anonim
Image
Image
Kuidas teha nutikat üleujutuste tuvastamise häiresüsteemi Raspberry Pi ja osakeste argooni abil
Kuidas teha nutikat üleujutuste tuvastamise häiresüsteemi Raspberry Pi ja osakeste argooni abil

Tavalised üleujutusandurid on suurepärased, et vältida teie kodu või töökoha suuri kahjustusi.

Kuid see teeb raskeks, kui te pole kodus äratuskellal.

Muidugi võite need nutikad osta

See üleujutuste häiresüsteem tuvastab vedeliku ja käivitab häire ning uuendab üleujutuste veebisaiti, millele pääseb juurde kõikjal maailmas, olenemata sellest, kas teil on lõõgastav puhkus või lihtsalt tööl ja soovite oma maja olekust teada saada.

Tarvikud

Raspberry pi (kasutan mudelit 3 B+) töötab raspbianiga

Argooni osake

Grove veeandur

Raspi kaamera

Sumin

Jumper juhtmed

Samm: ühendage veeandur osakestega

Ühendage veeandur osakestega
Ühendage veeandur osakestega
Ühendage veeandur osakestega
Ühendage veeandur osakestega

veeanduril on 4 tihvti, mis on GND, VCC, NC ja SIG ning kasutame neist ainult kolme

Ühendan SIG tihvti Argooni D2 -ga.

Nüüd saate käivitada Particle Web IDE, et kirjutada kood ja välgutada Argooni

Seega oleme registreerinud osakeste funktsioonivedeliku ja määratlenud muutuja isFloodPresent, mille saab helistada osakeste konsoolilt ja saada isolefloole väärtuse isFloodPresent, ning kutsuda ka funktsioonivedeliku näitamiskatseteks, mis võtavad sisendina väärtuse 1, mis tähendab tõde üleujutuse (vee) olemasolu korral.

veenduge, et näete seda funktsiooni ja muutujat osakeste seadme osakeste konsoolist.

2. samm: ühendage häireallikas Raspberryga

Ühendage häireallikas Vaarikaga
Ühendage häireallikas Vaarikaga

Leivaplaadil saate Buzzeri ühendada Raspberry GPIO -pistikuga

Olen ühendanud summeri väiksema otsa GND -ga (PIN 6) ja pikema otsa vaarika tihvtiga 7.

Nüüd käivitage kood, et näha. Vajame, et see python -fail töötaks kogu aeg, et see saaks käivitajad veebiserverilt vastu võtta ja vastavalt reageerida.

Teise võimalusena võite selle faili käivitada oma vaarika käivitamisel, mida saate teha, muutes /etc /systemd

ja see fail paigutatakse teie apache serveri cgi kausta, Olen loonud kataloogi flood-cgi kataloogi/var/www/html/ja asetanud selle.py faili, mis suhtleb minu cgi skriptiga

Samm: seadistage Apache server

Seadistage Apache Server
Seadistage Apache Server

saate installida apache serveri, tippides sudo apt-get install apache2

kui see on installitud, saate seda kinnitada, sisestades hostinime -I

ja saate oma kohaliku IP -aadressi ning võite minna oma brauserisse ja näha serverit töötamas

Samm: lubage Apache'is CGI

Luba CGI Apache'is
Luba CGI Apache'is

saate cgi lubada, tippides sudo a2enmod cgi

Vaikimisi asub apache cgi_bin asukohas/usr/lib/cgi-bin

siia saate panna oma cgi skriptid pärast cgi lubamist

efekti saavutamiseks tuleb apache server taaskäivitada

Tahtsin oma cgi skriptidele kohandatud kataloogi, nii et lõin kataloogi kataloogi/var/www/html/nimega Flood-cgi

selle kataloogi lubamiseks pidin tegema conf faili tippides

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

ja käskude lisamine, nagu ekraanipildil näidatud

seejärel lubage see kataloog tippides

var/www/html $ sudo a2enconf flood-cgi

nüüd saate oma apache serveri taaskäivitada ja kõik selle kausta cgi on pärast luba apache poolt loetavad.

Samm: seadistage veebileht

Veebilehe seadistamine
Veebilehe seadistamine

Selle lihtsa veebiteenuse jaoks kasutan HTML -i, Javascripti, CSS -i, jquery ja ajaxi.

Mul on viis kontrollmärgist, mida saab klõpsata, Kui pildistamiseks klõpsatakse veebilehel, käivitab see fotonupu klõpsamise funktsiooni ja see funktsioon näeb välja selline

$ ("#photobutton"). click (function () {var floodDate = uus Kuupäev ();

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

$.ajax ({

url: 'flood-cgi/flood_cgi.py', meetod: postitus, andmed: {name_for_image: floodImageName}, edu: funktsioon (andmed) {

hoiatus (andmed, olek)

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

}

})

});

see kutsub foto pildistamiseks skripti flood_cgi.py ja salvestab pildi kohandatud nimega, mis on loodud praeguse kuupäeva ja kellaaja järgi ning ajax laaditakse lehele.

Alarmi korral saame seda funktsiooni kasutada

function callAlarm (alarmType) {

$.ajax ({

url: 'flood-cgi/alarm.cgi', meetod: postitus, andmed: {alarm_type: alarmType}, edu: funktsioon (andmed) {märguanne (andmed)

}, viga: function (XMLHttpRequest, textStatus, throError) {alert (throError)}});

}

funktsioon callAlarm helistatakse, kui klõpsatakse sumisti sildil, $ ("#sumin"). click (function () {callAlarm ("test");

})

allpool olev kood on siis, kui soovite klõpsata pilkeuputusel, st helistada Particle API -le ja helistada funktsioonile ning muuta vedeliku väärtust 1 ja kontrollida, kas kogu töötab ootuspäraselt, korraldades üleujutusürituse

$ ("#mockFlood"). click (function () {console.log ("näouputus on taotlenud");

var FloVV = 1;

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

var varName = "isFloodPresent";

var deviceID = "TEIE SEADME ID";

var accessToken = "SINU JUURDEPÄÄS TOKEN";

if (floodVal) {

$.post ("https://api.particle.io/v1/devices/" + deviceID + "/liquid? access_token =" + accessToken, {vedelik: floodVal}, funktsioon (andmed, olek) {

if (olek == "edu") {

alarm ("Mock Flood on läbi viinud !!!");

} muud {

alert ("Vabandust, tekkis probleem");

}

});

}

});

Need on peamised funktsioonid, mida vajate ühenduse loomiseks partikli Api ja vaarikaga, et teie vaarika pi ja osakeste seade Argon saaksid suhelda.

märkus. Tahtsin kogu koodi üles laadida, kuid see ei luba.html -faili üles laadida

Samm: looge Raspi kaamera jaoks skript

loome pildi tegemiseks lihtsa.py, millel on praeguse kuupäeva ja kellaaja märkused.

siis loome cgi skripti flood_cgi.py, nii et seda kutsutakse veebist ja see käsib pildistada.py faili.

alustage cgi skripti kindlasti #-ga! /usr/bin/env python

samuti anna apache'ile luba nende failide käitamiseks.

apache server töötab kasutaja www-andmetega, nii et kui oleme loonud.py või.cgi faili, peab apache olema faili omanik

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

ja anda luba teostamiseks

sudo chmod a+x flood-cgi.py

peate seda tegema kõigi failide puhul, mida tuleb käivitada apache serverist.

MÄRKUS. Vaarika Interneti -ühenduse avaldamine ja kõigi nende lubade andmine muudab teie vaarika turvalisuse kaalutlustel väga haavatavaks, seega tuleb järgida rangeid kasutajaid ja õigusi ning installida tulemüür nagu lihtne tulemüür (ufw)

Soovitan: