Мазмұны:

IDC2018IOT GarbageCan-Online: 7 қадам
IDC2018IOT GarbageCan-Online: 7 қадам

Бейне: IDC2018IOT GarbageCan-Online: 7 қадам

Бейне: IDC2018IOT GarbageCan-Online: 7 қадам
Бейне: Afruza & Shohruhxon - Esingdami ayt (Qadam 2 fasl soundtrack) 2024, Қараша
Anonim
Image
Image
Қажетті бөлшектер
Қажетті бөлшектер

Кіріспе

Қоқысты қоқыс жәшігіне ұзақ уақыт тастамай тастасақ не болатынын бәрі біледі. Ең анық нәрсе - қоқысқа артық орын жоқ, бірақ ол да сасып бастайды, және ол өте жағымсыз болады.

Бұл жобаның көмегімен біз үйдің қоқыс жәшіктерін / жұмыс алаңы / т.б. бақылауға көмектесуді мақсат етеміз, сондықтан сіз олардың қашан толғанын біле аласыз және қоқысты шығару арқылы тез арада әрекет ете аласыз.

Жүйе қоқыс жәшігін босату керек екені туралы телефон немесе бақылау тақтасы арқылы хабарлайды. Жүйе қоқыс жәшігінің толу деңгейін, сонымен қатар оның ішінде өлшенетін температура мен ылғалдылықты ескереді. Ыстық және ылғалды күндері қоқыс жәшіктерін босатудың қажеттілігі бәрімізге белгілі …

Негізгі ерекшеліктері

  1. Бақылау тақтасы:

    • Негізгі бөлім:

      • Әр қоқыс жәшігінің толу деңгейі.
      • Әр қоқыс жәшігінің температурасы мен ылғалдылығы.
    • Статистика бөлімі:

      • Толық қоқыс жәшігі.
      • Ең ыстық қоқыс жәшігі.
  2. Ескертулер мен хабарландырулар жүйесі:

    • Келесі оқиғаларға қолдау көрсетіледі:

      • Қоқыс жәшігі толы.
      • Сенсор қатесі орын алды.
    • Толықтығы туралы ескертулер қоқыс жәшігінің толу деңгейін, сонымен қатар қоқыс жәшігінің температурасы мен ылғалдылығын ескереді.
    • Ескертулерді телефондық хабарландырулар мен бақылау тақтасының ескертулері арқылы жіберуге болады.
    • Әрбір ескерту арнасын бақылау тақтасы арқылы қосуға және өшіруге болады.
  3. Масштабтылық:

    • Калибрлеу түймесінің көмегімен жүйені әртүрлі сыйымдылықтағы қоқыс жәшіктеріне реттеуге болады.
    • Қоқыс жәшіктерін салыстырмалы түрде оңай қосуға болады. Бір жүйені жаңа қоқыс жәшігіне жинауға, қоқыс жәшігінің идентификаторын орнатуға және калибрлеуге болады (түймені басу). 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:

    • Вин (қызыл) 3V3
    • GND (қара) GND
    • ДЕРЕКТЕР (сары) D4
  • Лездік қосқыш:

    • PIN 1 D3
    • PIN 2 GND
  • Қақпақ күйі (ашық / жабық) сымдар:

    • Сым1 D2
    • Сым2 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 хабарландыру үшін пайдаланамыз.

  1. Тегін жоспармен CloudMQTT -ге тіркеліңіз. MQTT серверіне тіркелу деректерін ескеріңіз (пайдаланушы аты мен құпия сөз).
  2. IFTTT -ге тіркелу. «Webhooks IFTTT қолданбасы туралы хабарландырудың» жаңа апплетін жасаңыз. WebHookds оқиғасының атауы ретінде «Ұялы телефон туралы хабарландыруды» пайдаланыңыз. Ұсақ -түйек мәліметтерді жоғарыдағы суреттен қараңыз. Жасаушы API кілтіне назар аударыңыз.
  3. IFTTT қосымшасын телефонға жүктеп, тіркелгі деректерімен кіріңіз. Бұл push хабарландыруларын алуға мүмкіндік береді.
  4. Тегін жоспармен FRED -ке тіркеліңіз.
  5. FRED данасы іске қосылғаннан кейін оған қосылған ағындарды импорттаңыз (аралық сақтағыштан импорттаудың 3 жолағы батырмасы). Әр файлдың мазмұнын қойыңыз (widgest.json, alerts.json, statistics.json) және оны импорттаңыз.
  6. CloudMQTT тіркелгі деректерін жаңарту үшін MQTT түйіндерінің бірін өңдеңіз (біреуі жеткілікті).
  7. IFTTT жасаушы API кілтін жаңарту үшін IFTTT түйінін өңдеңіз.

4 -қадам: NodeMCU мен қоқыс контейнерінің калибрлеуін бағдарламалау

Бізде бәрі қосылғаннан кейін, біз NodeMCU бағдарламасын тиісті бағдарламалық жасақтамамен (эскиз) бағдарламалауымыз керек, осылайша ол оған қосылған барлық заттарды қолданады және интернетпен байланысады.

  1. Arduino IDE бағдарламасын осы жерден жүктеңіз және орнатыңыз.
  2. NodeMCU тақтасының түрін келесі нұсқаулықтың басында түсіндірілгендей орнатыңыз және орнатыңыз.
  3. Келесі кітапханаларды орнатыңыз (Sketch Include Library Management Libraries…):

    1. Adafruit MQTT кітапханасы (авторы Adafruit)
    2. DHT сенсорлық кітапханасы (Adafruit бойынша)
    3. SharpIR (Джузеппе Масино)
    4. EEPROMAбарлығы - мұнда түсініктеме.
  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 протоколдары).

(A) жүйенің жалпы құрылымын және (b) Node-RED ішіндегі 3 түрлі ақпарат ағынын жақсы түсіну үшін жоғарыдағы суреттерді қараңыз

7 -қадам: қиындықтар, шектеулер мен болашаққа жоспарлар …

Қиындықтар

Бұл жобаның негізгі қиындықтары негізінен MQTT және Node-RED қызметтерін қолдану болды. Біз алдымен AdafruitIO -ды қолдандық, бірақ оның MQTT реттелуі біз үшін жақсы болмады. Node-RED ішінде оның «арналарымен» жұмыс істеу ыңғайлы болмады. Нәтижесінде біз Mosquitto MQTT серверіне негізделген және әлдеқайда стандартты CloudMQTT -ті таңдадық. Содан кейін біз 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 ай жұмыс).

Ұсынылған: