Оглавление:
- Шаг 1: Необходимые детали
- Шаг 2: Подключение и сборка
- Шаг 3. Настройте MQTT, Node-RED и IFTTT
- Шаг 4: Запрограммируйте NodeMCU и калибровку емкости мусорного контейнера
- Шаг 5: Использование системы
- Шаг 6: понимание потока
- Шаг 7. Проблемы, ограничения и планы на будущее…
Видео: IDC2018IOT GarbageCan-Online: 7 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Вступление
Все знают, что происходит, когда мы слишком долго оставляем мусор в мусорном ведре, не вынимая его. Что ж, самое очевидное, что для мусора нет места, но он тоже начинает вонять, и становится очень неприятно.
В этом проекте мы стремимся помочь вам следить за вашими мусорными баками вокруг дома / на рабочем месте / и т. Д., Чтобы вы всегда знали, когда они заполнены, и могли немедленно принять меры, вынув мусор.
Система предупредит вас по телефону или на панели управления, что вам нужно очистить мусорное ведро. Система учитывает уровень заполнения мусорного ведра, а также измеренные температуру и влажность внутри него. Все мы знакомы с срочностью вывоза мусора из мусорных баков в жаркие и влажные дни …
Основные особенности
-
Панель мониторинга:
-
Основной раздел:
- Степень наполненности каждого мусорного ведра.
- Температура и влажность каждого мусорного ведра.
-
Раздел статистики:
- Самая полная помойка.
- Самый горячий мусорный бак.
-
-
Система предупреждений и уведомлений:
-
Поддерживаются следующие события:
- Мусорное ведро заполнено.
- Произошла ошибка датчика.
- Предупреждения о заполнении учитывают уровень заполнения мусорного ведра, а также уровни температуры и влажности мусорного ведра.
- Оповещения можно отправлять с помощью телефонных уведомлений и предупреждений на панели управления.
- Каждый канал оповещения можно включать и выключать через панель управления.
-
-
Масштабируемость:
- С помощью кнопки калибровки можно настроить систему на разные мусорные баки разной вместимости.
- Относительно легко можно добавить больше мусорных баков. Такую же систему можно собрать на новом мусорном ведре, установить ID мусорного ведра и откалибровать его (нажатием кнопки). Наличие более трех мусорных баков потребует расширения панели управления (простая задача).
Кто мы?
Этот проект был создан (с любовью и самоотверженностью!) Ромом Синцинатом и Даниэлем Алимой - студентами IDC в Герцлии в качестве заключительного проекта нашего курса Интернета вещей. Мы надеемся, что наша работа окажется для вас полезной, и вы получите от нее удовольствие!
Шаг 1: Необходимые детали
Чтобы построить систему, вам понадобятся следующие компоненты и детали:
- Мусорный бак (желательно с крышкой): он будет использоваться для… ну… вы знаете, что мы собираемся с этим делать, а?;)
- Макетная плата: для соединения всех компонентов без пайки.
- NodeMCU (ESP-8266): отвечает за считывание датчиков и отправку информации в облако.
- ИК-датчик расстояния - Sharp 0A41SK: Этот датчик измеряет количество мусора (уровень заполнения) внутри контейнера.
- Датчик температуры и влажности - DHT11: Этот датчик измеряет температуру и влажность внутри мусорного ведра.
- Мгновенный переключатель: будет использоваться для калибровки датчика расстояния в соответствии с размером мусорного бака.
- Алюминиевая фольга: будет использоваться для формирования детектора состояния крышки - открыта она или закрыта.
- Перемычки: достаньте много, разной длины и цвета. Соединим все воедино.
- Изолента: Нам нужно будет прикрепить вещи на место.
- Кабель Micro-USB: для подключения NodeMCU к компьютеру для программирования, а затем для источника питания.
- Блок питания 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
сборка
Собрать систему на мусорном баке довольно просто. Прикрепите макет к мусорному ведру, желательно близко к крышке. Используйте ленту или кабельную стяжку, чтобы закрепить его на месте. Потом:
- Поместите ИК-датчик расстояния посередине крышки (с внутренней стороны!). Убедитесь, что он закреплен должным образом, иначе вы столкнетесь с ошибочными показаниями!
- Поместите датчик температуры и влажности где-нибудь в мусорное ведро. Закрепите лентой.
- Накройте боковую часть крышки и кончик мусорного ведра алюминиевой фольгой. Убедитесь, что при закрытой крышке есть хороший контакт. Это будет сигнализировать системе, что мусорное ведро открыто или закрыто. Затем приклейте каждый из проводов состояния крышки к одной из алюминиевой фольги и закрепите лентой.
Шаг 3. Настройте MQTT, Node-RED и IFTTT
Большая часть логики проекта фактически реализована в облаке. NodeMCU отправляет данные на сервер MQTT, а Node-RED потребляет их и применяет к ним свою логику (подробнее об архитектуре - далее). Наконец, для передачи push-уведомлений (предупреждений) на наш смартфон мы использовали IFTTT.
Мы будем использовать облачные сервисы CloudMQTT и FRED в качестве наших серверов MQTT и Node-RED соответственно, а также будем использовать IFTTT для push-уведомлений.
- Зарегистрируйтесь в CloudMQTT с бесплатным планом. Запишите свои учетные данные на сервере MQTT (имя пользователя и пароль).
- Зарегистрируйтесь в IFTTT. Создайте новый апплет «Уведомление о приложении Webhooks IFTTT». Используйте «Уведомление с мобильного телефона» в качестве названия события WebHookds. Проконсультируйтесь с изображением выше для мельчайших подробностей. Обратите внимание на ключ API вашего производителя.
- Загрузите приложение IFTTT на свой телефон и войдите в систему, используя свои учетные данные. Это позволит вам получать push-уведомления.
- Зарегистрируйтесь на FRED с бесплатным тарифным планом.
- После того, как экземпляр FRED запущен и работает, импортируйте в него присоединенные потоки (кнопка с 3 полосами «Импортировать из буфера обмена»). Просто вставьте содержимое каждого файла (widgest.json, alerts.json, statistics.json) и импортируйте его.
- Отредактируйте один из узлов MQTT (одного достаточно), чтобы обновить свои учетные данные CloudMQTT.
- Отредактируйте узел IFTTT, чтобы обновить ключ API создателя IFTTT.
Шаг 4: Запрограммируйте NodeMCU и калибровку емкости мусорного контейнера
После того, как мы все подключили, нам нужно запрограммировать NodeMCU с помощью соответствующего программного обеспечения (эскиза), чтобы он фактически использовал все материалы, которые к нему подключены, и взаимодействовал с Интернетом.
- Загрузите и установите Arduino IDE отсюда.
- Установите и установите тип платы NodeMCU, как описано в начале следующих инструкций.
-
Установите следующие библиотеки (Sketch Include Library Manage Libraries…):
- Библиотека Adafruit MQTT (от Adafruit)
- Библиотека датчиков DHT (от Adafruit)
- SharpIR (Джузеппе Мазино)
- EEPROM Все - объяснение здесь.
-
Откройте файл GarbageCanOnline.ino и обновите следующее:
- Ваши учетные данные WiFi (WLAN_SSID, WLAN_PASS)
- Ваши учетные данные CloudMQTT (MQTT_USERNAME, MQTT_PASSWORD)
- Если это вторая или более мусорная корзина, измените идентификатор мусорной корзины (GARBAGECAN_ID)
- Загрузите обновленный скетч в свой NodeMCU.
- Откройте окно последовательного монитора (Ctrl + M) и убедитесь, что ему удалось опубликовать данные датчиков в CloudMQTT.
- Теперь, когда крышка закрыта и мусорное ведро пусто, нажмите и удерживайте кнопку калибровки, чтобы откалибровать вместимость мусорного ведра.
- Мусорное ведро готово. Вы можете отключить его от компьютера и подключить в назначенном месте с помощью источника питания USB.
Шаг 5: Использование системы
Если вы зашли так далеко, все должно быть в порядке. Давайте сделаем краткий обзор различных аспектов использования системы.
Мы предполагаем, что у вас есть только одна подключенная корзина для мусора, но позже легко добавить больше!
Во-первых, обратите внимание на главную панель инструментов. Вы должны находиться на главном экране и видеть заполненность мусорного ведра, температуру и влажность. Вы можете управлять уведомлениями на телефоне и предупреждениями на панели инструментов с помощью переключателей слева.
Когда количество мусора внутри мусорного ведра изменится, вы увидите, что датчик изменится соответствующим образом. То же самое и с графиками температуры и влажности.
Когда уровень наполнения достигает 85% -90% (точный порог зависит от температуры и влажности) или произошла ошибка датчика, вы получите уведомление с помощью предпочитаемого вами метода (ов). Вы будете получать уведомление один раз в час по каждому мусорному ведру.
В режиме просмотра «Статистика» вы сможете увидеть самую полную мусорную корзину на данный момент и самую горячую. Нелестное название, если можно так выразиться…
Шаг 6: понимание потока
Как вы уже, наверное, заметили, в системе много «движущихся частей». Постараемся прояснить, как вещи связаны друг с другом.
Во-первых, у нас есть мусорное ведро с NodeMCU и его датчиками. Их может быть много - просто «копии» друг друга.
NodeMCU измеряет различные датчики, помещенные в мусорное ведро, и публикует данные на сервере MQTT (протокол MQTT). Вы можете думать о сервере MQTT как о большом обмене информацией, в который многие мусорные баки могут передавать свою информацию.
Другой объект, который подключается к серверу MQTT, - это Node-RED. Node-RED прослушивает различные сообщения, поступающие из мусорных баков, содержащих сенсорные данные, и применяет к ним свою логику. Он работает, используя «потоки» информации. Каждый раз, когда сообщение получено, в зависимости от его типа (тема MQTT), оно входит в определенные цепочки операций, которые в конечном итоге активируют различные функции системы (обновление панели мониторинга, отправка предупреждений и т. Д.) Было бы очень правильно сказать что Node-RED - это «мозг» системы. Он осведомлен обо всем, что происходит повсюду, и может принимать соответствующие меры.
Внутри Node-RED мы построили 3 основных потока информации:
- Виджеты - сенсорная информация, вводимая в Node-RED, затем отображается на панели управления с помощью датчиков и графиков.
- Оповещения - сенсорная информация обрабатывается, чтобы определить, следует ли активировать оповещение (на панели управления или в приложении для смартфона). Уровень наполнения с температурой и влажностью учитывается, чтобы сообщить пользователю, что мусорное ведро заполнено. Кроме того, в том же потоке сообщается о сенсорных ошибках.
- Статистика - сенсорная информация собирается для отображения самых полных и горячих мусорных баков.
Чтобы 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, чтобы добавить соответствующие виджеты.
Планы на будущее
У нас были идеи по дальнейшему совершенствованию нашей системы и ее расширению:
- Переходите к платным облачным сервисам. (один день работы).
- Добавление компрессора для мусора в мусорный бак, что снижает частоту его опорожнения. (4 месяца работы)
- Работа с городскими и промышленными мусорными баками для повышения эффективности городских грузовиков, перерабатывающих мусор в городе. Это будет означать значительное улучшение приборной панели и системы уведомлений, чтобы водители грузовиков могли лучше планировать свой маршрут при обращении с мусором. (6 месяцев работы).
- Добавление к мусорному ведру возможностей рециркуляции, таких как возможность заливать в мусор специальные биологические растворы и помогать перерабатывать его, пока он все еще находится внутри мусорного ведра. Его можно использовать внутри страны, например, для производства компоста для садов, но его также можно использовать и для промышленных банок. (6 месяцев работы).
Рекомендуемые:
IDC2018IOT IoPill Box: 7 шагов
IDC2018IOT IoPill Box: это IoPill Box - еженедельная коробка для таблеток, подключенная к Интернету. Для нашего последнего проекта нашего курса IoT мы решили предложить решение, которое поможет гарантировать, что пожилые люди (или любой другой человек, использующий еженедельную коробку для таблеток) ) не забываем забрать
IDC2018IOT Вешалка для ткани: 6 шагов
IDC2018IOT Cloth Hanger: вешалка для ткани IOT сделает ваш шкаф умнее и предоставит вам онлайн-статистику об одежде внутри него. У него есть 3 основные функции: когда вы хотите выбрать, что надеть, вы можете нажать на цвет, который вы хотите носить сегодня и вешалки для одежды IOT
Умная дверная система для людей с нарушениями слуха (IDC2018IOT): 11 шагов
Умная дверная система для слабослышащих (IDC2018IOT): Мы все надеемся, что у нас будет дом, который нас устроит, но стандартная конструкция подходит не всем. Дверь в дом очень плохо приспособлена для глухих или слабослышащих людей. Люди с ослабленным слухом не слышат стук в дверь или
Учись лучше с умной настольной лампой - IDC2018IOT: 10 шагов (с изображениями)
Учись лучше с умной настольной лампой - IDC2018IOT: Люди в западном мире проводят много времени сидя. За столом, катаюсь, смотрю телевизор и многое другое. Иногда слишком долгое сидение может нанести вред вашему телу и повредить вашим способностям фокусировки. Ходьба и вставание по прошествии определенного времени имеет решающее значение для
Подключаемая система корма, воды и контроля IDC2018IOT: 7 шагов
IDC2018IOT Connected Pet Food, Water and Monitor System: Введение Независимо от того, являетесь ли вы студентом, находящимся под давлением, трудолюбивым человеком или просто вдали от дома более нескольких часов в день. Как заботливые владельцы домашних животных, мы хотим, чтобы наши любимые оставались здоровыми, сытыми и, конечно же, НЕ лежали на