Indholdsfortegnelse:

Sådan laver du et smart oversvømmelsesdetektionsalarmsystem ved hjælp af Raspberry Pi og Particle Argon: 6 trin
Sådan laver du et smart oversvømmelsesdetektionsalarmsystem ved hjælp af Raspberry Pi og Particle Argon: 6 trin

Video: Sådan laver du et smart oversvømmelsesdetektionsalarmsystem ved hjælp af Raspberry Pi og Particle Argon: 6 trin

Video: Sådan laver du et smart oversvømmelsesdetektionsalarmsystem ved hjælp af Raspberry Pi og Particle Argon: 6 trin
Video: Sådan laver du en smart tørklæde-frisure | Philips 2024, November
Anonim
Image
Image
Sådan laver du et smart oversvømmelsesdetektionsalarmsystem ved hjælp af Raspberry Pi og Particle Argon
Sådan laver du et smart oversvømmelsesdetektionsalarmsystem ved hjælp af Raspberry Pi og Particle Argon

At have standard oversvømmelsessensorer er fantastisk til at forhindre massiv skade på dit hjem eller din arbejdsplads.

Men det gør det svært, hvis du ikke er hjemme for at overvære alarmen.

Selvfølgelig kan du købe dem smart

Dette oversvømmelsesalarmsystem registrerer enhver væske og udløser alarm og opdaterer websiden om oversvømmelse, som kan tilgås overalt i verden, uanset om du har en afslappende ferie eller bare er på arbejde, og du vil vide mere om status for dit hus.

Forbrugsvarer

Hindbær pi (jeg bruger model 3 B+) kører raspbian

Partikel Argon

Grove Water Sensor

Raspi kamera

Summer

Jumper ledninger

Trin 1: Tilslut vandsensor til partikel

Tilslut vandføleren til partiklen
Tilslut vandføleren til partiklen
Tilslut vandføleren til partiklen
Tilslut vandføleren til partiklen

vand sensor har 4 ben, som er GND, VCC, NC og SIG, og vi kommer til at bruge kun tre af dem

Jeg tilslutter SIG -pin til D2 på Argon.

Nu kan du starte Particle Web IDE for at skrive koden og blinke til Argon

Så vi har registreret partikelfunktionsvæske og defineret en variabel isFloodPresent, der kan kaldes fra Particle Console og få den boolske værdi af isFloodPresent og også kalde funktionsvæske til mock -test, der tager værdi 1 som input, hvilket betyder sandt for oversvømmelse (vand) til stede.

Sørg for, at du er i stand til at se den funktion og variabel fra Particle Console på din Particle Device.

Trin 2: Tilslut alarmkilde til hindbær

Tilslut alarmkilde til hindbær
Tilslut alarmkilde til hindbær

På breadboard kan du slutte Buzzer til Raspberry's GPIO pin

Jeg har tilsluttet mindre ende af summer til GND (PIN 6) og længere ende til pin 7 på hindbær.

Kør nu koden for at se. Vi skal bruge denne python -fil til at køre hele tiden, så den kan modtage udløserne fra webserveren og reagere i overensstemmelse hermed.

Alternativt kan du køre denne fil ved opstart på din hindbær, som du kan gøre ved at redigere /etc /systemd

og denne fil vil blive placeret i cgi -mappen på din apache -server, Jeg har lavet en ny bibliotek flood-cgi inde/var/www/html/og placeret denne.py-fil, som vil kommunikere med mit cgi-script

Trin 3: Konfigurer Apache Server

Konfigurer Apache Server
Konfigurer Apache Server

du kan installere apache-server ved at skrive sudo apt-get install apache2

når det er installeret, kan du bekræfte ved at skrive værtsnavn -I

og du får din lokale IP -adresse, og du kan gå til din browser og skulle se serveren køre

Trin 4: Aktiver CGI på Apache

Aktiver CGI på Apache
Aktiver CGI på Apache

du kan aktivere cgi ved at skrive sudo a2enmod cgi

Som standard er cgi_bin for apache placeret i/usr/lib/cgi-bin

det er her, du kan placere dine cgi -scripts efter at have aktiveret cgi

For at få effekt, skal du genstarte apache -serveren

Jeg ville have tilpasset bibliotek til mine cgi-scripts, så jeg oprettede bibliotek i/var/www/html/kaldet flood-cgi

For at aktivere denne mappe var jeg nødt til at lave conf -fil ved at skrive

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

og tilføjelse af kommandoer som vist på skærmbillede

aktiver derefter dette bibliotek ved at skrive

var/www/html $ sudo a2enconf flood-cgi

nu kan du genstarte din apache -server igen, og al cgi fra denne mappe kan læses af apache efter tilladelsen.

Trin 5: Konfigurer websiden

Opsæt websiden
Opsæt websiden

Til denne enkle webtjeneste bruger jeg HTML, Javascript, CSS, jquery og ajax.

Jeg har fem betjeningsetiketter, der kan klikkes på, I tilfælde af at der klikkes på tag foto fra en webside, vil det udløse funktionen til fotoknap -klik, og denne funktion ser sådan ud

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

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

$.ajax ({

url: 'flood-cgi/flood_cgi.py', metode: 'post', data: {name_for_image: floodImageName}, succes: funktion (data) {

advarsel (data, status)

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

}

})

});

dette vil kalde scriptet flood_cgi.py for at tage foto og gemme billede med brugerdefineret navn, der er genereret efter den aktuelle dato og klokkeslæt, og ajax indlæses op til siden.

i tilfælde af alarm kan vi bruge denne funktion

funktion callAlarm (alarmType) {

$.ajax ({

url: 'flood-cgi/alarm.cgi', metode: 'post', data: {alarm_type: alarmType}, succes: funktion (data) {alarm (data)

}, fejl: funktion (XMLHttpRequest, textStatus, throwError) {alert (throwError)}});

}

funktionen callAlarm vil blive kaldt, når der klikkes på summerens etiket, $ ("#buzzer"). klik (funktion () {callAlarm ("test");

})

nedenstående kode er, når du vil klikke på mock flood, dvs. ringe til Particle API og kalde funktionen og ændre væskeværdien 1 og kontrollere systemet, om det hele fungerer som forventet ved at udføre en mock flood -hændelse

$ ("#mockFlood"). klik (funktion () {console.log ("mock flood har anmodet");

var floodVal = 1;

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

var varName = "isFloodPresent";

var deviceID = "DIT ENHED -ID";

var accessToken = "DIN ADGANGSTOKEN";

hvis (floodVal) {

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

hvis (status == "succes") {

alarm ("Mock Flood har gennemført !!!");

} andet {

alert ("Beklager, der var et problem");

}

});

}

});

Disse er de vigtigste funktioner, du har brug for for at oprette forbindelse til Particle Api og din hindbær, så din hindbærpi og partikelindretning Argon kan kommunikere.

Bemærk: Jeg ville uploade al kode, men det tillader mig ikke at uploade.html -fil

Trin 6: Opret script til Raspi -kamera

vi skaber enkle.py for at tage billede, og der vil have en annotering af den aktuelle dato og klokkeslæt på det.

så vil vi oprette cgi script flood_cgi.py, så det vil blive kaldt fra internettet, og dette vil kommandere.py -fil for at tage foto.

Sørg for at starte cgi script med #! /usr/bin/env python

og også give apache tilladelse til at køre disse filer.

apache-server kører på brugerens www-data, så når vi har oprettet.py- eller.cgi-filen, skal apache være ejer af filen

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

og give tilladelse til at udføre

sudo chmod a+x flood-cgi.py

du bliver nødt til at gøre dette for alle filer, der skal køre fra apache -serveren.

BEMÆRK: at udsætte din hindbær for internet og give alle disse tilladelser gør din hindbær meget sårbar af sikkerhedsmæssige årsager, så strenge bruger- og tilladelser bør følges og installere firewall som ukompliceret firewall (ufw)

Anbefalede: