- Компоненте потребне
- Нова ПМ сензор СДС011 за мерење ПМ2,5 и ПМ10
- Основе ОЛЕД дисплеја од 0,96 '
- Припрема сензора МК-7 за мерење угљен-моноксида (ЦО)
- Прорачун индекса квалитета ваздуха
- Кружни дијаграм
- Изградња круга система за надзор квалитета ваздуха на Перф Боарду
- Подешавање Адафруит ИО
- Објашњење кода за
- 3Д штампано кућиште за систем за надзор АКИ
- Тестирање система за надзор АКИ
Како зима залази, ваздух који виси над нама згушњава се димом и гасовитим емисијама из запаљених поља, индустријских фабрика и аутомобилског саобраћаја, блокирајући сунце и отежавајући дисање. Стручњаци кажу да високи нивои загађења ваздуха и пандемија ЦОВИД-19 могу бити опасна мешавина која може имати озбиљне последице. Потреба за праћењем квалитета ваздуха у реалном времену је врло упадљива.
Дакле, у овом пројекту ћемо изградити ЕСП32 систем за надзор квалитета ваздуха помоћу сензора Нова ПМ СДС011, сензора МК-7 и сензора ДХТ11. Такође ћемо користити ОЛЕД дисплеј модул за приказ вредности квалитета ваздуха. Квалитет Индекс ваздуха (АКИ) у Индији је заснован на осам загађивача, ПМ10, ПМ2.5, СО2 и НО2, ЦО, озон, НХ3, и Пб. Међутим, није потребно мерити све загађиваче. Тако ћемо измерити концентрацију ПМ2,5, ПМ10 и угљен-моноксида да бисмо израчунали индекс квалитета ваздуха. Вредности АКИ биће објављене на Адафруит ИО како бисмо их могли надгледати са било ког места. Раније смо такође мерили концентрацију ТНГ-а, дима и амонијака у гасу користећи Ардуино.
Компоненте потребне
- ЕСП32
- Нова ПМ сензор СДС011
- 0.96 'СПИ ОЛЕД модул екрана
- ДХТ11 сензор
- МК-7 сензор
- Јумпер Вирес
Нова ПМ сензор СДС011 за мерење ПМ2,5 и ПМ10
Сензор СДС011 је најновији сензор за квалитет ваздуха који је развила компанија Нова Фитнесс. Ради на принципу ласерског расипања и може добити концентрацију честица између 0,3 и 10 μм у ваздуху. Овај сензор се састоји од малог вентилатора, усисног вентила за ваздух, ласерске диоде и фотодиоде. Ваздух улази кроз улаз за ваздух где извор светлости (ласер) осветљава честице, а расејана светлост се фотодетектором претвара у сигнал. Ови сигнали се затим појачавају и обрађују да би се добила концентрација честица ПМ2,5 и ПМ10. Раније смо користили Нова ПМ сензор са Ардуином за израчунавање концентрације ПМ10 и ПМ2,5.
Спецификације сензора СДС011:
- Излаз: ПМ2,5, ПМ10
- Опсег мерења: 0,0-999,9μг / м3
- Улазни напон: 4.7В до 5.3В
- Максимална струја: 100мА
- Струја мировања: 2мА
- Време одзива: 1 секунда
- Фреквенција излаза серијских података: 1 пут / секунду
- Резолуција пречника честице: ≤0,3μм
- Релативна грешка: 10%
- Опсег температура: -20 ~ 50 ° Ц
Основе ОЛЕД дисплеја од 0,96 '
ОЛЕД (Органиц Лигхт Емиттинг Диоде) је врста диоде која емитује светлост и која се прави помоћу органских једињења која побуђују када се дозволи да кроз њих пролази електрична струја. Ова органска једињења имају сопствену светлост, па им нису потребна никаква кола са позадинским осветљењем попут уобичајених ЛЦД екрана. Из тог разлога, ОЛЕД технологија екрана је енергетски ефикасна и широко се користи у телевизорима и другим производима за приказивање.
На тржишту су доступни различити типови ОЛЕД-ова на основу боје екрана, броја пинова, величине и ИЦ контролера. У овом упутству користићемо монохромно плави 7-пински ССД1306 0.96 ”ОЛЕД модул који је широк 128 пиксела и дугачак 64 пиксела. Овај 7-пински ОЛЕД подржава СПИ протокол, а контролер ИЦ ССД1306 помаже ОЛЕД-у да прикаже примљене знакове. Сазнајте више о ОЛЕД-у и његовом повезивању са различитим микроконтролером пратећи везу.
Припрема сензора МК-7 за мерење угљен-моноксида (ЦО)
МК-7 ЦО Модул сензора за гас угљен-моноксида детектује концентрације ЦО у ваздуху. Сензор може мерити концентрације од 10 до 10 000 ппм. МК-7 сензор се може купити или као модул или само као сензор сам. Раније смо користили много различитих врста сензора за гас за откривање и мерење различитих гасова, можете их и проверити ако сте заинтересовани. У овом пројекту користимо сензорски модул МК-7 за мерење концентрације угљен-моноксида у ППМ. Шема кола за плочу МК-7 дата је у наставку:
Отпорник оптерећења РЛ игра веома важну улогу у раду сензора. Овај отпор мења вредност отпора према концентрацији гаса. Сензорска плоча МК-7 долази са отпором оптерећења од 1КΩ који је бескористан и утиче на очитавања сензора. Дакле, да бисте измерили одговарајуће вредности концентрације ЦО, морате да замените отпорник од 1КΩ отпорником од 10КΩ.
Прорачун индекса квалитета ваздуха
АКИ у Индији израчунава се на основу просечне концентрације одређеног загађивача измереног у стандардном временском интервалу (24 сата за већину загађивача, 8 сати за угљен-моноксид и озон). На пример, АКИ за ПМ2,5 и ПМ10 заснован је на просечној концентрацији од 24 сата, а АКИ за угљен-моноксид на просечној концентрацији од 8 сати). Израчун АКИ укључује осам загађивача који су ПМ10, ПМ2,5, азотни диоксид (НО 2), сумпор-диоксид (СО 2), угљен-моноксид (ЦО), приземни озон (О 3), амонијак (НХ 3), и олово (Пб). Међутим, сви загађивачи се не мере на сваком месту.
На основу измерених концентрација загађивача у околини од 24 сата, израчунава се подиндекс, који је линеарна функција концентрације (нпр. Подиндекс за ПМ2,5 биће 51 при концентрацији 31 µг / м3, 100 при концентрацији 60 µг / м3 и 75 у концентрацији од 45 µг / м3). Најгори подиндекс (или максимум свих параметара) одређује укупни АКИ.
Кружни дијаграм
Шема кола за ИоТ систем праћења квалитета ваздуха је врло једноставна и дата је у наставку:
Сензори СДС011, ДХТ11 и МК-7 напајају се са + 5В, док се ОЛЕД модул екрана напаја са 3,3В. Прикључци предајника и пријемника СДС011 повезани су на ГПИО16 и 17 ЕСП32. Прикључак за аналогни излаз сензора МК-7 повезан је на ГПИО 25, а пин за податке ДХТ11 сензора повезан је са сензором ГПИО27. Будући да ОЛЕД модул екрана користи СПИ комуникацију, успоставили смо СПИ комуникацију између ОЛЕД модула и ЕСП32. Везе су приказане у доњој табели:
С.Но |
Пин модула ОЛЕД |
ЕСП32 Пин |
1 |
ГНД |
Приземље |
2 |
ВЦЦ |
5В |
3 |
Д0 |
18 |
4 |
Д1 |
23 |
5 |
ОИЕ |
2 |
6 |
ДЦ |
4 |
7 |
ЦС |
5 |
С.Но |
СДС011 Пин |
ЕСП32 Пин |
1 |
5В |
5В |
2 |
ГНД |
ГНД |
3 |
РКС |
17 |
4 |
ТКС |
16 |
С.Но |
ДХТ Пин |
ЕСП32 Пин |
1 |
Вцц |
5В |
2 |
ГНД |
ГНД |
3 |
Подаци |
27 |
С.Но |
МК-7 Пин |
ЕСП32 Пин |
1 |
Вцц |
5В |
2 |
ГНД |
ГНД |
3 |
А0 |
25 |
Изградња круга система за надзор квалитета ваздуха на Перф Боарду
Као што видите са главне слике, идеја је била да се овај круг употреби у 3Д штампаном кућишту. Дакле, целокупно приказано коло је залемљено на перф плочу. Обавезно користите жице како бисте оставили довољно удаљености за постављање ОЛЕД-а и сензора. Моја перф плоча је залемљена за ОЛЕД и сензорски модул је приказан испод.
Подешавање Адафруит ИО
Адафруит ИО је отворена платформа података која вам омогућава да обједините, визуализујете и анализирате податке уживо у облаку. Коришћењем Адафруит ИО можете да преносите, приказујете и надгледате податке путем Интернета и омогућите ИоТ свој пројекат. Помоћу Адафруит ИО можете да контролишете моторе, читате податке сензора и правите сјајне ИоТ апликације путем Интернета.
Да бисте користили Адафруит ИО, прво отворите налог на Адафруит ИО. Да бисте то урадили, идите на веб страницу Адафруит ИО и кликните на „Започните бесплатно“ у горњем десном углу екрана.
По завршетку поступка креирања налога, пријавите се на налог и кликните на „Прикажи АИО кључ“ у горњем десном углу да бисте добили корисничко име и АИО кључ налога.
Када кликнете на „АИО тастер“, отвориће се прозор са Адафруит ИО АИО кључем и корисничким именом. Копирајте овај кључ и корисничко име, користиће се у коду.
Сада, након што сте добили АИО тастере, направите феед за чување података ДХТ сензора. Да бисте креирали фид, кликните на „Фид“. Затим кликните на „Радње“, а затим одаберите „Направи нови феед“ из доступних опција.
Након тога отвориће се нови прозор у који треба да унесете име и опис фида. Писање описа није обавезно.
Кликните на „Направи“, након тога; бићете преусмерени на новостворени фид.
За овај пројекат креирали смо укупно шест феедова за вредности ПМ10, ПМ2,5, ЦО, температуре, влажности и АКИ. Следите исти поступак као горе да бисте креирали остатак феедова.
Након стварања фидова, сада ћемо створити функцију контролне табле Адафруит ИО за визуализацију података сензора на једној страници. За то прво направите контролну таблу, а затим додајте све ове фидове на ту контролну таблу.
Да бисте креирали контролну таблу, кликните на опцију Контролна табла, а затим кликните на „Акција“, а након тога кликните на „Направи нову контролну таблу“.
У следећи прозор унесите име контролне табле и кликните на „Направи“.
Како је контролна табла створена, сада ћемо за визуализацију података користити Адафруит ИО блокове попут Гауге и Слидер. Да бисте додали блок, кликните на „+“ у горњем десном углу.
Затим одаберите блок „Мерач“.
У следећем прозору изаберите податке фида које желите да визуализујете.
У последњем кораку промените поставке блока да бисте га прилагодили.
Сада следите исти поступак као горе да бисте додали блокове за визуелизацију за остатак феедова. Моја контролна табла Адафруит ИО изгледала је овако:
Објашњење кода за
Комплетна шифра овог пројекта дата је на крају документа. Овде објашњавамо неке важне делове кода.
Код користи СДС011, Адафруит_ГФКС, Адафруит_ССД1306, Адафруит_МКТТ, и ДХТ.х библиотеке. Библиотеке СДС011, Адафруит_ГФКС и Адафруит_ССД1306 могу се преузети из Менаџера библиотека у Ардуино ИДЕ-у и инсталирати одатле. За то отворите Ардуино ИДЕ и идите на Скетцх <Инцлуде Либрари <Манаге Либрариес . Сада потражите СДС011 и инсталирајте библиотеку СДС сензора Р. Зсцхиегнера.
Слично томе, инсталирајте библиотеке Адафруит ГФКС и Адафруит ССД1306 компаније Адафруит. Адафруит_МКТТ.х и ДХТ11.х могу се преузети са датих веза.
Након инсталирања библиотека у Ардуино ИДЕ, покрените код тако што ћете укључити потребне датотеке библиотека.
#инцлуде
У следећим редовима дефинишите ширину и висину ОЛЕД екрана. У овом пројекту сам користио 128 × 64 СПИ ОЛЕД екран. Можете да промените СЦРЕЕН_ВИДТХ , и СЦРЕЕН_ХЕИГХТ варијабле према вашем екрану.
#дефине СЦРЕЕН_ВИДТХ 128 #дефине СЦРЕЕН_ХЕИГХТ 64
Затим дефинишите СПИ комуникационе пинове где је повезан ОЛЕД екран.
#дефине ОЛЕД_МОСИ 23 #дефине ОЛЕД_ЦЛК 18 #дефине ОЛЕД_ДЦ 4 #дефине ОЛЕД_ЦС 5 #дефине ОЛЕД_РЕСЕТ 2
Затим креирајте инстанцу за приказ Адафруит са ширином и висином и СПИ протоколом комуникације који је раније дефинисан.
Екран Адафруит_ССД1306 (СЦРЕЕН_ВИДТХ, СЦРЕЕН_ХЕИГХТ, ОЛЕД_МОСИ, ОЛЕД_ЦЛК, ОЛЕД_ДЦ, ОЛЕД_РЕСЕТ, ОЛЕД_ЦС);
Затим укључите акредитиве за ВиФи и Адафруит ИО које сте копирали са сервера Адафруит ИО. То ће укључивати МКТТ сервер, број порта, корисничко име и АИО кључ.
цонст цхар * ссид = "Галаки-М20"; цонст цхар * пасс = "ац312124"; #дефине МКТТ_СЕРВ "ио.адафруит.цом" #дефине МКТТ_ПОРТ 1883 #дефине МКТТ_НАМЕ "цхоудхариас" #дефине МКТТ_ПАСС "988ц4е045еф64ц1б9бц8б5бб7еф5ф2д9"
Затим подесите Адафруит ИО феед-ове за складиштење података сензора. У мом случају сам дефинисао шест феедова за чување различитих података сензора, и то: АирКуалити, Температуре, Хумидити, ПМ10, ПМ25 и ЦО.
Адафруит_МКТТ_Цлиент мктт (& клијент, МКТТ_СЕРВ, МКТТ_ПОРТ, МКТТ_НАМЕ, МКТТ_ПАСС); Адафруит_МКТТ_Публисх АирКуалити = Адафруит_МКТТ_Публисх (& мктт, МКТТ_НАМЕ "/ ф / АирКуалити"); Адафруит_МКТТ_Публисх Температуре = Адафруит_МКТТ_Публисх (& мктт, МКТТ_НАМЕ "/ ф / Температуре"); Адафруит_МКТТ_Публисх Влажност = Адафруит_МКТТ_Публисх (& мктт, МКТТ_НАМЕ "/ ф / Влажност"); Адафруит_МКТТ_Публисх ПМ10 = Адафруит_МКТТ_Публисх (& мктт, МКТТ_НАМЕ "/ ф / ПМ10"); Адафруит_МКТТ_Публисх ПМ25 = Адафруит_МКТТ_Публисх (& мктт, МКТТ_НАМЕ "/ ф / ПМ25"); Адафруит_МКТТ_Публисх ЦО = Адафруит_МКТТ_Публисх (& мктт, МКТТ_НАМЕ "/ ф / ЦО");
Сада унутар функције сетуп () , иницијализујте серијски монитор брзином преноса од 9600 у сврхе отклањања грешака. Такође иницијализујте ОЛЕД екран, ДХТ сензор и СДС011 сензор функцијом старт () .
воид сетуп () {ми_сдс.бегин (16,17); Сериал.бегин (9600); дхт.бегин (); дисплаи.бегин (ССД1306_СВИТЦХЦАПВЦЦ);
За петљу унутар подешавање функција се користи за прикупљање вредности до одређеног броја, а затим поставити бројач на нулу.
за (инт тхисРеадинг1 = 0; тхисРеадинг1 <нумРеадингсПМ10; тхисРеадинг1 ++) {реадингсПМ10 = 0; }
Очитавање вредности сензора:
Сада унутар функције петље, користите милис () методу за читање вредности сензора на сваких сат времена. Сваки од сензора за гас даје аналогну вредност од 0 до 4095. Да бисте претворили ову вредност у напон, користите следећу једначину: РвРо = МК7Рав * (3.3 / 4095); где је МК7Рав аналогна вредност са аналогног пина сензора. Такође, очитајте очитавања ПМ2.5 и ПМ10 са сензора СДС011.
иф ((непотписано дуго) (цуррентМиллис - превиоусМиллис)> = интервал) {МК7Рав = аналогРеад (иМК7); РвРо = МК7Рав * (3.3 / 4095); МК7ппм = 3.027 * екп (1.0698 * (РвРо)); Сериал.принтлн (МК7ппм); грешка = ми_сдс.реад (& п25, & п10); иф (! грешка) {Сериал.принтлн ("П2.5:" + Стринг (п25)); Сериал.принтлн ("П10:" + Стринг (п10)); }}
Претварање вредности:
Вредности ПМ2,5 и ПМ10 су већ у µг / м 3, али треба да претворимо вредности угљен-моноксида из ППМ у мг / м 3. Формула за конверзију је дата у наставку:
Концентрација (мг / м 3) = Концентрација (ППМ) × (Молекулска маса (г / мол) / моларна запремина (Л))
Где: молекулска маса ЦО је 28.06 г / мол и моларна запремина је 24.45Л на 25 0 Ц
КонцентрацијаИНмгм3 = МК7ппм * (28.06 / 24.45); Сериал.принтлн (ЦонцентратионИНмгм3);
Израчунавање просека од 24 сата:
Затим у следећим редовима израчунајте просек од 24 сата за очитавање ПМ10, ПМ2,5 и просек од 8 сати за очитавања угљен-моноксида. У првом реду кода узмите тренутни зброј и одузмите први елемент у низу, а сада га сачувајте као нови зброј. У почетку ће то бити Нула. Затим узмите вредности сензора и додајте тренутно очитавање укупном броју и повећајте индекс броја. Ако је вредност индекса једнака или већа од нумРеадингс, вратите индекс на нулу.
тоталПМ10 = тоталПМ10 - очитавањаПМ10; очитавањаПМ10 = п10; тоталПМ10 = тоталПМ10 + очитавањаПМ10; реадИндекПМ10 = реадИндекПМ10 + 1; иф (реадИндекПМ10> = нумРеадингсПМ10) {реадИндекПМ10 = 0; }
Затим напокон објавите ове вредности на Адафруит ИО.
иф (! Температуре.публисх (температуре)) {делаи (30000); } иф (! Влажност.објави (влажност)) {кашњење (30000); ………………………………………………………. ……………………………………………………….
3Д штампано кућиште за систем за надзор АКИ
Даље, измерио сам димензије поставке помоћу свог нонијера, а такође сам измерио димензије сензора и ОЛЕД-а за дизајн кућишта. Мој дизајн је изгледао отприлике овако у наставку, након што је завршен.
Након што сам био задовољан дизајном, извезао сам га као СТЛ датотеку, пресекао на основу подешавања штампача и на крају одштампао. СТЛ датотека је такође доступна за преузимање са Тхингиверсе и помоћу ње можете да одштампате кућиште.
Након што је штампање завршено, наставио сам са састављањем пројекта постављеног у трајни ограђени простор да бих га инсталирао у објекту. Са комплетном успостављеном везом спојио сам струјни круг у своје кућиште и све је лепо пристајало, као што видите овде.
Тестирање система за надзор АКИ
Када су хардвер и код спремни, време је да тестирате уређај. За напајање уређаја користили смо спољни адаптер од 12В 1А. Као што видите, уређај ће приказати концентрацију ПМ10, ПМ2,5 и угљен-моноксида на ОЛЕД дисплеју. Концентрација ПМ2,5 и ПМ10 су у µг / м 3, док је концентрација угљен-моноксида у мг / м 3.
Ова очитавања ће такође бити објављена на контролној табли Адафруит ИО. Максимум свих параметара (ПМ10, ПМ2,5 и ЦО) биће АКИ.
Вредности АКИ у последњих 30 дана биће приказане као графикон.
На овај начин можете да користите сензоре СДС011 и МК-7 за израчунавање индекса квалитета ваздуха. Комплетан рад пројекта такође се може наћи у доњем видео линку. Надам се да вам се свидео пројекат и било вам је занимљиво да направите свој. Ако имате питања, оставите их у одељку за коментаре испод.