Съдържание:
- Стъпка 1: Експериментът
- Стъпка 2: Хардуер
- Стъпка 3: Google Cloud - Регистрация
- Стъпка 4: Google Cloud - Pub/Sub
- Стъпка 5: Google Cloud - IOT Core
- Стъпка 6: Google Cloud - Облачни функции
- Стъпка 7: Google Cloud - Cloud DataStore
- Стъпка 8: Google Cloud - BigQuery
- Стъпка 9: Google Cloud - Data Studio
- Стъпка 10: Фаза на прогнозиране
- Стъпка 11: Код
Видео: Детектор за запушване на канализацията: 11 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Не позволявайте на запушен дренаж да ви забави! Връщайки се от почивката си, аз и съпругата ми бяхме изненадани от водата, покриваща пода на апартамента ни, и разбрахме, че дори не е чиста вода, навсякъде е източена. След като изчистих канализацията и почистих пода, имах този въпрос: защо нямаме алармена система за потенциални запушвания на канализацията? Запушените канали не само могат да спрат дома ви, но и ще консумират допълнителни разходи от джобовете ви, средно 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 предлага безплатно ниво за всички потребители за една година с таван от 300 $, Благодарение на Google:). Следвайте екрани, за да създадете нов проект в Google Cloud
Стъпка 4: Google Cloud - Pub/Sub
Google Cloud Pub/Sub е напълно управлявана услуга за съобщения в реално време, която ви позволява да изпращате и получавате съобщения между независими приложения.
Стъпка 5: Google Cloud - IOT Core
II- IOT Core- напълно управлявана услуга за лесно и сигурно свързване, управление и поглъщане на данни от глобално разпръснати устройства. IOT Core все още е бета, за да имате достъп до него, трябва да направите заявка с обосновка до Google. Ние направихме искането, нашето оправдание беше този конкурс. Google одобрен, Благодаря отново на Google:). Raspberry ще изпраща сензорни данни към IOT Core, което ще препраща показанията към темата на PubSub, създадена в предишната стъпка
Стъпка 6: 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
Събираме проба на 10 минути от нормална тръба и 10 минути от запушена тръба с разлика точно 1 час между 2 -те итерации. След изтегляне на DataStore и направете известна манипулация, за да добавите класификация за всеки ред. Сега имаме 2 csv файла по един за всяка категория. Като най -добра практика качвайте CSV файлове с данни първо в Cloud Storage. В долния екран създаваме нова кофа и качваме 2 CSV файла Тъй като тази кофа ще се използва само за анализ, няма нужда да избирате Мултирегионална кофа След това създайте нов набор от данни и нова таблица в BigQuery и качете 2 CSV файла от кофа в новата маса
Стъпка 9: 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, можем уверено да поставим това правило: Правило № 1 За три минути в необработен вид, ако общите показания > 350, тогава се открива запушване. Установихме, че максималната стойност, достигната в отворен режим, не надвишава определена стойност (SPARK_VALUE), която е установена на 770, затова добавихме това правило: Правило # 2 Ако стойността на четене> 350, тогава се открива най -вече запушване.
Комбинирането на двете правила ни даде лесен начин да приложим логиката на откриване, както е показано. Забележете, че кодът по -долу е разгърнат на Arduino, който след това оценява получените телеметрични данни въз основа на нашия модел и изпраща до малинка, ако тръбата е запушена или отворена.
Стъпка 11: Код
Целият код за Arduino, Raspberry & Cloud функция може да бъде намерен в Github.
За повече информация можете да проверите тази връзка
Препоръчано:
Безжичен детектор за променлив ток: 7 стъпки (със снимки)
Безжичен детектор за променлив ток: Докато правих предишния си Instructable (лесен инфрачервен сензор за близост), разбрах няколко неща относно използването на 2 транзистора подред за усилване на много слаб сигнал. В тази инструкция ще опиша този принцип, който също се нарича & quo
Прост метален детектор Arduino: 8 стъпки (със снимки)
Прост метален детектор Arduino: *** Публикувана е нова версия, която е още по-проста: https://www.instructables.com/Minimal-Arduino-Metal-Detector/ *** Откриването на метали е чудесно минало време, което получава вие сте на открито, откривате нови места и може би ще намерите нещо интересно. Проверете ви
Детектор за социално разстояние: 7 стъпки (със снимки)
Детектор за социално разстояние: Детектор за социално разстояние: Аз съм Оуен О от Денвър Колорадо и тази година ще съм в 7 клас. Моят проект се нарича Социален детектор за дистанция! Перфектното устройство за защита в тези трудни времена. Целта на детектора за социално разстояние
Очила за тренировка с променливо запушване с високо напрежение [ATtiny13]: 5 стъпки (със снимки)
Очила за тренировка с променливо запушване с високо напрежение [ATtiny13]: В първите си инструкции описах как да създам устройство, което би трябвало да бъде много полезно за някой, който иска да лекува амблиопия (мързеливо око). Дизайнът беше много опростен и имаше някои недостатъци (изискваше използване на две батерии и течност
IOT детектор за дим: Актуализирайте съществуващ детектор за дим с IOT: 6 стъпки (със снимки)
IOT Smote Detector: Актуализирайте съществуващия детектор на дим с IOT: Списък на сътрудниците, Изобретател: Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Надзорник: Д -р Chia Kim Seng Катедра по мехатронно и роботизирано инженерство, Факултет по електротехника и електронно инженерство, Universiti Tun Хюсеин Он Малайзия. Разпространение