Innehållsförteckning:

Så här gör du ett larmsystem för smarta översvämningar med hjälp av Raspberry Pi och Particle Argon: 6 steg
Så här gör du ett larmsystem för smarta översvämningar med hjälp av Raspberry Pi och Particle Argon: 6 steg

Video: Så här gör du ett larmsystem för smarta översvämningar med hjälp av Raspberry Pi och Particle Argon: 6 steg

Video: Så här gör du ett larmsystem för smarta översvämningar med hjälp av Raspberry Pi och Particle Argon: 6 steg
Video: The Choice is Ours (2016) Official Full Version 2024, November
Anonim
Image
Image
Hur man gör ett smart system för översvämningsdetektering med Raspberry Pi och Particle Argon
Hur man gör ett smart system för översvämningsdetektering med Raspberry Pi och Particle Argon

Att ha vanliga översvämningssensorer är bra för att förhindra massiva skador på ditt hem eller din arbetsplats.

Men det gör det svårt om du inte är hemma för att delta i larmet.

Naturligtvis kan du köpa de smarta

Detta översvämningslarmsystem upptäcker all vätska och utlöser larm och uppdaterar webbsidan om översvämning som kan nås var som helst i världen, oavsett om du har en avkopplande semester eller bara på jobbet och du vill veta om ditt hus status.

Tillbehör

Hallon pi (jag använder modell 3 B+) kör raspbian

Partikel Argon

Grove Water Sensor

Raspi -kamera

Summer

Bygelkablar

Steg 1: Anslut vattensensorn till partikeln

Anslut vattensensorn till partikeln
Anslut vattensensorn till partikeln
Anslut vattensensorn till partikeln
Anslut vattensensorn till partikeln

vattensensorn har 4 stift, som är GND, VCC, NC och SIG och vi kommer att använda bara tre av dem

Jag ansluter SIG -stift till D2 på Argon.

Nu kan du starta Particle Web IDE för att skriva koden och blinka till Argon

Så vi har registrerat partikelfunktionsvätska och definierat en variabel isFloodPresent, som kan ringas från Particle Console och erhålla det booleska värdet för isFloodPresent och även kalla funktionsvätska för mock -test som tar värde 1 som ingång vilket betyder sant för översvämning (vatten) närvarande.

se till att du kan se den funktionen och variabeln från Particle Console på din Particle Device.

Steg 2: Anslut larmkällan till hallon

Anslut larmkällan till hallon
Anslut larmkällan till hallon

På brödbräda kan du ansluta Buzzer till Raspberrys GPIO -stift

Jag har anslutit mindre ände av summer till GND (PIN 6) och längre ände till pin 7 på hallon.

Kör nu koden för att se. Vi kommer att behöva denna python -fil kör hela tiden så att den kan ta emot utlösarna från webbservern och svara därefter.

Alternativt kan du köra den här filen vid start på ditt hallon som du kan göra genom att redigera /etc /systemd

och den här filen kommer att placeras i cgi -mappen på din apache -server, Jag har gjort en ny katalog flood-cgi inuti/var/www/html/och placerat denna.py-fil som kommer att kommunicera med mitt cgi-skript

Steg 3: Konfigurera Apache Server

Konfigurera Apache Server
Konfigurera Apache Server

du kan installera apache-servern genom att skriva sudo apt-get install apache2

när det är installerat kan du verifiera genom att skriva värdnamn -I

och du får din lokala IP -adress och du kan gå till din webbläsare och ser servern köra

Steg 4: Aktivera CGI på Apache

Aktivera CGI på Apache
Aktivera CGI på Apache

du kan aktivera cgi genom att skriva sudo a2enmod cgi

Som standard ligger cgi_bin för apache i/usr/lib/cgi-bin

det är här du kan lägga dina cgi -skript efter att du har aktiverat cgi

För att få effekt måste du starta om apache -servern

Jag ville ha anpassad katalog för mina cgi-skript så jag skapade katalogen i/var/www/html/kallade flood-cgi

för att aktivera den här katalogen var jag tvungen att skapa konf -filen genom att skriva

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

och lägga till kommandon enligt skärmdumpen

aktivera sedan den här katalogen genom att skriva

var/www/html $ sudo a2enconf flood-cgi

nu kan du starta om din apache -server igen och alla cgi från den här mappen kommer att kunna läsas av apache efter tillståndet.

Steg 5: Konfigurera webbsidan

Ställ in webbsidan
Ställ in webbsidan

För denna enkla webbtjänst använder jag HTML, Javascript, CSS, jquery och ajax.

Jag har fem kontrolletiketter som är klickbara, Om du klickar på ta foto från webbsidan, kommer det att utlösa funktionen för fotoknapps klickfunktion och den här funktionen ser ut så här

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

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

$.ajax ({

url: 'flood-cgi/flood_cgi.py', metod: 'post', data: {name_for_image: floodImageName}, framgång: funktion (data) {

varning (data, status)

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

}

})

});

detta kommer att kalla skriptet flood_cgi.py för att ta foto och spara bild med anpassat namn som genereras av aktuellt datum och tid och ajax laddas upp till sidan.

vid larm kan vi använda den här funktionen

funktion callAlarm (alarmType) {

$.ajax ({

url: 'flood-cgi/alarm.cgi', metod: 'post', data: {alarm_type: alarmType}, framgång: funktion (data) {alert (data)

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

}

funktionen callAlarm kommer att ringas upp när du klickar på summeretiketten, $ ("#summer"). klicka (function () {callAlarm ("test");

})

nedanstående kod är när du vill klicka på mock flood, det vill säga ringa Particle API och ringa funktionen och ändra vätskevärdet 1 och kontrollera systemet om helheten fungerar som förväntat genom att genomföra en mock flood -händelse

$ ("#mockFlood"). klicka (function () {console.log ("mock flood har begärt");

var floodVal = 1;

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

var varName = "isFloodPresent";

var deviceID = "DITT ENHETS -ID";

var accessToken = "DITT ACCESS TOKEN";

if (floodVal) {

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

if (status == "framgång") {

alert ("Mock Flood har genomfört !!!");

} annat {

alert ("Tyvärr, det var ett problem");

}

});

}

});

Dessa är de viktigaste funktionerna du behöver för att ansluta till Particle Api och ditt hallon så att din hallonpi och partikelapparat Argon kan kommunicera.

Obs! Jag ville ladda upp all kod, men det tillåter mig inte att ladda upp.html -fil

Steg 6: Skapa skript för Raspi -kamera

vi skapar enkla.py för att fånga bild och det kommer att ha en anteckning om aktuellt datum och tid på den.

då kommer vi att skapa cgi -script flood_cgi.py så det kommer att ringas från webben och detta kommer att beordra.py -fil för att ta foto.

se till att starta cgi -skriptet med #! /usr/bin/env python

och ge även apache behörighet att köra dessa filer.

apache-servern körs på användarens www-data så när vi har skapat.py- eller.cgi-filen måste apache vara ägare till filen

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

och ge tillstånd att verkställa

sudo chmod a+x flood-cgi.py

du måste göra detta för alla filer som måste köras från apache -servern.

OBS: att exponera ditt hallon för internet och ge alla dessa behörigheter gör ditt hallon mycket sårbart av säkerhetsskäl så strikta användare och behörigheter bör följas och installera brandvägg som okomplicerad brandvägg (ufw)

Rekommenderad: