Satura rādītājs:

Kā izveidot gudru plūdu noteikšanas signalizācijas sistēmu, izmantojot Raspberry Pi un daļiņu argonu: 6 soļi
Kā izveidot gudru plūdu noteikšanas signalizācijas sistēmu, izmantojot Raspberry Pi un daļiņu argonu: 6 soļi

Video: Kā izveidot gudru plūdu noteikšanas signalizācijas sistēmu, izmantojot Raspberry Pi un daļiņu argonu: 6 soļi

Video: Kā izveidot gudru plūdu noteikšanas signalizācijas sistēmu, izmantojot Raspberry Pi un daļiņu argonu: 6 soļi
Video: Часть 1 — Аудиокнига «Анна из Зеленых Мезононов», Люси Мод Монтгомери (гл. 01–10) 2024, Novembris
Anonim
Image
Image
Kā izveidot gudru plūdu noteikšanas trauksmes sistēmu, izmantojot Raspberry Pi un daļiņu argonu
Kā izveidot gudru plūdu noteikšanas trauksmes sistēmu, izmantojot Raspberry Pi un daļiņu argonu

Standarta plūdu sensori ir lieliski, lai novērstu milzīgu kaitējumu jūsu mājām vai darba vietai.

Bet, ja neesat mājās, ir grūti apmeklēt modinātāju.

Protams, jūs varētu tos iegādāties gudrus

Šī plūdu signalizācijas sistēma nosaka jebkuru šķidrumu un iedarbina trauksmi un atjaunina tīmekļa vietni par plūdiem, kurai var piekļūt jebkurā vietā pasaulē neatkarīgi no tā, vai jums ir relaksējošas brīvdienas vai vienkārši strādājat, un vēlaties uzzināt par savas mājas stāvokli.

Piegādes

Raspberry pi (es izmantoju modeli 3 B+), kurā darbojas raspbian

Argona daļiņas

Grove ūdens sensors

Kamera Raspi

Signāls

Jumper vadi

1. darbība: pievienojiet ūdens sensoru daļiņai

Pievienojiet ūdens sensoru daļiņai
Pievienojiet ūdens sensoru daļiņai
Pievienojiet ūdens sensoru daļiņai
Pievienojiet ūdens sensoru daļiņai

ūdens sensoram ir 4 tapas, kas ir GND, VCC, NC un SIG, un mēs izmantosim tikai trīs no tām

Es savienoju SIG tapu ar Argon D2.

Tagad varat palaist Particle Web IDE, lai rakstītu kodu un zibspuldzi Argonam

Tātad mēs esam reģistrējuši daļiņu funkciju šķidrumu un definējuši mainīgo isFloodPresent, ko var izsaukt no Particle Console un iegūt loģisko vērtību isFloodPresent, kā arī izsaukt funkcijas šķidrumu izspēles testēšanai, kura vērtība 1 tiek ievadīta kā vērtība, kas nozīmē, ka pastāv plūdu (ūdens) klātbūtne.

pārliecinieties, ka varat redzēt šo funkciju un mainīgo no daļiņu ierīces daļiņu konsoles.

2. darbība. Savienojiet trauksmes avotu ar aveņu

Savienojiet trauksmes avotu ar aveņu
Savienojiet trauksmes avotu ar aveņu

Uz maizes dēļa jūs varat savienot Buzzer ar Raspberry GPIO tapu

Mazāku skaņas signāla galu esmu pievienojis GND (PIN 6), bet garāko - avenes 7. tapai.

Tagad palaidiet kodu, lai redzētu. Mums būs nepieciešams, lai šis python fails darbotos visu laiku, lai tas varētu saņemt aktivizētājus no tīmekļa servera un attiecīgi reaģēt.

Varat arī palaist šo failu aveņu palaišanas laikā, ko varat izdarīt, rediģējot /etc /systemd

un šis fails tiks ievietots jūsu apache servera cgi mapē, Esmu izveidojis jaunu direktoriju flood-cgi iekšā/var/www/html/un ievietojis šo.py failu, kas sazināsies ar manu cgi skriptu

3. darbība: konfigurējiet Apache serveri

Konfigurējiet Apache serveri
Konfigurējiet Apache serveri

jūs varat instalēt apache serveri, ierakstot sudo apt-get install apache2

kad tas ir instalēts, varat pārbaudīt, ierakstot resursdatora nosaukumu -I

un jūs saņemsiet savu vietējo IP adresi, un jūs varat doties uz savu pārlūkprogrammu un redzēt, ka serveris darbojas

4. darbība: iespējojiet CGI Apache

Iespējot CGI Apache
Iespējot CGI Apache

jūs varat iespējot cgi, ierakstot sudo a2enmod cgi

Pēc noklusējuma apache cgi_bin atrodas mapē/usr/lib/cgi-bin

šeit jūs varat ievietot savus cgi skriptus pēc cgi iespējošanas

lai panāktu efektu, jums ir jārestartē apache serveris

Es gribēju pielāgotu direktoriju saviem cgi skriptiem, tāpēc izveidoju direktoriju/var/www/html/ar nosaukumu Flood-cgi

lai iespējotu šo direktoriju, man bija jāizveido conf fails, ierakstot

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

un pievienojot komandas, kā parādīts ekrānuzņēmumā

pēc tam iespējojiet šo direktoriju, ierakstot

var/www/html $ sudo a2enconf flood-cgi

tagad jūs varat restartēt apache serveri vēlreiz, un visi cgi no šīs mapes būs redzami apache pēc atļaujas.

5. darbība: iestatiet tīmekļa lapu

Iestatiet Web lapu
Iestatiet Web lapu

Šim vienkāršajam tīmekļa pakalpojumam es izmantoju HTML, Javascript, CSS, jquery un ajax.

Man ir piecas vadības etiķetes, uz kurām var noklikšķināt, Ja no tīmekļa lapas tiek noklikšķināts uz fotoattēla uzņemšanas, tas aktivizēs fotoattēlu pogas klikšķa funkciju, un šī funkcija izskatās šādi

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

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

$.ajax ({

url: 'flood-cgi/flood_cgi.py', metode: "post", dati: {name_for_image: floodImageName}, panākumi: funkcija (dati) {

brīdinājums (dati, statuss)

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

}

})

});

tas izsauks skriptu flood_cgi.py, lai uzņemtu fotoattēlu, un saglabā attēlu ar pielāgotu nosaukumu, kas ģenerēts pēc pašreizējā datuma un laika, un ajax tiek ielādēts līdz lapai.

trauksmes gadījumā mēs varam izmantot šo funkciju

funkcija callAlarm (alarmType) {

$.ajax ({

url: 'flood-cgi/alarm.cgi', metode: "post", dati: {alarm_type: alarmType}, panākumi: funkcija (dati) {brīdinājums (dati)

}, kļūda: funkcija (XMLHttpRequest, textStatus, throError) {alert (throError)}});

}

funkcija callAlarm tiks izsaukta, noklikšķinot uz skaņas signāla etiķetes, $ ("#buzzer"). noklikšķiniet uz (funkcija () {callAlarm ("tests");

})

zemāk esošais kods ir tad, ja vēlaties noklikšķināt uz izspēles plūdiem, t.i., izsaucot daļiņu API un izsaucot funkciju un mainot šķidruma vērtību 1, un pārbaudot sistēmu, vai viss darbojas kā paredzēts, veicot izspēles plūdus

$ ("#mockFlood"). click (function () {console.log ("izspēles plūdi ir pieprasījuši");

var floodVal = 1;

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

var varName = "isFloodPresent";

var deviceID = "JŪSU IERĪCES ID";

var accessToken = "JŪSU PIEEJAMĪBA";

if (floodVal) {

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

ja (statuss == "panākumi") {

brīdinājums ("Izspēles plūdi ir veikuši !!!");

} vēl {

brīdinājums ("Atvainojiet, radās problēma");

}

});

}

});

Šīs ir galvenās funkcijas, kas nepieciešamas, lai izveidotu savienojumu ar Particle Api un aveņu, lai jūsu aveņu pi un daļiņu ierīce Argon varētu sazināties.

piezīme. Es vēlējos augšupielādēt visu kodu, taču tas neļauj augšupielādēt.html failu

6. darbība: izveidojiet skriptu Raspi kamerai

mēs veidojam vienkāršu.py, lai uzņemtu attēlu, un tajā būs pašreizējā datuma un laika anotācija.

tad mēs izveidosim cgi skriptu flood_cgi.py, lai tas tiktu izsaukts no tīmekļa, un tas komandēs.py failu, lai uzņemtu fotoattēlu.

noteikti sāciet cgi skriptu ar #! /usr/bin/env python

un arī dod apache atļauju palaist šos failus.

apache serveris darbojas ar lietotāja www datiem, tāpēc, tiklīdz mēs izveidojam.py vai.cgi failu, apache ir jābūt faila īpašniekam

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

un dod atļauju izpildīt

sudo chmod a+x flood-cgi.py

jums tas būs jādara visiem failiem, kas jāpalaiž no apache servera.

PIEZĪME: pakļaujot savu aveņu internetam un piešķirot visas šīs atļaujas, jūsu avenes ir ļoti neaizsargātas drošības apsvērumu dēļ, tāpēc ir jāievēro stingras lietotāja un atļaujas un jāinstalē ugunsmūris, piemēram, vienkāršs ugunsmūris (ufw)

Ieteicams: