Mündəricat:

Drenaj tıkanma detektoru: 11 addım (şəkillərlə birlikdə)
Drenaj tıkanma detektoru: 11 addım (şəkillərlə birlikdə)

Video: Drenaj tıkanma detektoru: 11 addım (şəkillərlə birlikdə)

Video: Drenaj tıkanma detektoru: 11 addım (şəkillərlə birlikdə)
Video: Как почистить рыбу в квартире 2024, Noyabr
Anonim
Image
Image

Tıxanmış drenajın sizi yavaşlatmasına imkan verməyin! Tətildən qayıdanda, mən və həyat yoldaşım, mənzilimizin döşəməsini örtən suya təəccübləndik və bunun hətta təmiz su olmadığını, hər yerdən axdığını bildik. Drenajı təmizlədikdən və döşəməni təmizlədikdən sonra bu sualı aldım: niyə potensial drenaj tıxacları üçün siqnalizasiya sistemimiz yoxdur? Tıxanmış drenajlar yalnız evinizi dayandıra bilməz, həm də cibinizdən əlavə xərclər çəkəcək, HomeAdvisor -a görə zədələnmiş xalçaların, taxta mebellərin və s. Fikrimiz, ev sahiblərinin, eləcə də şəhər/birləşmə baxım şöbələri və ixtisaslaşdırılmış xidmət təminatçıları kimi müəssisələrin, ağıllı şəhərlərin əhəmiyyətli bir şeylə zənginləşməsinə töhfə verən, mümkün olan ən qısa müddətdə məsul olanları hərəkətə keçməsini xəbərdar edən səmərəli və ağıllı bir sistemə sahib olmasını təmin etməkdir. xüsusiyyət.

Tıxacların aşkarlanması qaz sensörləri və ya daxili mexanizmlərdən istifadə etmək kimi bir çox üsulla həyata keçirilə bilsə də, komandamız açıldığı bir borunun döyülməsinin baş verəndən fərqli bir səs olduğunu bildiyimiz üçün səsimizi girişimiz olaraq istifadə etməyə yönəlmişdi. bağlananda. Bu sadə konsepsiyaya görə, tıxanma zamanı boru səthində baş verən səs nümunələrini və açılan borularda meydana gələn nümunələri öyrədə bilsək, tıxanma meydana gəlməyə başlayanda bu modeli proaktiv şəkildə aşkar etmək üçün tətbiq edə bilərik. bəzi qanun layihələrini səsləndirin.

Üçün kreditlər

  • Məhəmməd Həsən
  • Əhməd Emam

Ətraflı olaraq layihə 3 mərhələdə həyata keçirilir: Məlumat toplama, Öyrənmə və proqnozlaşdırma.

Bu sistemi real həyatda tətbiq etməzdən əvvəl, borumuzun, axan suyumuzun və bir şəkildə tıxacın simulyasiyası üçün məcburi bir simulyasiya mühiti yaratmalıyıq. Beləliklə, hamamda bunu edən bir su borusu olan bir su hortumumuz var və tıxanı təmsil edən borunu bağlamaq üçün çəllək səthindən istifadə edirik. Bu videoda mühiti necə qurduğumuzu və model təhsili üçün məlumatları necə topladığımızı izah edirik.

Açıq rejimdə, sonra tıxanma rejimində və yenidən açıq rejimə qayıtdığımız sistem və model üçün testləri necə etdiyimizi göstərən növbəti videoda.

Beləliklə, tətbiqimizi addım -addım araşdıraq:

Addım 1: Təcrübə

Təcrübə
Təcrübə
Təcrübə
Təcrübə
Təcrübə
Təcrübə
Təcrübə
Təcrübə

Bu ssenaridə, aparatımıza və səs sensorumuza bağlı kiçik bir su borusundan istifadə edirik. Avadanlıq sensorun dəyərini oxuyur və yenidən Buluda göndərir. Bu, tıxanmış boru üçün 10 dəqiqə, sonra tıxanmamış boru üçün başqa 10 dəqiqə ərzində edilir.

Addım 2: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

Mən- Arduino

Borunun içindəki su səsini aşkar etmək üçün bir səs sensoru lazımdır. Ancaq Raspberry Pi 3 -də Analog GPIO yoxdur. Bu problemi həll etmək üçün Arduinodan istifadə edirik, çünki Arduino analoq GPIO -ya malikdir. Beləliklə, Grove Sound sensorunu Grove Arduino qalxanına və Shield -i Arduino UNO 3 -ə bağlayırıq. Arduino və Raspberry -ni USB kabeldən istifadə edərək bağlayırıq. Grove Sound sensoru haqqında daha çox məlumat əldə etmək üçün onun məlumat vərəqini yoxlaya bilərsiniz. Vərəqədə sensor dəyərlərinin necə oxunacağına dair bir nümunə kodu tapa bilərsiniz. Nümunə Kodu demək olar ki, kiçik dəyişikliklər istifadə edəcək. Aşağıdakı kodda sensoru A0 -a bağlayırıq. Serialda yazmaq üçün Serial.begin () funksiyasından istifadə edirik. 115200 olaraq təyin edilmiş Raspberry baud dərəcəsi ilə əlaqə qurmaq üçün, səs -küyü kəsmək üçün müəyyən bir eşikdən daha böyükdürsə, məlumat Raspberry -ə göndəriləcək. Eşik 400 və Gecikmə 10 milisaniyəyə bərabərdir. Eşik, normal səs -küyü süzmək və yalnız mənalı məlumatların buluda göndərilməsini təmin etmək üçün seçildi. Sensorun boru içərisindəki axın səsindəki hər hansı bir dəyişikliyi dərhal aşkar etməsini təmin etmək üçün uzaqdan seçildi.

II- Raspberry Pi 3 Raspberry-də android şeyləri yükləmək üçün ən son versiyanı Android Things Console-dan yükləyə bilərsiniz. Bu layihədə OIR1.170720.017 versiyasından istifadə edirik. moruq üzərində əməliyyat sistemi qurmaq üçün Raspberry saytındakı addımları izləyin, Windows üçün bu addımlardan istifadə edə bilərsiniz Quraşdırıldıqdan sonra Raspberry -ni USB istifadə edərək kompüterinizə qoşa bilərsiniz. Sonra kompüter konsolunda Raspberry IP almaq üçün aşağıdakı əmrdən istifadə edin

nmap -sn 192.168.1.*

IP əldə etdikdən sonra aşağıdakı əmrdən istifadə edərək Raspberry -ə qoşulun

adb əlaqə

Moruqunuzu Wifi -yə bağlamaq üçün (SSID və şifrənizi əlavə edin)

adb am startervice

-n com.google.wifisetup/. WifiSetupService

-WifiSetupService. Connect

-e ssid *****

-parola ****

Addım 3: Google Bulud - Qeydiyyat

Google Bulud - Qeydiyyat
Google Bulud - Qeydiyyat
Google Bulud - Qeydiyyat
Google Bulud - Qeydiyyat
Google Bulud - Qeydiyyat
Google Bulud - Qeydiyyat
Google Bulud - Qeydiyyat
Google Bulud - Qeydiyyat

Google, bütün istifadəçilər üçün 300 $ tavanı olan bir il üçün pulsuz bir təbəqə təqdim edir, Google sayəsində:). Google Cloud -da yeni bir layihə yaratmaq üçün ekranları izləyin

Addım 4: Google Bulud - Pub/Sub

Google Bulud - Pub/Sub
Google Bulud - Pub/Sub
Google Bulud - Pub/Sub
Google Bulud - Pub/Sub
Google Bulud - Pub/Sub
Google Bulud - Pub/Sub
Google Bulud - Pub/Sub
Google Bulud - Pub/Sub

Google Cloud Pub/Sub, müstəqil tətbiqlər arasında mesaj göndərməyə və almağa imkan verən tam idarə olunan real vaxt mesajlaşma xidmətidir.

Addım 5: Google Cloud - IOT Core

Google Bulud - IOT Core
Google Bulud - IOT Core
Google Bulud - IOT Core
Google Bulud - IOT Core
Google Bulud - IOT Core
Google Bulud - IOT Core

II- IOT CoreA, qlobal miqyasda dağılmış cihazlardan məlumatları asanlıqla və etibarlı şəkildə bağlamaq, idarə etmək və qəbul etmək üçün tam idarə olunan xidmətdir. IOT Core hələ Beta, buna daxil olmaq üçün Google -a əsaslandırma ilə müraciət etməlisiniz. Xahiş etdik, əsaslandırmağımız bu yarışma idi. Google təsdiqlədi, Google'a yenidən təşəkkürlər:). Raspberry, sensor məlumatlarını əvvəlki addımda yaradılmış PubSub mövzusuna yönəldəcək IOT Core -a göndərəcək

Addım 6: Google Bulud - Bulud Funksiyaları

Google Bulud - Bulud funksiyaları
Google Bulud - Bulud funksiyaları
Google Bulud - Bulud funksiyaları
Google Bulud - Bulud funksiyaları

Cloud Functions, bulud xidmətlərini qurmaq və birləşdirmək üçün serversiz bir mühitdir. Bu funksiya üçün tetikleyici, 1. addımda yaradılan PubSup mövzusudur.;; Bu funksiya PubSup -da yeni bir dəyər yazıldıqda və onu "SoundValue" ilə Cloud DataStore -da yazanda işə salınacaq.

Addım 7: Google Cloud - Cloud DataStore

Google Cloud Datastore, avtomatik ölçeklendirme, yüksək performans və tətbiq inkişaf etdirmə asanlığı üçün qurulmuş bir NoSQL sənəd verilənlər bazasıdır. Cloud Datastore interfeysi ənənəvi verilənlər bazası ilə eyni xüsusiyyətlərə malik olsa da, NoSQL verilənlər bazası olaraq, məlumat obyektləri arasındakı əlaqələri təsvir etmə üsulu ilə onlardan fərqlənir. Bulud Funksiyaları DataStore -a sensor dəyərləri yazdıqda, DataStore -a məlumatlar əlavə ediləcəyi üçün heç bir quraşdırmaya ehtiyac yoxdur

Addım 8: Google Bulud - BigQuery

Google Bulud - BigQuery
Google Bulud - BigQuery
Google Bulud - BigQuery
Google Bulud - BigQuery
Google Bulud - BigQuery
Google Bulud - BigQuery
Google Bulud - BigQuery
Google Bulud - BigQuery

Nümunəni normal borudan 10 dəq və tıxanmış borudan 10 dəqiqədən sonra 2 təkrarlama arasında 1 saat fərqlə toplayırıq. Məlumatları yüklədikdən sonra DataStore və hər bir sıra üçün təsnifat əlavə etmək üçün bəzi manipulyasiyalar edin. İndi hər bir kateqoriya üçün bir ədəd 2 csv faylımız var. Ən yaxşı təcrübə olaraq əvvəlcə CSV sənədlərini Cloud Storage -ə yükləyin. Aşağıdakı ekranda yeni bir paket yaradırıq və 2 CSV faylını yükləyirik, bu paket yalnız analiz üçün istifadə ediləcəyi üçün, çox bölgəli kovanı seçməyə ehtiyac yoxdur, sonra BigQuery-də yeni Veri Kümesi və yeni cədvəl yaradın və 2 CSV faylını paketdən yeni masa

Addım 9: Google Bulud - Məlumat Studiyası

Google Bulud - Məlumat Studiyası
Google Bulud - Məlumat Studiyası
Google Bulud - Məlumat Studiyası
Google Bulud - Məlumat Studiyası
Google Bulud - Məlumat Studiyası
Google Bulud - Məlumat Studiyası

Sonra bəzi fikirlər çəkmək üçün Data Studio -dan istifadə edirik. Data Studio BigQuery cədvəlindəki məlumatları oxuyacaq. Qrafiklərdən, telemetriklərin sayındakı 2 kateqoriya ilə dəqiqədəki dəyərlərin cəmindəki fərqi görə bilərik. Bu anlayışlara əsaslanaraq sadə bir model hazırlaya bilərik, əgər ardıcıl 3 dəqiqə ərzində səs -küy eşikindən (400) yüksək olan telemetriya dəyərlərinin sayı 350 telemetrdən çox olarsa, boru bloklanmış hesab olunur. və ardıcıl 3 dəqiqədə, qığılcım eşikindən (720) yüksək olan telemetriklərin sayı 10 telemetrdən çoxdur.

Addım 10: Proqnozlaşdırma Mərhələsi

Proqnozlaşdırma Mərhələsi
Proqnozlaşdırma Mərhələsi

Borunun səs -küyünü və aşağı su axını süzgəcini 350 olaraq təyin edən müəyyən bir dəyəri (THRESHOLD_VALUE) aşdıqda oxunuşa istinad edirik.

Məlumat təhlili göstərdi ki, açıq rejimdə oxunma sayı 100 -dən azdır, amma tıxanma rejimində dəyərlər çox yüksəkdir (dəqiqədə 900 -ə çatır), lakin nadir hallarda 100 -dən də aşağı olur. Lakin bu hallar nəticədə təkrarlanmır. və nəticədə üç dəqiqə ərzində oxunuşların ümumi sayı həmişə 350 -ni keçdi. Eyni üç dəqiqədə açıq rejimə sahib olmaq 300 -dən az nəticə verərsə, bu qaydanı inamla qoya bilərik: Qayda # 1 Ümumi oxunuşlarda üç dəqiqə ərzində > 350, sonra bir tıkanma aşkar edilir. Açıq rejimdə əldə edilən maksimum dəyərin 770 olduğu müəyyən bir dəyəri (SPARK_VALUE) aşmadığını gördük, buna görə də bu qaydanı əlavə etdik: Qayda # 2 Oxu dəyəri> 350 -dirsə, daha çox tıxanma aşkar edilir.

Hər iki qaydanı birləşdirərək, göstərildiyi kimi aşkarlama məntiqini həyata keçirməyimizin asan bir yolunu verdi. Aşağıdakı kodun Arduinoda yerləşdirildiyinə diqqət yetirin, sonra alınan telemetrləri modelimizə əsaslanaraq qiymətləndirir və boru tıxanarsa və ya açıq olarsa moruğa göndərər.

Addım 11: Kod

Arduino, Raspberry & Cloud Function üçün bütün kodları Github -da tapa bilərsiniz.

Ətraflı məlumat üçün bu linki yoxlaya bilərsiniz

Tövsiyə: