Բովանդակություն:

Ինչպես կատարել ջրհեղեղի հայտնաբերման խելացի ահազանգման համակարգ ՝ օգտագործելով Raspberry Pi և Particle Argon: 6 քայլ
Ինչպես կատարել ջրհեղեղի հայտնաբերման խելացի ահազանգման համակարգ ՝ օգտագործելով Raspberry Pi և Particle Argon: 6 քայլ

Video: Ինչպես կատարել ջրհեղեղի հայտնաբերման խելացի ահազանգման համակարգ ՝ օգտագործելով Raspberry Pi և Particle Argon: 6 քայլ

Video: Ինչպես կատարել ջրհեղեղի հայտնաբերման խելացի ահազանգման համակարգ ՝ օգտագործելով Raspberry Pi և Particle Argon: 6 քայլ
Video: Շիրակի մարզի Արթիկ քաղաքում նույնպես նշեցին Հաղթանակի տոնը 2024, Նոյեմբեր
Anonim
Image
Image
Ինչպես կատարել խելացի ջրհեղեղի հայտնաբերման ահազանգման համակարգ ՝ օգտագործելով Raspberry Pi և Particle Argon
Ինչպես կատարել խելացի ջրհեղեղի հայտնաբերման ահազանգման համակարգ ՝ օգտագործելով Raspberry Pi և Particle Argon

Standardրհեղեղի ստանդարտ սենսորներ ունենալը հիանալի է կանխելու ձեր տան կամ աշխատավայրի զանգվածային վնասը:

Բայց դա դժվարացնում է, եթե տանը չես ՝ ահազանգին մասնակցելու համար:

Իհարկե, դուք կարող եք գնել դրանք խելացի

Floodրհեղեղի ահազանգման այս համակարգը հայտնաբերում է ցանկացած հեղուկ և ազդանշան է տալիս և թարմացնում վեբ էջը ջրհեղեղի մասին, որը հասանելի է աշխարհի ցանկացած վայրում ՝ անկախ արձակուրդից կամ աշխատանքի վայրից, և ցանկանում եք իմանալ ձեր տան կարգավիճակի մասին:

Պարագաներ

Raspberry pi (ես օգտագործում եմ 3 B+մոդելը) raspbian վազում

Մասնիկ Արգոն

Grove Water Sensor

Raspi տեսախցիկ

Բզզոց

Jumper լարերը

Քայլ 1: Connectրի տվիչը միացրեք մասնիկին

Connectրի տվիչը միացրեք մասնիկին
Connectրի տվիչը միացրեք մասնիկին
Connectրի տվիչը միացրեք մասնիկին
Connectրի տվիչը միացրեք մասնիկին

ջրի տվիչն ունի 4 կապում, որոնք են GND, VCC, NC և SIG, և մենք պատրաստվում ենք օգտագործել դրանցից միայն երեքը

Ես SIG կապը միացնում եմ Արգոնի վրա D2- ին:

Այժմ, դուք կարող եք գործարկել Particle Web IDE- ն ՝ կոդը և ֆլեշը գրելու Արգոնին

Այսպիսով, մենք գրանցել ենք Particle գործառույթի հեղուկ և սահմանել isFloodPresent փոփոխականը, որը կարելի է կանչել Particle Console- ից և ստանալ isFloodPresent- ի բուլյան արժեքը, ինչպես նաև ֆունկցիայի հեղուկ կոչել ծաղրական փորձարկման համար, որը 1 -ին արժեք է ընդունում, ինչը նշանակում է ճշմարիտ ջրհեղեղի (ջրի) համար.

համոզվեք, որ կարող եք տեսնել այդ գործառույթը և փոփոխականը ձեր մասնիկային սարքի Particle Console- ից:

Քայլ 2. Connectարթուցիչի աղբյուրը միացրեք ազնվամորիին

Միացրեք rmարթուցիչի աղբյուրը ազնվամորիին
Միացրեք rmարթուցիչի աղբյուրը ազնվամորիին

Հացաթղթի վրա կարող եք Buzzer- ը միացնել Raspberry- ի GPIO քորոցին

Ես ազդանշանի ավելի փոքր ծայրը միացրել եմ GND- ին (PIN 6), իսկ ավելի երկար ծայրը `ազնվամորիի 7 -րդ կապին:

Այժմ գործարկեք կոդը ՝ տեսնելու համար: Մեզ պետք կգա, որ այս պիթոնի ֆայլը գործի անընդհատ, որպեսզի այն կարողանա վեբ սերվերից ստացվող ազդակներ ստանալ և համապատասխանաբար արձագանքել:

Այլապես կարող եք գործարկել այս ֆայլը ձեր ազնվամորիի վրա, որը կարող եք անել ՝ խմբագրելով /etc /systemd

և այս ֆայլը կտեղադրվի ձեր apache սերվերի cgi թղթապանակում, Ես ստեղծել եմ նոր գրացուցակ flood-cgi ներսում/var/www/html/և տեղադրել եմ այս.py ֆայլը, որը կհաղորդի իմ cgi սցենարին

Քայլ 3: Կարգավորեք Apache սերվերը

Կարգավորեք Apache սերվերը
Կարգավորեք Apache սերվերը

կարող եք տեղադրել apache սերվեր ՝ մուտքագրելով sudo apt-get install apache2

երբ այն տեղադրված է, կարող եք ստուգել `մուտքագրելով hostname -I

և դուք կստանաք ձեր տեղական IP հասցեն և կարող եք գնալ ձեր դիտարկիչին և պետք է տեսնեք սերվերի աշխատանքը

Քայլ 4: Միացրեք CGI- ն Apache- ում

Միացնել CGI- ն Apache- ում
Միացնել CGI- ն Apache- ում

Դուք կարող եք միացնել cgi- ն ՝ մուտքագրելով sudo a2enmod cgi

Լռելյայնորեն apache- ի cgi_bin- ը գտնվում է/usr/lib/cgi-bin- ում

սա այն վայրն է, որտեղ դուք կարող եք տեղադրել ձեր cgi սցենարները `cgi- ն միացնելուց հետո

ուժի մեջ մտնելու համար հարկավոր է վերագործարկել apache սերվերը

Ես ուզում էի իմ cgi սցենարների համար հարմար գրացուցակ, այնպես որ ես ստեղծեցի/var/www/html/գրացուցակ, որը կոչվում է flood-cgi

Այս գրացուցակը միացնելու համար ես պետք է կազմաձևեի conf ֆայլ ՝ մուտքագրելով

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

և հրամանների ավելացում, ինչպես ցույց է տրված սքրինշոթում

ապա միացրեք այս գրացուցակը `մուտքագրելով

var/www/html $ sudo a2enconf flood-cgi

այժմ դուք կարող եք նորից վերագործարկել ձեր apache սերվերը, և այս թղթապանակի բոլոր cgi- ն apache- ի կողմից կարդալու են թույլտվությունից հետո:

Քայլ 5: Ստեղծեք վեբ էջը

Կարգավորել վեբ էջը
Կարգավորել վեբ էջը

Այս պարզ վեբ ծառայության համար ես օգտագործում եմ HTML, Javascript, CSS, jquery և ajax:

Ես ունեմ հինգ հսկիչ պիտակներ, որոնք սեղմելի են, Այն դեպքում, երբ լուսանկարը կտտացվում է վեբ էջից, այն կաշխատի լուսանկարի կոճակի սեղմման գործառույթը, և այս գործառույթը այսպիսին է թվում

$ ("#photobutton"). կտտացրեք (գործառույթ () {var floodDate = նոր ամսաթիվ ();

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

$.ajax ({

url: 'flood-cgi/flood_cgi.py', մեթոդ ՝ «փակցնել», տվյալներ ՝ {name_for_image: floodImageName}, հաջողություն. գործառույթ (տվյալներ) {

ահազանգ (տվյալներ, կարգավիճակ)

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

}

})

});

սա կանչելու է flood_cgi.py սցենարը լուսանկարելու համար և պահում է պատկերը, որը ստեղծվել է ընթացիկ ամսաթվով և ժամով և այաքսով բեռնում է մինչև էջը:

ահազանգի դեպքում մենք կարող ենք օգտագործել այս գործառույթը

գործառույթը callAlarm (alarmType) {

$.ajax ({

url: 'flood-cgi/alarm.cgi', մեթոդ ՝ «փակցնել», տվյալներ ՝ {alarm_type: alarmType}, հաջողություն. գործառույթ (տվյալներ) {ահազանգ (տվյալներ)

}, սխալ. գործառույթ (XMLHttpRequest, textStatus, throwError) {alert (throwError)}});

}

գործառույթը callAlarm կկոչվի, երբ ազդանշանային ազդանշանը սեղմվի, $ ("#buzzer"): կտտացրեք (գործառույթ () {callAlarm ("փորձարկում");

})

ստորև նշված կոդն այն է, երբ ցանկանում եք սեղմել կեղծ ջրհեղեղը.

$ ("#mockFlood"). կտտացրեք (գործառույթ () {console.log ("ծաղրահեղեղը պահանջվել է");

var floodVal = 1;

$ ("#signal2"). css ("տառատեսակի չափ", "փոքր");

var varName = "isFloodPresent";

var deviceID = "ՔՈ ՍԱՐՔԻ ID";

var accessToken = "ՔՈ ՄԱՍՆԱԳԻՏԱԿԱՆ ՄԱՍԻՆ";

եթե (floodVal) {

$.post ("https://api.particle.io/v1/devices/" + deviceID + "/liquid? access_token =" + accessToken, {հեղուկ: floodVal}, գործառույթ (տվյալներ, կարգավիճակ) {

եթե (կարգավիճակը == "հաջողություն") {

զգոնություն («Mրհեղեղը տեղի ունեցավ !!!»);

} ուրիշ {

զգուշացում («Կներեք, խնդիր առաջացավ»);

}

});

}

});

Սրանք այն հիմնական գործառույթներն են, որոնք անհրաժեշտ են Particle Api- ի և ձեր ազնվամորու հետ կապ հաստատելու համար, որպեսզի ձեր ազնվամորի pi- ն և մասնիկների սարքը Արգոնը կարողանա հաղորդակցվել:

Նշում. Ես ուզում էի վերբեռնել ամբողջ ծածկագիրը, բայց դա ինձ թույլ չի տալիս վերբեռնել.html ֆայլ

Քայլ 6: Ստեղծեք սցենար Raspi տեսախցիկի համար

մենք ստեղծում ենք պարզ.py ՝ նկարը գրավելու համար, և դրա վրա կլինեն ընթացիկ ամսաթվի և ժամի ծանոթագրություններ:

այնուհետև մենք կստեղծենք cgi script flood_cgi.py, որպեսզի այն կանչվի համացանցից, և դա կտա.py ֆայլը լուսանկարելու համար:

Համոզվեք, որ սկսեք cgi սցենարը #! /usr/bin/env պիթոն

ինչպես նաև apache թույլտվություն տալ այս ֆայլերը գործարկելու համար:

apache սերվերն աշխատում է օգտվողի www-տվյալների վրա, այնպես որ.py կամ.cgi ֆայլը ստեղծելուց հետո apache- ը պետք է լինի ֆայլի սեփականատերը

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

և թույլտվություն տալ կատարման

sudo chmod a+x flood-cgi.py

դուք պետք է դա անեք բոլոր ֆայլերի համար, որոնք պետք է գործարկվեն apache սերվերից:

ՈEՇԱԴՐՈԹՅՈՆ. Ձեր ազնվամորու ինտերնետին ցուցադրելը և այս բոլոր թույլտվությունները տալը ձեր ազնվամորին շատ խոցելի է դարձնում անվտանգության նկատառումներից ելնելով, ուստի պետք է հետևել խստագույն օգտագործողին և թույլտվություններին և տեղադրել firewall- ը, ինչպես պարզեցված firewall- ը (ufw)

Խորհուրդ ենք տալիս: