Оглавление:

Детектор засорения слива: 11 шагов (с изображениями)
Детектор засорения слива: 11 шагов (с изображениями)

Видео: Детектор засорения слива: 11 шагов (с изображениями)

Видео: Детектор засорения слива: 11 шагов (с изображениями)
Видео: Как быстро Устранить ЗАСОР в раковине! Лайфхак 2024, Июль
Anonim
Image
Image

Не позволяйте забитому сливу замедлить вас! Вернувшись из отпуска, мы с женой были удивлены водой на полу в нашей квартире, и мы обнаружили, что это даже не чистая вода, она везде сток. После прочистки слива и мытья пола у меня возник вопрос: почему у нас нет системы сигнализации о возможных засорах слива? Засоренные стоки не только могут привести к остановке вашего дома, но и потребуют дополнительных затрат из ваших карманов: по данным HomeAdvisor, в среднем 206 долларов США составляют стоимость очистки забитого водостока, помимо скрытых затрат на поврежденные ковры, деревянную мебель и т. Д. Наша идея состоит в том, чтобы позволить домовладельцам, а также предприятиям, таким как отделы технического обслуживания городов / комплексов и специализированные поставщики услуг, иметь эффективную и интеллектуальную систему, которая как можно раньше предупреждает ответственных лиц о необходимости принять меры, что способствует обогащению умных городов важным характерная черта.

Идея Хотя обнаружение засоров может быть выполнено с помощью ряда методов, таких как использование газовых датчиков или внутренних механизмов, наша команда была сосредоточена на использовании звука в качестве входного сигнала, так как мы знаем, что стук в трубку, где она открыта, отличается от звука того, что произошло. при закрытии. В соответствии с этой простой концепцией, если мы можем обучить модель звуковым образцам, возникающим на поверхности трубы во время засорения, а также тем образцам, которые возникают в открытых трубах, мы можем затем применить модель для упреждающего обнаружения, когда засорение начинает формироваться, а затем мы позвонить по счетам.

Кредиты на

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

В этом проекте реализованы 3 фазы: сбор данных, обучение и прогнозирование.

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

И в этом следующем видео показано, как мы проводили тестирование системы и модели в открытом режиме, затем в режиме засорения и обратно в открытый режим, однако

Итак, давайте рассмотрим нашу реализацию шаг за шагом:

Шаг 1: эксперимент

Эксперимент
Эксперимент
Эксперимент
Эксперимент
Эксперимент
Эксперимент
Эксперимент
Эксперимент

В этом сценарии мы используем небольшую водопроводную трубу, подключенную к нашему оборудованию и звуковому датчику. Аппаратное обеспечение считывает значение датчика и отправляет его обратно в облако. Это делалось в течение 10 минут для заблокированной трубки, а затем еще 10 минут для незаблокированной трубки.

Шаг 2: Оборудование

Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение

I- Ардуино

Для обнаружения звука воды внутри трубы нам понадобится звуковой датчик. Однако Raspberry Pi 3 не имеет аналогового GPIO. Для решения этой проблемы мы используем Arduino, поскольку Arduino имеет аналоговый GPIO. Итак, мы подключаем датчик звука Grove к экрану Grove Arduino и подключаем Shield к Arduino UNO 3. Затем мы подключаем Arduino и Raspberry с помощью USB-кабеля. Чтобы получить дополнительную информацию о датчике звука Grove, вы можете ознакомиться с его техническими данными. Вы можете найти в техпаспорте образец кода, как считывать значения датчиков. Пример кода почти используется, будут небольшие изменения. В приведенном ниже коде мы подключаем датчик к A0 на экране. Чтобы писать по серийнику, мы используем функцию Serial.begin (). Для связи со скоростью передачи данных Raspberry, установленной на 115200, данные будут отправлены в Raspberry, если она превышает определенный порог, чтобы уменьшить шум. Было проведено множество испытаний, чтобы выбрать желаемые пороговые значения и значения задержки. Пороговое значение равно 400, а значение задержки - 10 миллисекунд. Пороговое значение было выбрано для фильтрации нормального шума и обеспечения того, чтобы в облако отправлялись только значимые данные. Задержка была выбрана вдали, чтобы датчик немедленно обнаруживал любые изменения в звуке потока внутри трубки.

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

nmap -sn 192.168.1. *

После получения IP-адреса подключитесь к Raspberry, используя команду ниже

adb connect

Чтобы подключить Raspberry к Wi-Fi (добавьте свой 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 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 с видом "SoundValue".

Шаг 7. Google Cloud - Cloud DataStore

Google Cloud Datastore - это база данных документов NoSQL, созданная для автоматического масштабирования, высокой производительности и простоты разработки приложений. Хотя интерфейс Cloud Datastore имеет многие из тех же функций, что и традиционные базы данных, как и база данных NoSQL, он отличается от них тем, как описывает отношения между объектами данных. Нет необходимости в какой-либо настройке, поскольку после того, как облачные функции записывают значения датчиков в хранилище данных, данные будут добавлены в хранилище данных.

Шаг 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 час между двумя итерациями. После загрузки данных DataStore произведите некоторые манипуляции, чтобы добавить классификацию для каждой строки. Теперь у нас есть 2 CSV-файла по одному для каждой категории. Рекомендуется сначала загружать файлы CSV с данными в облачное хранилище. На экране ниже мы создаем новый сегмент и загружаем 2 файла CSV, поскольку этот сегмент будет использоваться только для анализа, нет необходимости выбирать мультирегиональный сегмент. Затем создайте новый набор данных и новую таблицу в BigQuery и загрузите 2 файла CSV из сегмента в новый стол

Шаг 9. Google Cloud - Студия данных

Google Cloud - Студия данных
Google Cloud - Студия данных
Google Cloud - Студия данных
Google Cloud - Студия данных
Google Cloud - Студия данных
Google Cloud - Студия данных

Затем мы используем Data Studio, чтобы сделать некоторые выводы. Data Studio будет читать данные из таблицы BigQuery. На графиках мы можем видеть разницу между двумя категориями по количеству телеметрии и сумме значений в минуту. Основываясь на этих выводах, мы можем разработать простую модель, канал считается заблокированным, если в течение 3 последовательных минут количество значений телеметрии, превышающих пороговое значение шума (400), превышает 350 телеметрических данных. и через 3 последовательных минуты количество значений телеметрии, превышающих порог искры (720), превышает 10 телеметрических данных.

Шаг 10: этап прогнозирования

Фаза прогнозирования
Фаза прогнозирования

Мы говорим о показании, когда оно превышает определенное значение (THRESHOLD_VALUE), которое было установлено на 350, что фильтрует шум и снижает скорость потока воды в трубке, и не рассматривается как показание.

Анализ данных показал, что в открытом режиме количество считываний меньше 100, но в режиме засорения значения намного выше (достигали 900 в минуту), но в редких случаях также были меньше 100. Однако эти случаи не повторяются, следовательно,, и в течение трех последовательных минут общее количество считываний всегда превышало 350. Имея открытый режим за те же три минуты, мы суммируем менее 300, мы могли бы с уверенностью сформулировать это правило: Правило № 1 Для трех минут подряд, если общее количество показаний > 350, то обнаруживается засор. Мы обнаружили, что максимальное значение, достигаемое в открытом режиме, не превышает определенного значения (SPARK_VALUE), которое оказывается равным 770, поэтому мы добавили это правило: Правило № 2 Если значение чтения> 350, то засор в основном обнаруживается.

Объединение обоих правил дало нам простой способ реализовать логику обнаружения, как показано. Обратите внимание, что приведенный ниже код был развернут на Arduino, который затем оценивает полученные телеметрии на основе нашей модели и отправляет их в raspberry, если труба забита или открыта.

Шаг 11: Код

Весь код для Arduino, Raspberry и Cloud Function можно найти на Github.

Для получения дополнительной информации вы можете проверить эту ссылку

Рекомендуемые: