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

Դրենաժի խցանման դետեկտոր. 11 քայլ (նկարներով)
Դրենաժի խցանման դետեկտոր. 11 քայլ (նկարներով)

Video: Դրենաժի խցանման դետեկտոր. 11 քայլ (նկարներով)

Video: Դրենաժի խցանման դետեկտոր. 11 քայլ (նկարներով)
Video: Քնային զարկերակների էնդարտերէկտոմիա 2024, Դեկտեմբեր
Anonim
Image
Image

Թույլ մի տվեք, որ խցանված արտահոսքը դանդաղեցնի ձեզ: Վերադառնալով մեր արձակուրդից ՝ ինձ և կնոջս զարմացրեց մեր բնակարանի հատակը ծածկող ջուրը, և մենք պարզեցինք, որ դա նույնիսկ մաքուր ջուր չէ, այն ամենուր թափվում է: Դրենաժը մաքրելուց և հատակը մաքրելուց հետո ինձ մոտ առաջացավ այս հարցը. Խցանված ջրահեռացումները ոչ միայն կարող են կանգնեցնել ձեր տունը, այլև գրպաններից լրացուցիչ ծախսեր կծախսեն, միջինը $ 206 -ը, ըստ HomeAdvisor- ի, խցանված արտահոսքի մաքրման ծախսերն են, բացի վնասված գորգերի, փայտե կահույքի և այլնի թաքնված ծախսերից: Մեր գաղափարն է `թույլ տալ տան սեփականատերերին, ինչպես նաև ձեռնարկությունների, ինչպիսիք են քաղաքի/միացությունների սպասարկման բաժիններն ու մասնագիտացված ծառայություններ մատուցողները, ունենալ արդյունավետ և խելացի համակարգ, որը նախազգուշացնում է հնարավորինս շուտ ձեռնարկել գործողություններ, ինչը նպաստում է խելացի քաղաքների հարստացմանը կարևորով: առանձնահատկությունը:

Չնայած խցանների հայտնաբերումը կարող է իրականացվել մի շարք տեխնիկայի միջոցով, օրինակ ՝ գազի սենսորների կամ ներքին մեխանիզմների օգտագործմամբ, մեր թիմը կենտրոնացած էր ձայնը որպես մուտքագրում օգտագործելու վրա, քանի որ մենք գիտենք, որ բացված խողովակի թակելը տարբերվում է տեղի ունեցածից: փակ լինելու ժամանակ: Այս պարզ հայեցակարգի համաձայն, եթե մենք կարողանանք մոդել պատրաստել այն խցանումների ժամանակ խողովակի մակերևույթում հայտնվող ձայնային ձևերը, ինչպես նաև բացված խողովակներում այդ օրինաչափությունները, ապա կարող ենք կիրառել մոդելը `ակտիվորեն հայտնաբերելու համար, երբ խցանը սկսում է կազմվել, և մենք զանգահարել որոշ հաշիվներ:

Վարկեր ՝ հանուն

  • Մոհամեդ Հասան
  • Ահմեդ Էմամ

Projectրագիրը մանրամասն 3 փուլ է իրականացվում այս նախագծում ՝ տվյալների հավաքում, ուսուցում և կանխատեսում:

Նախքան այս համակարգը իրական կյանքում կիրառելը, մենք պետք է ստեղծեինք ուժեղ մոդելավորման միջավայր, որտեղ մենք ունենք խողովակ, հոսող ջուր և ինչ -որ կերպ մոդելավորելու խցանումը: Այսպիսով, մենք ստացանք մի խողովակ, ջրի գուլպան, որի ջրային աղբյուրը դա անում է լոգարանի մեջ և օգտագործելով լոգարանի մակերեսը ՝ փակելու խողովակը, որը ներկայացնում է խցանումը: Այս տեսանյութում մենք բացատրում ենք, թե ինչպես ենք մենք կառուցել միջավայրը և ինչպես ենք հավաքել տվյալներ մոդելային ուսուցման համար:

Եվ այս հաջորդ տեսանյութում, որը ցույց է տալիս, թե ինչպես ենք մենք կատարել համակարգի և մոդելի փորձարկումները ՝ բաց ռեժիմում, այնուհետև խցանման ռեժիմում և, այնուամենայնիվ, բաց ռեժիմին

Այսպիսով, եկեք քայլ առ քայլ ուսումնասիրենք մեր իրականացումը.

Քայլ 1: Փորձը

Փորձը
Փորձը
Փորձը
Փորձը
Փորձը
Փորձը
Փորձը
Փորձը

Այս սցենարում մենք օգտագործում ենք մի փոքր ջրատար, որը միացված է մեր ապարատային և ձայնային տվիչին: Սարքավորումը կարդում է սենսորի արժեքը և այն հետ ուղարկում Cloud: Դա արվում է 10 րոպե խցանված խողովակի համար, ևս 10 րոպե `չփակված խողովակի համար:

Քայլ 2: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ

I- Արդուինո

Soundրի ձայնը խողովակի ներսում հայտնաբերելու համար մեզ անհրաժեշտ է ձայնային տվիչ: Այնուամենայնիվ, Raspberry Pi 3 -ը չունի անալոգային GPIO: Այս խնդիրը լուծելու համար մենք օգտագործում ենք Arduino- ն, քանի որ Arduino- ն ունի անալոգային GPIO: Այսպիսով, մենք Grove Sound սենսորը միացնում ենք Grove Arduino վահանին և Shield- ը միացնում Arduino UNO 3. Հետո մենք Arduino & Raspberry- ին միացնում ենք USB մալուխի միջոցով: Grove Sound տվիչի մասին լրացուցիչ տեղեկություններ ստանալու համար կարող եք ստուգել դրա տվյալների թերթիկը: Տվյալների թերթիկում կարող եք գտնել սենսորի արժեքները կարդալու օրինակելի կոդ: Նմուշի ծածկագիրը գրեթե օգտագործվում է փոքր փոփոխությունների դեպքում: Ստորև բերված կոդի մեջ մենք սենսորը միացնում ենք վահանի A0- ին: Սերիայի վրա գրելու համար մենք օգտագործում ենք Serial.begin () գործառույթը: Ազնվամորու բաուդ փոխարժեքը 115200 սահմանելու համար Տվյալները կուղարկվեն Ազնվամորիին, եթե այն ավելի մեծ է, քան որոշակի շեմը `աղմուկը նվազեցնելու համար: Շատ փորձություններ են կատարվել` ցանկալի շեմի և հետաձգման արժեքները ընտրելու համար: Պարզվել է, որ շեմը 400 է, իսկ ուշացման արժեքը `10 միլիվայրկյան: Շեմը ընտրվել է նորմալ աղմուկը զտելու և ապահովելու համար, որ ամպին կուղարկվեն միայն նշանակալից տվյալները: Հետաձգումը հեռու է ընտրված `ապահովելու համար, որ սենսորը անմիջապես հայտնաբերի խողովակի ներսում հոսքի ձայնի որևէ փոփոխություն:

II- Raspberry Pi 3 Raspberry- ում android բաներ ներբեռնելու համար կարող եք ներբեռնել Android Things Console- ի վերջին տարբերակը: Այս նախագծում մենք օգտագործում ենք տարբերակը ՝ OIR1.170720.017: հետևեք Raspberry կայքի քայլերին `ազնվամորիի վրա օպերացիոն համակարգը տեղադրելու համար, Windows- ի համար կարող եք օգտագործել այս քայլերը Տեղադրվելուց հետո կարող եք միացնել Ազնվամորին ձեր համակարգչին USB- ի միջոցով: Այնուհետև ձեր համակարգչի վահանակում օգտագործեք ստորև բերված հրամանը ՝ ազնվամորի IP ստանալու համար

nmap -sn 192.168.1.*

IP- ն ստանալուց հետո միացեք ձեր ազնվամորիին ՝ օգտագործելով ստորև բերված հրամանը

adb միացնել

Ձեր ազնվամորին WiFi- ին միացնելու համար (ավելացրեք ձեր SSID- ն ու գաղտնաբառը)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-a WifiSetupService. Connect

-e ssid *****

-e գաղտնաբառ ****

Քայլ 3. Google Cloud - գրանցում

Google Cloud - գրանցում
Google Cloud - գրանցում
Google Cloud - գրանցում
Google Cloud - գրանցում
Google Cloud - գրանցում
Google Cloud - գրանցում
Google Cloud - գրանցում
Google Cloud - գրանցում

Google- ն առաջարկում է անվճար մակարդակ բոլոր օգտվողների համար մեկ տարի ժամկետով ՝ 300 $ առաստաղով, Google- ի շնորհիվ:): Հետևեք էկրաններին ՝ Google Cloud- ում նոր նախագիծ ստեղծելու համար

Քայլ 4. Google Cloud - Pub/Sub

Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub

Google Cloud Pub/Sub- ը լիարժեք կառավարվող իրական ժամանակի հաղորդագրությունների ծառայություն է, որը թույլ է տալիս հաղորդագրություններ ուղարկել և ստանալ անկախ ծրագրերի միջև:

Քայլ 5. Google Cloud - IOT Core

Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core

II- IOT CoreA լիովին կառավարվող ծառայություն ՝ աշխարհով մեկ ցրված սարքերից հեշտությամբ և ապահով կերպով միացնելու, կառավարելու և ներթափանցելու տվյալները: IOT Core still Beta, դրա հասանելիություն ունենալու համար անհրաժեշտ է Google- ին ներկայացնել հիմնավորում: Մենք խնդրանքը ներկայացրինք, մեր հիմնավորումը այս մրցույթն էր: Google- ը հաստատեց, կրկին շնորհակալություն Google- ին:): Ազնվամորին սենսորային տվյալներ կուղարկի IOT Core- ին, որը ընթերցումներ կփոխանցի նախորդ քայլին ստեղծված PubSub թեմային

Քայլ 6: Google Cloud - ամպի գործառույթներ

Google Cloud - ամպի գործառույթներ
Google Cloud - ամպի գործառույթներ
Google Cloud - ամպի գործառույթներ
Google Cloud - ամպի գործառույթներ

Ամպային գործառույթները առանց սերվերի միջավայր են ՝ ամպային ծառայություններ կառուցելու և միացնելու համար: Այս գործառույթի գործարկիչը PubSup թեման է, որը ստեղծվել է 1 -ին քայլում;;; Այս գործառույթը կգործարկվի, երբ PubSup- ում գրվի նոր արժեք և այն գրվի Cloud DataStore- ում ՝ «SoundValue» բարի տեսքով:

Քայլ 7: Google Cloud - Cloud DataStore

Google Cloud Datastore- ը NoSQL փաստաթղթերի տվյալների շտեմարան է, որը կառուցված է ավտոմատ մասշտաբավորման, բարձր արդյունավետության և ծրագրերի մշակման հեշտության համար: Թեև Cloud Datastore ինտերֆեյսը ունի նույն հատկանիշները, ինչ ավանդական տվյալների բազաները, որպես NoSQL տվյալների բազա այն տարբերվում է դրանցից ՝ տվյալների օբյեկտների միջև հարաբերությունները նկարագրելու ձևով: Կարգավորման կարիք չկա, քանի որ երբ Ամպային գործառույթները տվիչների արժեքները գրեն DataStore- ում, տվյալները կավելացվեն DataStore- ում

Քայլ 8: Google Cloud - BigQuery

Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery

Մենք հավաքում ենք նմուշը նորմալ խողովակից 10 րոպե և արգելափակված խողովակից 10 րոպե `2 կրկնությունների միջև ճշգրիտ 1 ժամ տարբերությամբ: Տվյալների ներբեռնումից հետո DataStore և որոշ մանիպուլյացիաներ կատարեք ՝ յուրաքանչյուր տողի համար դասակարգում ավելացնելու համար: Այժմ մենք ունենք 2 csv ֆայլ ՝ յուրաքանչյուր կատեգորիայի համար: Որպես լավագույն փորձ ՝ տվյալների CSV ֆայլերը նախ վերբեռնեք Cloud Storage- ում: Ստորև էկրանին մենք ստեղծում ենք նոր դույլ և վերբեռնում ենք 2 CSV ֆայլեր: Քանի որ այս դույլը կօգտագործվի միայն վերլուծության համար, կարիք չկա ընտրելու բազմատարածքային դույլ, այնուհետև ստեղծեք նոր տվյալների հավաքածու և նոր աղյուսակ BigQuery- ում և 2 CSV ֆայլը վերբեռնեք դույլից նոր սեղանը

Քայլ 9. Google Cloud - Data Studio

Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio

Հետո մենք օգտագործում ենք Data Studio- ն ՝ որոշ պատկերացումներ նկարելու համար: Data Studio- ն կկարդա տվյալները BigQuery աղյուսակից: Գրաֆիկներից մենք կարող ենք տեսնել 2 կատեգորիայի տարբերությունը հեռաչափությունների քանակի և րոպեների արժեքների միջև: Այս պատկերացումների հիման վրա մենք կարող ենք նախագծել մի պարզ մոդել, խողովակը համարվում է արգելափակված, եթե 3 հաջորդական րոպեների ընթացքում հեռաչափության արժեքների հաշվարկը, որոնք ավելի բարձր են, քան աղմուկի շեմը (400), ավելի քան 350 հեռաչափություն: և 3 հաջորդական րոպեների ընթացքում կայծի շեմից բարձր (720) հեռաչափության արժեքի հաշվարկը 10 -ից ավելի հեռաչափություն է:

Քայլ 10. Կանխատեսման փուլ

Կանխատեսման փուլ
Կանխատեսման փուլ

Մենք վերաբերում ենք ընթերցմանը, երբ այն գերազանցում է որոշակի արժեքը (THRESHOLD_VALUE), որը սահմանվել է 350, որը ֆիլտրում է աղմուկը և ջրի հոսքի ավելի ցածր արագությունը խողովակում ՝ որպես ընթերցում դիտարկվելուց:

Տվյալների վերլուծությունը ցույց տվեց, որ բաց ռեժիմում ընթերցումների քանակը 100 -ից պակաս է, սակայն խցանման դեպքում արժեքները շատ ավելի բարձր են (րոպեում հասնում է 900 -ի), բայց հազվագյուտ դեպքերում նաև 100 -ից պակաս են: Այնուամենայնիվ, այդ դեպքերը հետևաբար չեն կրկնվում և երեք հաջորդ րոպեների ընթացքում ընթերցումների ընդհանուր թիվը միշտ գերազանցում էր 350 -ը: Նույն երեք րոպեում բաց ռեժիմ ունենալով ՝ 300 -ից պակաս գումար կլինի, մենք կարող ենք վստահորեն դնել այս կանոնը. > 350, ապա հայտնաբերվում է խցանում: Մենք պարզեցինք, որ բաց ռեժիմում ձեռք բերված առավելագույն արժեքը չի գերազանցում որոշակի արժեքը (SPARK_VALUE), որը պարզվում է, որ 770 է, ուստի մենք ավելացրեցինք այս կանոնը. Կանոն # 2 Եթե արժեքը կարդալ> 350, ապա հիմնականում հայտնաբերվում է խցանում:

Երկու կանոնները համատեղելով ՝ մեզ դյուրին միջոց տվեց հայտնաբերման տրամաբանությունն իրականացնելու համար, ինչպես ցույց է տրված: Ուշադրություն դարձրեք, որ Arduino- ում տեղադրվել է ստորև նշված կոդը, որն այնուհետև գնահատում է ստացված հեռաչափությունը մեր մոդելի հիման վրա և ուղարկվում ազնվամորիին, եթե խողովակը խցանված է կամ բացված:

Քայլ 11: Կոդ

Arduino- ի, ազնվամորու և ամպի գործառույթի բոլոր ծածկագրերը կարելի է գտնել Github- ում:

Լրացուցիչ տեղեկությունների համար կարող եք ստուգել այս հղումը

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