Tartalomjegyzék:

Hogyan készítsünk intelligens árvíz -érzékelő riasztórendszert Raspberry Pi és Argon részecskék használatával: 6 lépés
Hogyan készítsünk intelligens árvíz -érzékelő riasztórendszert Raspberry Pi és Argon részecskék használatával: 6 lépés

Videó: Hogyan készítsünk intelligens árvíz -érzékelő riasztórendszert Raspberry Pi és Argon részecskék használatával: 6 lépés

Videó: Hogyan készítsünk intelligens árvíz -érzékelő riasztórendszert Raspberry Pi és Argon részecskék használatával: 6 lépés
Videó: 😂 This is how Viktor Orbán disposed of the Euronews reporter 👍Like OV 👍 2024, November
Anonim
Image
Image
Hogyan készítsünk intelligens árvíz -érzékelő riasztórendszert Raspberry Pi és Argon részecske használatával
Hogyan készítsünk intelligens árvíz -érzékelő riasztórendszert Raspberry Pi és Argon részecske használatával

A szabványos árvízérzékelők nagyszerűek az otthoni vagy munkahelyi hatalmas károk megelőzésére.

De megnehezíti, ha nem vagy otthon, hogy részt vegyél a riasztón.

Természetesen okosat is vásárolhat

Ez az árvízjelző rendszer minden folyadékot észlel, és riasztást indít, és frissíti az árvízről szóló weboldalt, amely bárhol elérhető a világon, legyen szó akár pihentető nyaralásáról, akár csak a munkahelyéről, és szeretne tájékozódni háza állapotáról.

Kellékek

Raspberry pi (3 B+modellt használok), amely raspbian -t futtat

Argon részecske

Grove vízérzékelő

Raspi kamera

Berregő

Jumper vezetékek

Lépés: Csatlakoztassa a vízérzékelőt a részecskékhez

Csatlakoztassa a vízérzékelőt a részecskékhez
Csatlakoztassa a vízérzékelőt a részecskékhez
Csatlakoztassa a vízérzékelőt a részecskékhez
Csatlakoztassa a vízérzékelőt a részecskékhez

A vízérzékelő 4 tűvel rendelkezik, amelyek GND, VCC, NC és SIG, és csak hármat fogunk használni

Csatlakoztatom a SIG pin -t az Argon D2 -hez.

Most elindíthatja a Particle Web IDE -t a kód írásához és az Argon -hoz való villogáshoz

Tehát regisztráltuk a részecske -függvény folyadékot, és definiáltunk egy változót isFloodPresent, amely a Particle Console -ból hívható le, és megkapjuk az isFloodPresent logikai értékét, valamint a függvényfolyadékot is meghívjuk a próbateszteléshez, amely bemenetként 1 értéket vesz fel, ami igaz az árvíz (víz) jelenlétére.

győződjön meg arról, hogy látja ezt a funkciót és változót a részecske -eszköz részecske konzoljából.

2. lépés: Csatlakoztassa a riasztási forrást a Raspberry -hez

Csatlakoztassa a riasztásforrást a Raspberry -hez
Csatlakoztassa a riasztásforrást a Raspberry -hez

A kenyértáblán csatlakoztathatja a Buzzer -t a Raspberry GPIO -tűjéhez

A zümmögő kisebb végét a GND -hez kötöttem (PIN 6), a hosszabbat pedig a málna 7 -es tűjéhez.

Most futtassa a kódot a megtekintéshez. Szükségünk lesz arra, hogy ez a python fájl folyamatosan futjon, hogy megkaphassa a triggereket a webszervertől, és ennek megfelelően válaszolhasson.

Alternatív megoldásként futtathatja ezt a fájlt a málna indításakor, amelyet az /etc /systemd szerkesztésével tehet meg

és ez a fájl az apache szerver cgi mappájába kerül, Új könyvtárat hoztam létre a/var/www/html/könyvtárban, és elhelyeztem ezt a.py fájlt, amely kommunikálni fog a cgi szkriptemmel

3. lépés: Az Apache szerver konfigurálása

Konfigurálja az Apache szervert
Konfigurálja az Apache szervert

telepítheti az apache szervert a sudo apt-get install apache2 begépelésével

ha telepítve van, ellenőrizheti a gazdagépnév -I beírásával

és megkapja a helyi IP -címet, és elindíthatja a böngészőt, és látnia kell a kiszolgáló futását

4. lépés: Engedélyezze a CGI -t az Apache -on

A CGI engedélyezése az Apache -on
A CGI engedélyezése az Apache -on

engedélyezheti a cgi -t a sudo a2enmod cgi begépelésével

Alapértelmezés szerint az apache cgi_bin a/usr/lib/cgi-bin mappában található

ide helyezheti a cgi parancsfájlokat a cgi engedélyezése után

a hatás eléréséhez újra kell indítani az apache szervert

Egyéni könyvtárat akartam a cgi szkriptekhez, ezért létrehoztam a/var/www/html/könyvtárat

ennek a könyvtárnak a bekapcsolásához be kellett állítanom a conf fájlt gépeléssel

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

és parancsok hozzáadása a képernyőképen látható módon

majd engedélyezze ezt a könyvtárat gépeléssel

var/www/html $ sudo a2enconf flood-cgi

most újraindíthatja az apache kiszolgálót, és a mappából származó összes cgi az apache számára olvasható lesz az engedély után.

5. lépés: A weboldal beállítása

Állítsa be a weboldalt
Állítsa be a weboldalt

Ehhez az egyszerű webszolgáltatáshoz HTML -t, Javascript -et, CSS -t, jquery -t és ajax -ot használok.

Öt kattintható vezérlőcímkém van, Abban az esetben, ha a fénykép készítésére kattintanak a weboldalon, akkor a fénykép gomb kattintási funkciója aktiválódik, és ez a funkció így néz ki

$ ("#photobutton"). click (function () {var FloDate = new Date ();

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

$.ajax ({

url: 'flood-cgi/flood_cgi.py', módszer: 'post', adatok: {name_for_image: floodImageName}, siker: function (data) {

riasztás (adatok, állapot)

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

}

})

});

ez meghívja a Flood_cgi.py parancsfájlt, hogy fényképet készítsen, és az aktuális dátum és idő által generált egyéni névvel menti a képet, és az ajax betölti az oldalt.

riasztás esetén használhatjuk ezt a funkciót

function callAlarm (alarmType) {

$.ajax ({

url: 'flood-cgi/alarm.cgi', módszer: 'post', adatok: {alarm_type: alarmType}, siker: funkció (adatok) {riasztás (adatok)

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

}

a callAlarm funkció hívásra kerül, ha a zümmögő címkére kattint, $ ("#zümmögő"). click (function () {callAlarm ("teszt");

})

Az alábbi kód akkor jelenik meg, amikor a mock Floodra szeretne kattintani, azaz meghívja a Particle API -t, és meghívja a függvényt, és megváltoztatja a 1 értéket, és ellenőrizze a rendszert, ha az egész a várakozásoknak megfelelően működik egy álvízi esemény végrehajtásával

$ ("#mockFlood"). click (function () {console.log ("álvíz kért");

var floodVal = 1;

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

var varName = "isFloodPresent";

var deviceID = "AZ ESZKÖZAzonosítója";

var accessToken = "AZ ÖN HOZZÁFÉRÉSE";

if (floodVal) {

$.post ("https://api.particle.io/v1/devices/" + deviceID + "/liquid? access_token =" + accessToken, {liquid: floodVal}, függvény (adatok, állapot) {

if (állapot == "siker") {

riasztás ("A Mock Flood lebonyolította !!!");

} más {

alert ("Sajnáljuk, hiba történt");

}

});

}

});

Ezek a fő funkciók, amelyekkel kapcsolatba kell lépnie a Particle Api -val és a málnával, hogy a málna pi és a részecske -eszköz Argon kommunikálni tudjon.

Megjegyzés: Fel akartam tölteni az összes kódot, de nem teszi lehetővé.html fájl feltöltését

6. lépés: Szkript létrehozása a Raspi Camera számára

Egyszerű.py -t készítünk a kép rögzítéséhez, és az aktuális dátum és idő feliratozása lesz rajta.

akkor létrehozzuk a cgi script flood_cgi.py fájlt, így a webről lesz hívva, és ez parancsot ad a.py fájlra a fénykép készítéséhez.

győződjön meg róla, hogy a cgi szkriptet #-al kezdi! /usr/bin/env python

és engedélyezze az apache számára a fájlok futtatását.

Az apache szerver a felhasználói www-adatokon fut, így a.py vagy.cgi fájl létrehozása után az apache-nek a fájl tulajdonosának kell lennie

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

és engedélyt ad a végrehajtásra

sudo chmod a+x flood-cgi.py

ezt minden olyan fájl esetében meg kell tennie, amelyet apache szerverről kell futtatni.

MEGJEGYZÉS: ha a málnát az internetnek teszi ki, és megadja mindezeket az engedélyeket, biztonsági okokból nagyon sebezhetővé teszi a málnáját, ezért szigorú felhasználókat és engedélyeket kell követni, és telepíteni kell a tűzfalat, mint az egyszerű tűzfalat (ufw)

Ajánlott: