Obsah:

Jak vytvořit inteligentní poplachový detekční systém pomocí Raspberry Pi a částicového argonu: 6 kroků
Jak vytvořit inteligentní poplachový detekční systém pomocí Raspberry Pi a částicového argonu: 6 kroků

Video: Jak vytvořit inteligentní poplachový detekční systém pomocí Raspberry Pi a částicového argonu: 6 kroků

Video: Jak vytvořit inteligentní poplachový detekční systém pomocí Raspberry Pi a částicového argonu: 6 kroků
Video: AIBOX – videoanalýza založená na umělé inteligenci 2024, Listopad
Anonim
Image
Image
Jak vytvořit inteligentní poplachový detekční systém pomocí Raspberry Pi a částicového argonu
Jak vytvořit inteligentní poplachový detekční systém pomocí Raspberry Pi a částicového argonu

Mít standardní povodňové senzory je skvělé, aby se zabránilo masivnímu poškození vašeho domova nebo pracoviště.

Ale dělá to těžké, pokud nejste doma, abyste se zúčastnili alarmu.

Samozřejmě si můžete koupit ty chytré

Tento povodňový poplachový systém detekuje jakoukoli kapalinu a spustí poplach a aktualizuje webovou stránku o povodni, ke které je možné přistupovat kdekoli na světě, ať už trávíte odpočinkovou dovolenou nebo právě v práci a chcete vědět o stavu svého domu.

Zásoby

Raspberry pi (používám model 3 B+) se systémem Raspbian

Částice Argon

Senzor vody Grove

Fotoaparát Raspi

Bzučák

Propojovací vodiče

Krok 1: Připojte vodní senzor k částici

Připojte vodní senzor k částici
Připojte vodní senzor k částici
Připojte vodní senzor k částici
Připojte vodní senzor k částici

vodní senzor má 4 piny, které jsou GND, VCC, NC a SIG a použijeme pouze tři z nich

Připojuji SIG pin k D2 na Argonu.

Nyní můžete spustit Particle Web IDE pro napsání kódu a flash pro Argon

Zaregistrovali jsme tedy funkci Particle liquid a definovali jsme proměnnou isFloodPresent, kterou lze volat z konzoly Particle Console a získat booleovskou hodnotu isFloodPresent a také volat funkční kapalinu pro falešné testování, které bere hodnotu 1 jako vstup, což znamená true pro přítomnou povodeň (vodu).

ujistěte se, že vidíte tuto funkci a proměnnou z konzoly Particle ve vašem zařízení s částicemi.

Krok 2: Připojte zdroj alarmu k Raspberry

Připojte zdroj alarmu k Raspberry
Připojte zdroj alarmu k Raspberry

Na prkénku můžete připojit Buzzer ke kolíku GPIO Raspberry

Připojil jsem menší konec bzučáku na GND (PIN 6) a delší konec na pin 7 na malině.

Nyní spusťte kód a podívejte se. Budeme potřebovat, aby byl tento soubor pythonu stále spuštěný, aby mohl přijímat spouštěcí události z webového serveru a odpovídajícím způsobem reagovat.

Alternativně můžete tento soubor spustit při spuštění na malině, což lze provést úpravou souboru /etc /systemd

a tento soubor bude umístěn do složky cgi vašeho serveru apache, Vytvořil jsem nový adresář flood-cgi uvnitř/var/www/html/a umístil tento soubor.py, který bude komunikovat s mým skriptem cgi

Krok 3: Konfigurace serveru Apache

Konfigurujte server Apache
Konfigurujte server Apache

server apache můžete nainstalovat zadáním sudo apt-get install apache2

když je nainstalován, můžete ověřit zadáním názvu hostitele -I

a dostanete svou místní IP adresu a můžete zamířit do svého prohlížeče a měli byste vidět spuštěný server

Krok 4: Povolte CGI na Apache

Povolte CGI na Apache
Povolte CGI na Apache

cgi můžete povolit zadáním sudo a2enmod cgi

Ve výchozím nastavení se cgi_bin apache nachází v/usr/lib/cgi-bin

zde můžete vkládat skripty cgi po povolení cgi

aby se účinek projevil, je třeba restartovat server apache

Chtěl jsem vlastní skript pro své cgi skripty, takže jsem vytvořil adresář v/var/www/html/nazvaný flood-cgi

pro povolení tohoto adresáře jsem musel vytvořit soubor conf zadáním

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

a přidávání příkazů podle obrázku

pak povolte tento adresář zadáním

var/www/html $ sudo a2enconf flood-cgi

nyní můžete restartovat server apache znovu a všechny cgi z této složky budou čitelné pomocí apache po povolení.

Krok 5: Nastavení webové stránky

Nastavte webovou stránku
Nastavte webovou stránku

Pro tuto jednoduchou webovou službu používám HTML, Javascript, CSS, jquery a ajax.

Mám pět ovládacích štítků, na které lze kliknout, V případě, že na webovou stránku kliknete na fotografii, spustí se funkce kliknutí na tlačítko fotografie a tato funkce vypadá takto

$ ("#photobutton"). klikněte (funkce () {var floodDate = new Date ();

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

$.ajax ({

URL: 'flood-cgi/flood_cgi.py', metoda: 'post', data: {name_for_image: floodImageName}, úspěch: funkce (data) {

výstraha (data, stav)

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

}

})

});

toto zavolá skript flood_cgi.py k pořízení fotografie a uloží obrázek s vlastním názvem generovaným aktuálním datem a časem a načte se ajax až na stránku.

v případě alarmu můžeme tuto funkci použít

funkce callAlarm (alarmType) {

$.ajax ({

URL: 'flood-cgi/alarm.cgi', metoda: 'post', data: {alarm_type: alarmType}, úspěch: funkce (data) {upozornění (data)

}, chyba: funkce (XMLHttpRequest, textStatus, throwError) {alert (throwError)}});

}

funkce callAlarm bude vyvolána po kliknutí na štítek bzučáku, $ ("#bzučák"). klikněte (funkce () {callAlarm ("test");

})

níže uvedený kód je, když chcete kliknout na falešnou záplavu, tj. volat API pro částice a zavolat funkci a změnit hodnotu kapaliny 1 a zkontrolovat systém, pokud celý funguje podle očekávání provedením falešné povodňové události

$ ("#mockFlood"). click (funkce () {console.log ("falešná záplava si vyžádala");

var floodVal = 1;

$ ("#signal2"). css ("velikost písma", "malá");

var varName = "isFloodPresent";

var deviceID = "ID VAŠEHO ZAŘÍZENÍ";

var accessToken = "VAŠE PŘÍSTUPOVÉ TOKEN";

if (floodVal) {

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

if (status == "success") {

alert („Falešná povodeň provedla !!!“);

} else {

alert („Omlouváme se, došlo k problému“);

}

});

}

});

Toto jsou hlavní funkce, které potřebujete k navázání spojení s Particle Api a vaší malinou, aby vaše Raspberry Pi a částicové zařízení Argon mohly komunikovat.

poznámka: Chtěl jsem nahrát veškerý kód, ale nedovoluje mi to nahrát soubor.html

Krok 6: Vytvořte skript pro kameru Raspi

vytváříme jednoduchý.py pro zachycení obrázku, který bude obsahovat anotaci aktuálního data a času.

poté vytvoříme skript cgi flood_cgi.py, takže bude volán z webu a tím se přikáže soubor.py k pořízení fotografie.

ujistěte se, že spustíte skript cgi s #! /usr/bin/env python

a také dát Apache povolení ke spuštění těchto souborů.

server apache běží na uživatelských www datech, takže jakmile vytvoříme soubor.py nebo.cgi, apache musí být vlastníkem souboru

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

a dát povolení k provedení

sudo chmod a+x flood-cgi.py

budete to muset udělat pro všechny soubory, které je třeba spustit ze serveru apache.

POZNÁMKA: vystavení vaší maliny internetu a poskytnutí všech těchto oprávnění činí vaši malinu velmi zranitelnou z bezpečnostních důvodů, takže byste měli dodržovat přísná oprávnění uživatelů a instalovat firewall jako nekomplikovaný firewall (ufw)

Doporučuje: