INHOUDSOPGAWE:

Hoe om 'n slim vloedopsporing alarmstelsel te maak met behulp van Framboos Pi en Partikel Argon: 6 stappe
Hoe om 'n slim vloedopsporing alarmstelsel te maak met behulp van Framboos Pi en Partikel Argon: 6 stappe

Video: Hoe om 'n slim vloedopsporing alarmstelsel te maak met behulp van Framboos Pi en Partikel Argon: 6 stappe

Video: Hoe om 'n slim vloedopsporing alarmstelsel te maak met behulp van Framboos Pi en Partikel Argon: 6 stappe
Video: Zo maak je een smart nachtkastje met behulp van de natuur | DIY | Eigen Huis & Tuin 2024, November
Anonim
Image
Image
Hoe om 'n slim vloedopsporing alarmstelsel te maak met behulp van Framboos Pi en Partikel Argon
Hoe om 'n slim vloedopsporing alarmstelsel te maak met behulp van Framboos Pi en Partikel Argon

Om standaard vloedsensors te hê, is goed om groot skade aan u huis of werkplek te voorkom.

Maar dit maak dit moeilik as u nie tuis is om die alarm by te woon nie.

U kan natuurlik die slim koop

Hierdie vloedalarmstelsel ontdek enige vloeistof en veroorsaak alarm en werk die webblad op oor vloed wat oral in die wêreld verkry kan word, of u nou 'n ontspanne vakansie het of net op die werk is en u wil weet oor die status van u huis.

Voorrade

Framboos pi (ek gebruik model 3 B+) wat raspbian gebruik

Deeltjie Argon

Grove Watersensor

Raspi kamera

Gonser

Springdrade

Stap 1: Koppel die watersensor aan die deeltjie

Koppel watersensor aan deeltjie
Koppel watersensor aan deeltjie
Koppel watersensor aan deeltjie
Koppel watersensor aan deeltjie

watersensor het 4 penne, wat GND, VCC, NC en SIG is, en ons gaan slegs drie daarvan gebruik

Ek verbind SIG -pen met D2 op Argon.

Nou kan u Particle Web IDE begin om die kode te skryf en na Argon te flits

Ons het dus Particle function liquid geregistreer en 'n veranderlike isFloodPresent gedefinieer, wat van Particle Console gebel kan word en die booleaanse waarde van isFloodPresent kan verkry word, en funksionele vloeistof ook vir skanderingstoetsing genoem, wat waarde 1 as inset neem, wat waar is vir vloed (water) teenwoordig.

maak seker dat u die funksie en veranderlike van die deeltjiekonsole van u deeltjie -toestel kan sien.

Stap 2: Koppel die alarmbron aan Framboos

Koppel alarmbron aan Framboos
Koppel alarmbron aan Framboos

Op broodbord kan u Buzzer aan die Framboos GPIO -pen koppel

Ek het die kleiner kant van die gonser aan die GND (PIN 6) gekoppel, en die langer punt aan die pen 7 op die framboos.

Begin nou die kode om te sien. Ons benodig hierdie python -lêer die hele tyd sodat dit die snellers van die webbediener kan ontvang en dienooreenkomstig kan reageer.

U kan ook hierdie lêer op die framboos op die framboos laat loop, wat u kan doen deur /etc /systemd te redigeer

en hierdie lêer word in die cgi -lêergids van u apache -bediener geplaas, Ek het 'n nuwe gids flood-cgi binne/var/www/html/gemaak en hierdie.py-lêer geplaas wat met my cgi-script sal kommunikeer

Stap 3: Stel Apache Server op

Stel Apache Server op
Stel Apache Server op

U kan apache-bediener installeer deur sudo apt-get install apache2 te tik

as dit geïnstalleer is, kan u dit verifieer deur gasheernaam -I in te tik

en u kry u plaaslike IP -adres, en u kan na u blaaier gaan en die bediener moet sien loop

Stap 4: Aktiveer CGI op Apache

Aktiveer CGI op Apache
Aktiveer CGI op Apache

u kan cgi aktiveer deur sudo a2enmod cgi in te tik

By verstek is cgi_bin van apache geleë in/usr/lib/cgi-bin

dit is waar u u cgi -skrifte kan plaas nadat u cgi moontlik gemaak het

Om die effek te verkry, moet u die apache -bediener herlaai

Ek wou 'n persoonlike gids vir my cgi-skrifte hê, en ek het 'n gids in/var/www/html/flood-cgi geskep

Om hierdie gids moontlik te maak, moes ek 'n conf -lêer maak deur te tik

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

en voeg opdragte by soos op die skermkiekie getoon

aktiveer dan hierdie gids deur te tik

var/www/html $ sudo a2enconf flood-cgi

nou kan u u apache -bediener weer begin en alle cgi uit hierdie vouer kan na toestemming deur apache gelees word.

Stap 5: Stel die webblad op

Stel die webblad op
Stel die webblad op

Vir hierdie eenvoudige webdiens gebruik ek HTML, Javascript, CSS, jquery en ajax.

Ek het vyf kontroletikette wat klikbaar is, As daar op die neem -foto van die webblad geklik word, sal dit die klikknoppie van die fotoknoppie aktiveer en hierdie funksie lyk so

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

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

$.ajax ({

url: 'flood-cgi/flood_cgi.py', metode: 'pos', data: {name_for_image: floodImageName}, sukses: funksie (data) {

waarskuwing (data, status)

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

}

})

});

Dit sal die flood_cgi.py -skrip oproep om 'n foto te neem en 'n prentjie stoor met 'n pasgemaakte naam wat gegenereer word deur die huidige datum en tyd en ajax laai na die bladsy.

in die geval van alarm, kan ons hierdie funksie gebruik

funksie callAlarm (alarmType) {

$.ajax ({

url: 'vloed-cgi/alarm.cgi', metode: 'pos', data: {alarm_type: alarmType}, sukses: funksie (data) {waarskuwing (data)

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

}

die funksie callAlarm sal gebel word as daar op die gonsetiket geklik word, $ ("#buzzer"). klik (function () {callAlarm ("test");

})

Die onderstaande kode is wanneer u op 'n bespotlike vloed wil klik, dws die Particle API bel en die funksie skakel en die vloeistofwaarde 1 verander en die stelsel kontroleer of die geheel werk soos verwag deur 'n bespotlike vloedgebeurtenis uit te voer

$ ("#mockFlood"). klik (function () {console.log ("skynvloed het versoek");

var floodVal = 1;

$ ("#sein2"). css ("lettergrootte", "klein");

var varName = "isFloodPresent";

var deviceID = "U TOESTEL -ID";

var accessToken = "U TOEGANGSTEKEN";

as (floodVal) {

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

if (status == "sukses") {

waarskuwing ("Mock Flood het uitgevoer !!!");

} anders {

alert ("Jammer, daar was 'n probleem");

}

});

}

});

Dit is die belangrikste funksies wat u nodig het om verbinding te maak met Particle Api en u framboos, sodat u framboos -pi en deeltjie -toestel Argon kan kommunikeer.

let wel: ek wou alle kode oplaai, maar ek kan nie 'n.html -lêer oplaai nie

Stap 6: Skep script vir Raspi -kamera

ons skep 'n eenvoudige.py -beeld om 'n prentjie op te neem, en dit bevat 'n aantekening van die huidige datum en tyd.

dan sal ons 'n cgi -script flood_cgi.py skep, sodat dit van die web af gebel word, en dit sal die.py -lêer beveel om 'n foto te neem.

maak seker dat u cgi -script begin met #! /usr/bin/env python

en gee ook apache toestemming om hierdie lêers uit te voer.

apache-bediener werk op www-data van gebruikers, dus sodra ons die.py- of.cgi-lêer geskep het, moet apache die eienaar van die lêer wees

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

en toestemming gee om uit te voer

sudo chmod a+x flood-cgi.py

u moet dit doen vir alle lêers wat vanaf die apache -bediener moet loop.

LET WEL: blootstelling van u framboos aan die internet en die gee van al hierdie toestemmings maak u framboos baie kwesbaar om veiligheidsredes, dus moet streng gebruikers en toestemmings gevolg word en 'n firewall soos ongekompliseerde firewall (ufw) geïnstalleer word

Aanbeveel: