Obsah:
- Zásoby
- Krok 1: Připojte vodní senzor k částici
- Krok 2: Připojte zdroj alarmu k Raspberry
- Krok 3: Konfigurace serveru Apache
- Krok 4: Povolte CGI na Apache
- Krok 5: Nastavení webové stránky
- Krok 6: Vytvořte skript pro kameru Raspi
Video: Jak vytvořit inteligentní poplachový detekční systém pomocí Raspberry Pi a částicového argonu: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
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
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
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
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
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
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:
Sestavte zařízení pro sledování energie pomocí částicového elektronu: 5 kroků (s obrázky)
Vybudujte zařízení pro monitorování energie pomocí částicového elektronu: Ve většině podniků považujeme energii za obchodní náklady. Účtenka se zobrazuje v naší poště nebo e -mailech a platíme ji před datem zrušení. Se vznikem IoT a chytrých zařízení začíná Energy zaujímat nové místo v obchodní „bala
Chladicí a detekční systém pro psy: 5 kroků
Chladicí a detekční systém pro psy: Dobrý den, jmenuji se Bryan a mám dva psy. Přemýšlel jsem, jak je v horkém dni ochladit v přívěsu. Moje řešení je vytvořit chladicí a detekční systém. Detekční systém má zajistit, aby byl systém aktivní, když jsou psi
Inteligentní zahradničení založené na IoT a inteligentní zemědělství pomocí ESP32: 7 kroků
Inteligentní zahradničení založené na IoT a inteligentní zemědělství pomocí ESP32: Svět se mění v čase a také v zemědělství. V dnešní době lidé integrují elektroniku do všech oblastí a zemědělství pro to není výjimkou. Toto sloučení elektroniky v zemědělství pomáhá zemědělcům a lidem, kteří spravují zahrady
Jak vytvořit inteligentní koridor pomocí konfigurovatelného časovače: 6 kroků (s obrázky)
Jak vytvořit inteligentní koridor pomocí konfigurovatelného časovače: Tento tutoriál ukazuje, jak vytvořit inteligentní koridor pomocí konfigurovatelného časovače
Jak vytvořit autonomního robota hrajícího basketbal pomocí IRobota Vytvořit jako základ: 7 kroků (s obrázky)
Jak vytvořit autonomního robota hrajícího basketbal pomocí IRobota Vytvořit jako základ: Toto je můj příspěvek k výzvě iRobot Create. Nejtěžší na celém tomto procesu pro mě bylo rozhodnout, co bude robot dělat. Chtěl jsem předvést skvělé funkce Create a zároveň přidat trochu robo vkusu. Všechny moje