Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
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
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
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
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
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
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)