Съдържание:

Детектор за запушване на канализацията: 11 стъпки (със снимки)
Детектор за запушване на канализацията: 11 стъпки (със снимки)

Видео: Детектор за запушване на канализацията: 11 стъпки (със снимки)

Видео: Детектор за запушване на канализацията: 11 стъпки (със снимки)
Видео: Набих децата. Не слушат. Шамар, Шамар и Парен ЧУК. 2024, Ноември
Anonim
Image
Image

Не позволявайте на запушен дренаж да ви забави! Връщайки се от почивката си, аз и съпругата ми бяхме изненадани от водата, покриваща пода на апартамента ни, и разбрахме, че дори не е чиста вода, навсякъде е източена. След като изчистих канализацията и почистих пода, имах този въпрос: защо нямаме алармена система за потенциални запушвания на канализацията? Запушените канали не само могат да спрат дома ви, но и ще консумират допълнителни разходи от джобовете ви, средно 206 долара са разходите за почистване на запушен дренаж според HomeAdvisor, в допълнение към скритите разходи за повредени килими, дървени мебели и др. Идеята ни е да позволим на собствениците на жилища, както и на предприятия като отдели за поддръжка на градове/съоръжения и специализирани доставчици на услуги да имат ефективна и интелигентна система, която да предупреждава всеки, който отговаря, възможно най -рано да предприеме действия, което допринася за обогатяването на интелигентните градове с важна отличителен белег.

Идеята Въпреки че откриването на задръствания може да се извърши чрез редица техники, като например използване на сензори за газ или вътрешни механизми, нашият екип беше фокусиран върху използването на звук като вход, тъй като знаем, че почукването върху тръба, където е отворена, е различен от този, който се е случил когато е затворен. Според тази проста концепция, ако можем да обучим модел на звуковите модели, които се появяват на повърхността на тръбата по време на запушвания, както и тези модели се появяват в отворени тръби, тогава можем да приложим модела, за да открием проактивно, когато запушването започне да се композира, и тогава ние позвънете на някои сметки.

Кредити за

  • Мохамед Хасан
  • Ахмед Емам

Подробно проектът включва 3 фази в този проект: Събиране на данни, Обучение и прогнозиране.

Преди да приложим тази система в реалния живот, трябваше да създадем принудителна симулационна среда, където имаме тръбата, течаща вода и по някакъв начин да симулираме запушването. И така, имаме тръба, маркуч за вода с източник на вода, който прави това във ваната, и използвайки повърхността на ваната, за да затворим тръбата, която представлява запушването. В това видео ние обясняваме как сме изградили средата и как сме събрали данни за обучението по модела.

И в този следващ видеоклип, показващ как направихме тестването на системата и модела, в отворен режим, след това в режим на запушване и обратно в отворен режим, обаче

Така че, нека да проучим нашето изпълнение стъпка по стъпка:

Стъпка 1: Експериментът

Експериментът
Експериментът
Експериментът
Експериментът
Експериментът
Експериментът
Експериментът
Експериментът

В този сценарий използваме малка водопроводна тръба, свързана към нашия хардуер и сензор за звук. Хардуерът отчита стойността на сензора и я изпраща обратно в облака. Това е направено в продължение на 10 минути за запушена тръба, след това още 10 минути за тръба, която не е блокирана.

Стъпка 2: Хардуер

Хардуер
Хардуер
Хардуер
Хардуер
Хардуер
Хардуер

Аз- Ардуино

За да открием звука на водата в тръбата, се нуждаем от звуков сензор. Raspberry Pi 3 обаче няма аналогов GPIO. За да се справим с този проблем, използваме Arduino, тъй като Arduino има аналогов GPIO. Затова свързваме сензора за звук Grove към щита Grove Arduino и свързваме Shield към Arduino UNO 3. След това свързваме Arduino & Raspberry с помощта на USB кабел. За да получите повече информация за Grove Sound sensor, можете да проверите техническия лист. В лист с данни можете да намерите примерен код за отчитане на стойностите на сензора. Примерен код почти се използва ще малки промени. В долния код свързваме сензора към A0 в щит. За да пишем на serial, използваме функцията Serial.begin (). За комуникация с Raspberry скорост на предаване, зададена на 115200 Данните ще бъдат изпратени на Raspberry, ако е по -голям от определен праг за намаляване на шума Много са направени опити за избор на желания праг и стойности на забавяне. Установено е, че прагът е 400 и стойността на забавяне е 10 милисекунди. Прагът е избран за филтриране на нормален шум и гарантира, че само значими данни ще бъдат изпратени в облака. Закъснението е избрано встрани, за да се гарантира, че сензорът е открил всички промени в звука на потока вътре в тръбата незабавно.

II- Raspberry Pi 3 За да изтеглите неща за android на Raspberry, можете да изтеглите най-новата версия от Android Things Console. В този проект използваме версия: OIR1.170720.017. следвайте стъпките в сайта на Raspberry, за да инсталирате операционна система на малинка, за Windows можете да използвате тези стъпки. След инсталацията можете да свържете Raspberry към компютъра си чрез USB. След това в конзолата на компютъра използвайте командата по -долу, за да получите Raspberry IP

nmap -sn 192.168.1.*

След като получите IP, свържете се с вашия Raspberry, като използвате командата по -долу

adb свързване

За да свържете Raspberry към Wifi (добавете своя SSID и парола)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-a WifiSetupService. Connect

-e ssid *****

-е парола ****

Стъпка 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 Core- напълно управлявана услуга за лесно и сигурно свързване, управление и поглъщане на данни от глобално разпръснати устройства. IOT Core все още е бета, за да имате достъп до него, трябва да направите заявка с обосновка до Google. Ние направихме искането, нашето оправдание беше този конкурс. Google одобрен, Благодаря отново на Google:). Raspberry ще изпраща сензорни данни към IOT Core, което ще препраща показанията към темата на PubSub, създадена в предишната стъпка

Стъпка 6: Google Cloud - Облачни функции

Google Cloud - Облачни функции
Google Cloud - Облачни функции
Google Cloud - Облачни функции
Google Cloud - Облачни функции

Cloud Functions е среда без сървър за изграждане и свързване на облачни услуги. Тригер за тази функция е темата PubSup, създадена в стъпка 1.;; Тази функция ще се задейства, когато нова стойност бъде написана в PubSup и я запишете в Cloud DataStore с Kind "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 минути от запушена тръба с разлика точно 1 час между 2 -те итерации. След изтегляне на DataStore и направете известна манипулация, за да добавите класификация за всеки ред. Сега имаме 2 csv файла по един за всяка категория. Като най -добра практика качвайте CSV файлове с данни първо в Cloud Storage. В долния екран създаваме нова кофа и качваме 2 CSV файла Тъй като тази кофа ще се използва само за анализ, няма нужда да избирате Мултирегионална кофа След това създайте нов набор от данни и нова таблица в BigQuery и качете 2 CSV файла от кофа в новата маса

Стъпка 9: Google Cloud - Data Studio

Google Cloud - Студио за данни
Google Cloud - Студио за данни
Google Cloud - Студио за данни
Google Cloud - Студио за данни
Google Cloud - Студио за данни
Google Cloud - Студио за данни

След това използваме Data Studio, за да извлечем някои прозрения. Data Studio ще чете данни от таблицата BigQuery. От графиките можем да видим разликата между 2 категории в броя на телеметриите и сумата от стойности в минута. Въз основа на тези прозрения можем да проектираме прост модел, тръбата се счита за блокирана, ако в 3 последователни минути броят на стойностите на телеметриите, които са по -високи от прага на шума (400), е повече от 350 телеметрии. и за 3 последователни минути броят на стойностите на телеметриите, които са по -високи от прага на искрата (720), е повече от 10 телеметрии.

Стъпка 10: Фаза на прогнозиране

Фаза на прогнозиране
Фаза на прогнозиране

Имаме предвид отчитане, когато то надвишава определена стойност (THRESHOLD_VALUE), която е зададена на 350, която филтрира шума и по -ниски дебити на водата в тръбата, от да се счита за отчитане

Анализът на данните показа, че в отворен режим броят на показанията е по -малък от 100, но в режим на запушване стойностите са далеч по -високи (достигат 900 на минута), но в редки случаи също са по -малко от 100. Тези случаи обаче не се повтарят впоследствие, и за три последователни минути, общият брой показания винаги надвишаваше 350. При отворен режим за същите три минути ще се сумират по -малко от 300, можем уверено да поставим това правило: Правило № 1 За три минути в необработен вид, ако общите показания > 350, тогава се открива запушване. Установихме, че максималната стойност, достигната в отворен режим, не надвишава определена стойност (SPARK_VALUE), която е установена на 770, затова добавихме това правило: Правило # 2 Ако стойността на четене> 350, тогава се открива най -вече запушване.

Комбинирането на двете правила ни даде лесен начин да приложим логиката на откриване, както е показано. Забележете, че кодът по -долу е разгърнат на Arduino, който след това оценява получените телеметрични данни въз основа на нашия модел и изпраща до малинка, ако тръбата е запушена или отворена.

Стъпка 11: Код

Целият код за Arduino, Raspberry & Cloud функция може да бъде намерен в Github.

За повече информация можете да проверите тази връзка

Препоръчано: