Оглавление:

IDC2018IOT GarbageCan-Online: 7 шагов
IDC2018IOT GarbageCan-Online: 7 шагов

Видео: IDC2018IOT GarbageCan-Online: 7 шагов

Видео: IDC2018IOT GarbageCan-Online: 7 шагов
Видео: СОЛЬ | Документальный фильм 2024, Ноябрь
Anonim
Image
Image
Необходимые детали
Необходимые детали

Вступление

Все знают, что происходит, когда мы слишком долго оставляем мусор в мусорном ведре, не вынимая его. Что ж, самое очевидное, что для мусора нет места, но он тоже начинает вонять, и становится очень неприятно.

В этом проекте мы стремимся помочь вам следить за вашими мусорными баками вокруг дома / на рабочем месте / и т. Д., Чтобы вы всегда знали, когда они заполнены, и могли немедленно принять меры, вынув мусор.

Система предупредит вас по телефону или на панели управления, что вам нужно очистить мусорное ведро. Система учитывает уровень заполнения мусорного ведра, а также измеренные температуру и влажность внутри него. Все мы знакомы с срочностью вывоза мусора из мусорных баков в жаркие и влажные дни …

Основные особенности

  1. Панель мониторинга:

    • Основной раздел:

      • Степень наполненности каждого мусорного ведра.
      • Температура и влажность каждого мусорного ведра.
    • Раздел статистики:

      • Самая полная помойка.
      • Самый горячий мусорный бак.
  2. Система предупреждений и уведомлений:

    • Поддерживаются следующие события:

      • Мусорное ведро заполнено.
      • Произошла ошибка датчика.
    • Предупреждения о заполнении учитывают уровень заполнения мусорного ведра, а также уровни температуры и влажности мусорного ведра.
    • Оповещения можно отправлять с помощью телефонных уведомлений и предупреждений на панели управления.
    • Каждый канал оповещения можно включать и выключать через панель управления.
  3. Масштабируемость:

    • С помощью кнопки калибровки можно настроить систему на разные мусорные баки разной вместимости.
    • Относительно легко можно добавить больше мусорных баков. Такую же систему можно собрать на новом мусорном ведре, установить ID мусорного ведра и откалибровать его (нажатием кнопки). Наличие более трех мусорных баков потребует расширения панели управления (простая задача).

Кто мы?

Этот проект был создан (с любовью и самоотверженностью!) Ромом Синцинатом и Даниэлем Алимой - студентами IDC в Герцлии в качестве заключительного проекта нашего курса Интернета вещей. Мы надеемся, что наша работа окажется для вас полезной, и вы получите от нее удовольствие!

Шаг 1: Необходимые детали

Чтобы построить систему, вам понадобятся следующие компоненты и детали:

  1. Мусорный бак (желательно с крышкой): он будет использоваться для… ну… вы знаете, что мы собираемся с этим делать, а?;)
  2. Макетная плата: для соединения всех компонентов без пайки.
  3. NodeMCU (ESP-8266): отвечает за считывание датчиков и отправку информации в облако.
  4. ИК-датчик расстояния - Sharp 0A41SK: Этот датчик измеряет количество мусора (уровень заполнения) внутри контейнера.
  5. Датчик температуры и влажности - DHT11: Этот датчик измеряет температуру и влажность внутри мусорного ведра.
  6. Мгновенный переключатель: будет использоваться для калибровки датчика расстояния в соответствии с размером мусорного бака.
  7. Алюминиевая фольга: будет использоваться для формирования детектора состояния крышки - открыта она или закрыта.
  8. Перемычки: достаньте много, разной длины и цвета. Соединим все воедино.
  9. Изолента: Нам нужно будет прикрепить вещи на место.
  10. Кабель Micro-USB: для подключения NodeMCU к компьютеру для программирования, а затем для источника питания.
  11. Блок питания USB (зарядное устройство для смартфона): обеспечит питание NodeMCU при установке на мусорное ведро.

Шаг 2: Подключение и сборка

Электромонтаж и сборка
Электромонтаж и сборка
Электромонтаж и сборка
Электромонтаж и сборка
Электромонтаж и сборка
Электромонтаж и сборка

Проводка

Поместите NodeMCU на макетную плату, чтобы потом было удобно прикрепить его к мусорному ведру, и подключите к нему USB-кабель. Затем сверьтесь с приведенной выше схемой подключения, чтобы подключить различные компоненты к NodeMCU. Обязательно используйте длинные провода для датчиков и проводов состояния, чтобы было удобно устанавливать систему и использовать вместе с ней мусорное ведро.

  • ИК-датчик расстояния - Sharp 0A41SK:

    • Вин (красный) Вин
    • GND (черный) GND
    • Vout (желтый) A0
  • Датчик температуры и влажности - DHT11:

    • Вин (красный) 3V3
    • GND (черный) GND
    • ДАННЫЕ (желтый) D4
  • Мгновенный переключатель:

    • Штырь 1 D3
    • Контакт 2 GND
  • Состояние крышки (открыто / закрыто) проводами:

    • Wire1 D2
    • Wire2 GND

сборка

Собрать систему на мусорном баке довольно просто. Прикрепите макет к мусорному ведру, желательно близко к крышке. Используйте ленту или кабельную стяжку, чтобы закрепить его на месте. Потом:

  1. Поместите ИК-датчик расстояния посередине крышки (с внутренней стороны!). Убедитесь, что он закреплен должным образом, иначе вы столкнетесь с ошибочными показаниями!
  2. Поместите датчик температуры и влажности где-нибудь в мусорное ведро. Закрепите лентой.
  3. Накройте боковую часть крышки и кончик мусорного ведра алюминиевой фольгой. Убедитесь, что при закрытой крышке есть хороший контакт. Это будет сигнализировать системе, что мусорное ведро открыто или закрыто. Затем приклейте каждый из проводов состояния крышки к одной из алюминиевой фольги и закрепите лентой.

Шаг 3. Настройте MQTT, Node-RED и IFTTT

Настроить MQTT, Node-RED и IFTTT
Настроить MQTT, Node-RED и IFTTT
Настроить MQTT, Node-RED и IFTTT
Настроить MQTT, Node-RED и IFTTT
Настроить MQTT, Node-RED и IFTTT
Настроить MQTT, Node-RED и IFTTT

Большая часть логики проекта фактически реализована в облаке. NodeMCU отправляет данные на сервер MQTT, а Node-RED потребляет их и применяет к ним свою логику (подробнее об архитектуре - далее). Наконец, для передачи push-уведомлений (предупреждений) на наш смартфон мы использовали IFTTT.

Мы будем использовать облачные сервисы CloudMQTT и FRED в качестве наших серверов MQTT и Node-RED соответственно, а также будем использовать IFTTT для push-уведомлений.

  1. Зарегистрируйтесь в CloudMQTT с бесплатным планом. Запишите свои учетные данные на сервере MQTT (имя пользователя и пароль).
  2. Зарегистрируйтесь в IFTTT. Создайте новый апплет «Уведомление о приложении Webhooks IFTTT». Используйте «Уведомление с мобильного телефона» в качестве названия события WebHookds. Проконсультируйтесь с изображением выше для мельчайших подробностей. Обратите внимание на ключ API вашего производителя.
  3. Загрузите приложение IFTTT на свой телефон и войдите в систему, используя свои учетные данные. Это позволит вам получать push-уведомления.
  4. Зарегистрируйтесь на FRED с бесплатным тарифным планом.
  5. После того, как экземпляр FRED запущен и работает, импортируйте в него присоединенные потоки (кнопка с 3 полосами «Импортировать из буфера обмена»). Просто вставьте содержимое каждого файла (widgest.json, alerts.json, statistics.json) и импортируйте его.
  6. Отредактируйте один из узлов MQTT (одного достаточно), чтобы обновить свои учетные данные CloudMQTT.
  7. Отредактируйте узел IFTTT, чтобы обновить ключ API создателя IFTTT.

Шаг 4: Запрограммируйте NodeMCU и калибровку емкости мусорного контейнера

После того, как мы все подключили, нам нужно запрограммировать NodeMCU с помощью соответствующего программного обеспечения (эскиза), чтобы он фактически использовал все материалы, которые к нему подключены, и взаимодействовал с Интернетом.

  1. Загрузите и установите Arduino IDE отсюда.
  2. Установите и установите тип платы NodeMCU, как описано в начале следующих инструкций.
  3. Установите следующие библиотеки (Sketch Include Library Manage Libraries…):

    1. Библиотека Adafruit MQTT (от Adafruit)
    2. Библиотека датчиков DHT (от Adafruit)
    3. SharpIR (Джузеппе Мазино)
    4. EEPROM Все - объяснение здесь.
  4. Откройте файл GarbageCanOnline.ino и обновите следующее:

    1. Ваши учетные данные WiFi (WLAN_SSID, WLAN_PASS)
    2. Ваши учетные данные CloudMQTT (MQTT_USERNAME, MQTT_PASSWORD)
    3. Если это вторая или более мусорная корзина, измените идентификатор мусорной корзины (GARBAGECAN_ID)
  5. Загрузите обновленный скетч в свой NodeMCU.
  6. Откройте окно последовательного монитора (Ctrl + M) и убедитесь, что ему удалось опубликовать данные датчиков в CloudMQTT.
  7. Теперь, когда крышка закрыта и мусорное ведро пусто, нажмите и удерживайте кнопку калибровки, чтобы откалибровать вместимость мусорного ведра.
  8. Мусорное ведро готово. Вы можете отключить его от компьютера и подключить в назначенном месте с помощью источника питания USB.

Шаг 5: Использование системы

Использование системы
Использование системы
Использование системы
Использование системы
Использование системы
Использование системы

Если вы зашли так далеко, все должно быть в порядке. Давайте сделаем краткий обзор различных аспектов использования системы.

Мы предполагаем, что у вас есть только одна подключенная корзина для мусора, но позже легко добавить больше!

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

Когда количество мусора внутри мусорного ведра изменится, вы увидите, что датчик изменится соответствующим образом. То же самое и с графиками температуры и влажности.

Когда уровень наполнения достигает 85% -90% (точный порог зависит от температуры и влажности) или произошла ошибка датчика, вы получите уведомление с помощью предпочитаемого вами метода (ов). Вы будете получать уведомление один раз в час по каждому мусорному ведру.

В режиме просмотра «Статистика» вы сможете увидеть самую полную мусорную корзину на данный момент и самую горячую. Нелестное название, если можно так выразиться…

Шаг 6: понимание потока

Понимание потока
Понимание потока
Понимание потока
Понимание потока
Понимание потока
Понимание потока
Понимание потока
Понимание потока

Как вы уже, наверное, заметили, в системе много «движущихся частей». Постараемся прояснить, как вещи связаны друг с другом.

Во-первых, у нас есть мусорное ведро с NodeMCU и его датчиками. Их может быть много - просто «копии» друг друга.

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

Другой объект, который подключается к серверу MQTT, - это Node-RED. Node-RED прослушивает различные сообщения, поступающие из мусорных баков, содержащих сенсорные данные, и применяет к ним свою логику. Он работает, используя «потоки» информации. Каждый раз, когда сообщение получено, в зависимости от его типа (тема MQTT), оно входит в определенные цепочки операций, которые в конечном итоге активируют различные функции системы (обновление панели мониторинга, отправка предупреждений и т. Д.) Было бы очень правильно сказать что Node-RED - это «мозг» системы. Он осведомлен обо всем, что происходит повсюду, и может принимать соответствующие меры.

Внутри Node-RED мы построили 3 основных потока информации:

  1. Виджеты - сенсорная информация, вводимая в Node-RED, затем отображается на панели управления с помощью датчиков и графиков.
  2. Оповещения - сенсорная информация обрабатывается, чтобы определить, следует ли активировать оповещение (на панели управления или в приложении для смартфона). Уровень наполнения с температурой и влажностью учитывается, чтобы сообщить пользователю, что мусорное ведро заполнено. Кроме того, в том же потоке сообщается о сенсорных ошибках.
  3. Статистика - сенсорная информация собирается для отображения самых полных и горячих мусорных баков.

Чтобы Node-RED отправлял push-уведомление, он подключается к службе IFTTT (по протоколу HTTP). Он активирует определенное событие IFTTT с соответствующим текстом уведомления, и IFTTT отправляет уведомление на наш смартфон (протоколы HTTP и XMPP).

Обратитесь к изображениям выше, чтобы лучше понять (а) общую структуру системы и (б) 3 различных информационных потока внутри Node-RED

Шаг 7. Проблемы, ограничения и планы на будущее…

Вызовы

Основными проблемами в этом проекте были в основном сервисы MQTT и Node-RED. Сначала мы использовали AdafruitIO, но его индивидуальная реализация MQTT нам не подошла. Работать с его «фидами» внутри Node-RED было неудобно. Поэтому мы в конечном итоге выбрали CloudMQTT, который основан на сервере Mosquitto MQTT и является гораздо более стандартным. Затем мы перешли к Node-RED, что было довольно сложно, в основном потому, что Node-RED - чудовище. Например, с нашей точки зрения, он намного более комплексный и профессиональный, чем IFTTT. Нам пришлось отрегулировать и научиться использовать подход к проектированию, основанный на потоках, для создания необходимых нам функций системы. Более того, одним из его самых больших преимуществ является поддержка кода javascript, но к этому потребовалось время, чтобы привыкнуть, поскольку мы не программисты javascript. Несмотря на все это, нам очень понравилось работать с этим конкретным инструментом, и мы нашли его очень интересным и полезным.

Ограничения

Что касается ограничений, то первое - это то, что мы использовали только бесплатные сервисы, и они не позволят работать в полном масштабе. Бесплатный план CloudMQTT не позволяет иметь более 5 параллельных подключений, то есть у нас может быть только 4 мусорных бака и Node-RED. Бесплатный план FRED Node-RED позволяет использовать только 24 часа без перерыва, после чего вам необходимо вручную войти в систему и сбросить таймер. Однако эти проблемы легко решить, запустив эти службы локально или заплатив немного больше, чтобы снять ограничения. Второе ограничение заключается в том, что при добавлении четвертого мусорного ведра и далее он должен вручную редактировать поток виджетов в Node-RED, чтобы добавить соответствующие виджеты.

Планы на будущее

У нас были идеи по дальнейшему совершенствованию нашей системы и ее расширению:

  1. Переходите к платным облачным сервисам. (один день работы).
  2. Добавление компрессора для мусора в мусорный бак, что снижает частоту его опорожнения. (4 месяца работы)
  3. Работа с городскими и промышленными мусорными баками для повышения эффективности городских грузовиков, перерабатывающих мусор в городе. Это будет означать значительное улучшение приборной панели и системы уведомлений, чтобы водители грузовиков могли лучше планировать свой маршрут при обращении с мусором. (6 месяцев работы).
  4. Добавление к мусорному ведру возможностей рециркуляции, таких как возможность заливать в мусор специальные биологические растворы и помогать перерабатывать его, пока он все еще находится внутри мусорного ведра. Его можно использовать внутри страны, например, для производства компоста для садов, но его также можно использовать и для промышленных банок. (6 месяцев работы).

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