Съдържание:

IDC2018IOT GarbageCan-Online: 7 стъпки
IDC2018IOT GarbageCan-Online: 7 стъпки

Видео: IDC2018IOT GarbageCan-Online: 7 стъпки

Видео: IDC2018IOT GarbageCan-Online: 7 стъпки
Видео: The Expert (Short Comedy Sketch) 2024, Юли
Anonim
Image
Image
Необходими части
Необходими части

Въведение

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

С този проект се стремим да ви помогнем да наблюдавате кофите си за боклук около къщата / работното пространство / и т.н., така че винаги да можете да знаете кога са пълни и да предприемете незабавни действия, като изнесете боклука.

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

Основните функции

  1. Табло за наблюдение:

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

      • Ниво на пълнота на всяка кофа за боклук.
      • Температура и влажност на всяка кофа за боклук.
    • Статистически раздел:

      • Най -пълната кофа за боклук.
      • Най -горещата кофа за боклук.
  2. Система за сигнали и известия:

    • Поддържат се следните събития:

      • Кофата за боклук е пълна.
      • Възникна грешка на сензора.
    • Сигналите за пълнота отчитат нивото на пълнота на кофата за боклук, но също така и температурата и влажността на кофата за боклук.
    • Сигналите могат да се изпращат чрез известия по телефона и сигнали на таблото.
    • Всеки предупредителен канал може да се включва и изключва чрез таблото за управление.
  3. Мащабируемост:

    • С помощта на бутона за калибриране е възможно да се настрои системата към различни кофи за боклук с различен капацитет.
    • Възможно е сравнително лесно да се добавят още контейнери за боклук. Човек може да сглоби същата система на нова кофа за боклук, да зададе ID на кофата за боклук и да я калибрира (натискане на бутон). Наличието на повече от 3 контейнера за боклук ще изисква разширяване на таблото за управление (лесна задача за изпълнение).

Кои сме ние?

Този проект е създаден (с любов и всеотдайност!) От Ром Цинцинатус и Даниел Алима - студенти от IDC Herzliya като финален проект за нашия курс по IoT. Надяваме се, че нашата работа ще бъде полезна и ще се радвате да я използвате!

Стъпка 1: Необходими части

За да изградите системата, ще трябва да придобиете следните компоненти и части:

  1. Кофа за боклук (за предпочитане с капак): Това ще се използва за … добре.. знаете ли какво ще правим с тази, а?;)
  2. Платка: За да свържете всички различни компоненти, без да използвате запояване.
  3. NodeMCU (ESP-8266): Отговаря за четенето на сензорите и изпращането на информацията в облака.
  4. IR сензор за разстояние - Sharp 0A41SK: Този сензор ще измерва количеството боклук (ниво на пълнота) вътре в кутията.
  5. Сензор за температура и влажност - DHT11: Този сензор ще измерва температурата и влажността в кофата за боклук.
  6. Моментален превключвател: Ще се използва за калибриране на сензора за разстояние според размера на кофата за боклук.
  7. Алуминиево фолио: Ще се използва за формиране на детектор за състоянието на капака - независимо дали е отворен или затворен.
  8. Джъмперни проводници: Вземете много и с различни дължини и цветове. Ще свърже всичко заедно.
  9. Лента: Трябва да прикрепим нещата на място.
  10. Micro-USB кабел: За да свържете NodeMCU към вашия компютър за програмиране, а по-късно и за захранване.
  11. USB захранване (зарядно за смартфон): Ще осигури захранване на NodeMCU, когато е инсталирано на кофата за боклук.

Стъпка 2: Окабеляване и сглобяване

Окабеляване и сглобяване
Окабеляване и сглобяване
Окабеляване и сглобяване
Окабеляване и сглобяване
Окабеляване и сглобяване
Окабеляване и сглобяване

Електрически инсталации

Поставете NodeMCU върху чертежа, така че да бъде удобно да го прикачите по -късно към кофата за боклук и да свържете USB кабела към него. След това се обърнете към схемата на електрическата схема по -горе, за да свържете различните компоненти към NodeMCU. Не забравяйте да използвате дълги проводници за сензорите и проводниците за състоянието, така че ще бъде удобно да инсталирате системата и да използвате кофата за боклук с нея.

  • IR сензор за разстояние - Sharp 0A41SK:

    • Вин (Червен) Вин
    • GND (черен) GND
    • Vout (жълт) A0
  • Сензор за температура и влажност - DHT11:

    • Vin (червен) 3V3
    • GND (черен) GND
    • ДАННИ (жълто) D4
  • Моментен превключвател:

    • Pin1 D3
    • Pin2 GND
  • Проводници за състоянието на капака (отваряне / затваряне):

    • Тел 1 D2
    • Wire2 GND

Монтаж

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

  1. Поставете IR сензора за разстояние в средата на капака (от вътрешната страна!). Уверете се, че сте го закрепили правилно, в противен случай ще срещнете фалшиви показания!
  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. EEPROMAnything - обяснение тук.
  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 протоколи).

Консултирайте се с изображенията по-горе, за да разберете по-добре (а) общата структура на системата и (б) трите различни информационни потока вътре в 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 месеца работа).

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