Мазмуну:

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

Video: IDC2018IOT GarbageCan-Online: 7 кадам

Video: IDC2018IOT GarbageCan-Online: 7 кадам
Video: 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. Микро USB кабели: NodeMCUну компьютериңизге программалоо үчүн, кийинчерээк электр менен камсыздоо үчүн туташтыруу.
  11. USB Power Supply (смартфондун заряддагыч түзүлүшү): Таштанды челегине орнотулганда NodeMCUге энергия берет.

2 -кадам: Зымдоо жана монтаждоо

Кабель жана монтаж
Кабель жана монтаж
Кабель жана монтаж
Кабель жана монтаж
Кабель жана монтаж
Кабель жана монтаж

Электр өткөргүчтөрү

NodeMCUду кийинчерээк таштанды челегине туташтырууга ыңгайлуу болуп, ага USB кабелин туташтыргыла. Андан кийин, ар кандай компоненттерди NodeMCUга туташтыруу үчүн жогорудагы зым диаграммасынын сүрөтүн караңыз. Сенсорлор жана абал зымдары үчүн узун зымдарды колдонгонуңузду текшериңиз, андыктан системаны орнотуу жана аны менен кошо таштанды челегин колдонуу ыңгайлуу болот.

  • Ырас аралык IR сенсор - Sharp 0A41SK:

    • Вин (Кызыл) Вин
    • GND (Кара) GND
    • Vout (Yellow) A0
  • Температура жана нымдуулук сенсору - DHT11:

    • Вин (Кызыл) 3V3
    • GND (Кара) GND
    • DATA (Yellow) D4
  • Көз ирмемдик которуу:

    • Pin1 D3
    • Pin2 GND
  • Капкактын абалы (ачык / жабуу) зымдар:

    • Wire1 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. CloudMQTT грамоталарын жаңыртуу үчүн MQTT түйүндөрүнүн бирин түзөтүңүз (бири жетиштүү).
  7. IFTTT жасоочу API ачкычыңызды жаңыртуу үчүн IFTTT түйүнүн түзөтүңүз.

4 -кадам: NodeMCU программасын жана таштандылардын сыйымдуулугун калибрлөө

Баары зым менен бүткөндөн кийин, NodeMCUду тийиштүү программалык камсыздоо (эскиз) менен программалаш керек, ошондо ал ага байланышкан бардык нерселерди колдонот жана интернет менен байланышат.

  1. Бул жерден Arduino IDEди жүктөп алып, орнотуңуз.
  2. NodeMCU тактасынын түрүн орнотуңуз жана төмөнкү көрсөтмөнүн башында түшүндүрүлгөндөй орнотуңуз.
  3. Төмөнкү китепканаларды орнотуңуз (Sketch Include Library Китепканаларын Башкаруу …):

    1. Adafruit MQTT китепканасы (Adafruit тарабынан)
    2. DHT сенсор китепканасы (Adafruit тарабынан)
    3. SharpIR (Giuseppe Masino тарабынан)
    4. EEPROMAбардыгы - түшүндүрмө бул жерде.
  4. GarbageCanOnline.ino файлын ачыңыз жана төмөнкүлөрдү жаңыртыңыз:

    1. Сиздин WiFi эсептик дайындарыңыз (WLAN_SSID, WLAN_PASS)
    2. Сиздин CloudMQTT эсептик дайындарыңыз (MQTT_USERNAME, MQTT_PASSWORD)
    3. Эгерде бул экинчи таштанды кутусу же андан көп болсо, таштанды челегинин IDсин алмаштырыңыз (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 айлык иш).

Сунушталууда: