Բովանդակություն:
- Պարագաներ
- Քայլ 1: Connectրի տվիչը միացրեք մասնիկին
- Քայլ 2. Connectարթուցիչի աղբյուրը միացրեք ազնվամորիին
- Քայլ 3: Կարգավորեք Apache սերվերը
- Քայլ 4: Միացրեք CGI- ն Apache- ում
- Քայլ 5: Ստեղծեք վեբ էջը
- Քայլ 6: Ստեղծեք սցենար Raspi տեսախցիկի համար
Video: Ինչպես կատարել ջրհեղեղի հայտնաբերման խելացի ահազանգման համակարգ ՝ օգտագործելով Raspberry Pi և Particle Argon: 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Standardրհեղեղի ստանդարտ սենսորներ ունենալը հիանալի է կանխելու ձեր տան կամ աշխատավայրի զանգվածային վնասը:
Բայց դա դժվարացնում է, եթե տանը չես ՝ ահազանգին մասնակցելու համար:
Իհարկե, դուք կարող եք գնել դրանք խելացի
Floodրհեղեղի ահազանգման այս համակարգը հայտնաբերում է ցանկացած հեղուկ և ազդանշան է տալիս և թարմացնում վեբ էջը ջրհեղեղի մասին, որը հասանելի է աշխարհի ցանկացած վայրում ՝ անկախ արձակուրդից կամ աշխատանքի վայրից, և ցանկանում եք իմանալ ձեր տան կարգավիճակի մասին:
Պարագաներ
Raspberry pi (ես օգտագործում եմ 3 B+մոդելը) raspbian վազում
Մասնիկ Արգոն
Grove Water Sensor
Raspi տեսախցիկ
Բզզոց
Jumper լարերը
Քայլ 1: Connectրի տվիչը միացրեք մասնիկին
ջրի տվիչն ունի 4 կապում, որոնք են GND, VCC, NC և SIG, և մենք պատրաստվում ենք օգտագործել դրանցից միայն երեքը
Ես SIG կապը միացնում եմ Արգոնի վրա D2- ին:
Այժմ, դուք կարող եք գործարկել Particle Web IDE- ն ՝ կոդը և ֆլեշը գրելու Արգոնին
Այսպիսով, մենք գրանցել ենք Particle գործառույթի հեղուկ և սահմանել isFloodPresent փոփոխականը, որը կարելի է կանչել Particle Console- ից և ստանալ isFloodPresent- ի բուլյան արժեքը, ինչպես նաև ֆունկցիայի հեղուկ կոչել ծաղրական փորձարկման համար, որը 1 -ին արժեք է ընդունում, ինչը նշանակում է ճշմարիտ ջրհեղեղի (ջրի) համար.
համոզվեք, որ կարող եք տեսնել այդ գործառույթը և փոփոխականը ձեր մասնիկային սարքի Particle Console- ից:
Քայլ 2. Connectարթուցիչի աղբյուրը միացրեք ազնվամորիին
Հացաթղթի վրա կարող եք Buzzer- ը միացնել Raspberry- ի GPIO քորոցին
Ես ազդանշանի ավելի փոքր ծայրը միացրել եմ GND- ին (PIN 6), իսկ ավելի երկար ծայրը `ազնվամորիի 7 -րդ կապին:
Այժմ գործարկեք կոդը ՝ տեսնելու համար: Մեզ պետք կգա, որ այս պիթոնի ֆայլը գործի անընդհատ, որպեսզի այն կարողանա վեբ սերվերից ստացվող ազդակներ ստանալ և համապատասխանաբար արձագանքել:
Այլապես կարող եք գործարկել այս ֆայլը ձեր ազնվամորիի վրա, որը կարող եք անել ՝ խմբագրելով /etc /systemd
և այս ֆայլը կտեղադրվի ձեր apache սերվերի cgi թղթապանակում, Ես ստեղծել եմ նոր գրացուցակ flood-cgi ներսում/var/www/html/և տեղադրել եմ այս.py ֆայլը, որը կհաղորդի իմ cgi սցենարին
Քայլ 3: Կարգավորեք Apache սերվերը
կարող եք տեղադրել apache սերվեր ՝ մուտքագրելով sudo apt-get install apache2
երբ այն տեղադրված է, կարող եք ստուգել `մուտքագրելով hostname -I
և դուք կստանաք ձեր տեղական IP հասցեն և կարող եք գնալ ձեր դիտարկիչին և պետք է տեսնեք սերվերի աշխատանքը
Քայլ 4: Միացրեք 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)
Խորհուրդ ենք տալիս:
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ - Քայլ առ քայլ: 4 քայլ
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ | Քայլ առ քայլ. Այս նախագծում ես նախագծելու եմ մի պարզ Arduino մեքենայի հետադարձ կայանման սենսորային միացում ՝ օգտագործելով Arduino UNO և HC-SR04 ուլտրաձայնային տվիչ: Այս Arduino- ի վրա հիմնված Car Reverse ազդանշանային համակարգը կարող է օգտագործվել ինքնավար նավարկության, ռոբոտների ռանգի և այլ տեսականու համար
GSM, GPS և արագացուցիչի օգտագործմամբ վթարային ահազանգման համակարգ. 5 քայլ (նկարներով)
GSM- ի, GPS- ի և արագացուցիչի օգտագործմամբ դժբախտ պատահարների ահազանգման համակարգ. Խնդրում եմ քվեարկեք ինձ մրցույթի համար Խնդրում եմ քվեարկեք մրցույթի համար Մեր օրերում դժբախտ պատահարի հետևանքով շատ մարդիկ են զոհվում ճանապարհին, որի հիմնական պատճառը «փրկարարական աշխատանքների հետաձգումն է»: Այս խնդիրը շատ մեծ է զարգացող երկրներում, այնպես որ ես նախագծեցի այս նախագիծը ՝ փրկելու համար
Քնկոտության ահազանգման համակարգ `3 քայլ
Քնկոտության ահազանգման համակարգ. Ամեն տարի շատ մարդիկ մահանում են մահվան ելքով ճանապարհատրանսպորտային պատահարների պատճառով ամբողջ աշխարհում, և քնկոտ վարելը ճանապարհատրանսպորտային պատահարների և մահերի հիմնական պատճառներից մեկն է: Հոգնածությունը և միկրո քունը մեքենայի ղեկին հաճախ լուրջ վարքագծի հիմնական պատճառն են
Arduino Home ահազանգման համակարգ `4 քայլ
Arduino Home Alarm System: Սա հիանալի Arduino նախագիծ է, որը կարող եք սկսել Arduino- ի հիմնական բաղադրիչներից: Այս նախագիծը կգործի որպես ահազանգման համակարգ ՝ որպես անհատի ահազանգ, եթե ինչ -որ մեկը ներխուժել է ընտրության որոշակի տարածք: Հիանալի է, եթե մտադիր եք սկսել նախագիծ, որը
Ինչպես կառուցել շարժման հայտնաբերման համակարգ Arduino- ով. 7 քայլ
Ինչպես կառուցել շարժման հայտնաբերման համակարգ Arduino- ով. Կառուցեք շարժման և ներկայության արտադրության հաշվիչ ՝ օգտագործելով Arduino- ով ծրագրավորված և Ubidots- ի օգնությամբ գործող փետուր HUZZAH- ը: Խելացի տներում և խելացի արտադրությունում արդյունավետ ֆիզիկական շարժման և ներկայության հայտնաբերումը կարող է շատ օգտակար լինել տարբեր ծրագրերում: