EcoCity — мережа громадського моніторингу якості повітря за допомогою пристроїв на Arduino

У рубриці DOU Проектор всі охочі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про що розповісти — запрошуємо взяти участь. Якщо ні — можливо, серія надихне на створення власного made in Ukraine продукту. Питання і заявки на участь надсилайте на editors@dou.ua .

Привіт, мене звати Дмитро Обухів, мені 15. Хочу розказати історію створення проекту EcoCity. Цю ініціативу підтримуємо ми — команда розробників з Івано-Франківська. EcoCity — це мережа автоматизовуваних станцій моніторингу якості повітря та платформа для громадського моніторингу. Наші станції разів на хвилину визначають показники забрудненості повітря й надсилають їх на сервер. На сервері ці дані зберігають у БД, а користувачі можуть переглядати їх на сайті як мапу забрудненості, яка оновлюється в онлайн-режимі.

Будь-яка людина може зібрати свою станцію моніторингу й під'єднати її до нашої мережі. Також ми продаємо готові здешевлені станції (ціна — лише 1000 грн, коли вартість звичайної станції EcoCity — 4500 грн), і кожен небайдужий до екології може купити її та встановити у себе біля будинку. У такий спосіб він отримує найактуальніші дані для його місцеперебування та розширює мережу моніторингу (у цьому й суть громадського моніторингу).

Також ми виготовляємо інші пристрої моніторингу, наприклад Sapphire — портативний пристрій для моніторингу в приміщеннях і в місцях без зв'язку, та розробляємо нові. Вже скоро представимо нове покоління наших пристроїв.

Команда

Наша команда з'єднання явилася ще до створення проекту. До неї входжу я, Дмитро Обухів, учень 9-го класу, розробник ПЗ для станцій і всього, що із цим пов'язаність язано. Богдан Фіцак та Андрій Крохмалюк — студенти Коледжу електронних приладів, які роблять усе, що стосується «заліза»: підбір сенсорів, монтаж і збірка, розробка монтажних плат тощо. Володимир і Мар'ян Врюкало (13 та 11 років) розробляють мобільний застосунок і здійснюють супровід проекту. Олександр Аронець, викладач у Коледжі електронних приладів, та Олексій Трелевський, власник інтернет-магазину beegreen.com.ua, — координатори нашого проекту, які також допомагають його створювати. Валентин Сорока — розробник веб-частини нашого проекту, який нещодавно прилучився до нього як волонтер. Оскільки Валентин професійний розробник, він нам багато в чому допоміг.

Зліва направо: Дмитро Обухів, Андрій Крохмалюк, Олександр Аронець, Олексій Трелевський, Богдан Фіцак

Ідея, концепція й початок проекту

Отже, улітку 2018 року ми вирішили взяти участь у підлітковому хакатоні в Івано-Франківську. Тоді склад нашої команди був дещо інший, координатори були в групі підтримки, а Володя Врюкало на хакатоні був членом іншої команди. Узагалі в багатьох з нас раніше з'єднання являлися думки щодо створення такого проекту. І ми вирішили працювати в цьому напрямі. Тоді витворили концепції та прототипи сайту й мобільного застосунку. На жаль, ми не перемогли у хакатоні. Однак зрозуміли, що придумали щось нове й круте.

У ті часи концепція проекту була дещо інша. Основна ідея така: на платформі Arduino + Ethernet Shield ми створювали станції, які були якнайточніші і якнайдорожчі (якщо порівняти з іншими нашими розробками), установлювали їх в Івано-Франківську за допомогою місцевої влади й поширювали далі в інших містах.

Наші попередні пристрої ми продавали або на замовлення різним екологічним організаціям, або на грантові кошти для міста. Розміщені в Івано-Франківську станції (більшість) ми повністю обслуговували: виконували профілактичні роботи й стежили за їхнім правильним є функціонуванням. Але якоїсь миті зрозуміли, що так ми дуже повільно розвиваємо мережу (перші 5 станцій установлювали протягом декількох місяців), і почали шукати вирішення цієї проблеми.

Зараз, крім своїх, поширюємо здешевлені пристрої для громадського моніторингу. Ми називаємо їх «ЕкоТруби» через їхній корпус. Ідею (за згодою авторів) запозичили у відкритого проекту Luftdaten. Його концепція в тому, що вони поширюють дешеві станції, які кожен може собі дозволити. І люди, які занепокоєні екологічною ситуацією, мають змогу придбати або скласти самостійно такий пристрій (схематика ї ПЗ є у вільному доступі). У такий спосіб вони розширюють мережу й отримують найактуальніші дані про якість повітря за вікном. Такі станції витворили на основі модифікованого програмного забезпечення Luftdaten і платформи ESP8266. Його також використовують інші екоактивісти, але наша версія має деякі зміни. По-перше, це українська локалізація, по-друге, це постійна активна підтримка, по-третє, це функціонал: наші станції можуть вимірювати показники, як-від СО2 й формальдегід, сенсори яких не підтримує оригінальне ПЗ.

Також на цій платформі ми виготовляємо оригінальні пристрої, як-від AirFresh та AirHome з підтримкою керування системами вентиляції. Це, можна сказати, еволюція «ЕкоТруби»: у новому корпусі, з іншим набором сенсорів, компактні, на платформі WeMoS D1 Mini Pro. Вони будуть дорожчі, але кращі й за характеристиками, і за функціоналом.

Пристрій AirHome й корпус від нього ліворуч. P. S. Над дизайном ми ще попрацюємо

Ще на хакатоні ми почали пошуки аналогів ідеї й зрозуміли, що в Україні наш перший проект. Хоча останнім часом український екорух набірає обертів, і разом з ним упроваджують схожі проекти. Основна наша відмінність — те, що основу проекту повністю розробили з нуля, не використовуючи готові рішення. Ми маємо свою платформу — eco-city.org.ua і власні розробки — станції та прилади, а запозичені розробки доповнюємо й удосконалюємо.

Як це працює

Ця частина, думаю, буде найцікавіша. Розпочнемо з наших пристроїв. Користувач, який отримав станцію, установлює її у себе вдома. У комплекті є спеціальні кріплення для швидкого встановлення на вікні.

Установлення станції на вікні

Відтак станцію треба налаштувати. Це досить просто. Станція під час першого ввімкнення створює точку доступу Wi-Fi. Ми під'єднуємося до цієї точки, і нас редірект на сторінку налаштування.

Тут обираємо домашню мережу зі списку. Тоді натискаємо «Зберегти й перезавантажити». Після цього можемо перейти на локальну IP-адресою станції й переглядати показники.

Далі станцію треба зареєструвати на нашому сайті, щоб відбити її на карті й щоб власник міг отримати архів даних, які ми зберігаємо.

Для цього заходимо на сторінку активації, яка є на нашому сайті. Уводимо координати станції, назву й локацію. Усе. Тепер станція відбиватиметься на карті ї її показники будуть видимі в реальному часі.

Залежно від конфігурації станція може вимірювати різні показники, але основні — це температура, вологість, атмосферний тиск і мікропил (PM 2,5 та PM10). Гадаю, значення всіх показників зрозуміле, окрім мікропилу.

Показник PM 2,5 відбиває концентрацію твердих часточок діаметром до 2,5 мікрометра. Показник PM 10 відбиває концентрацію твердих часточок діаметром до 10 мікрометрів. Нормальним рівнем концентрації считают ? 50 мкг/м3.

Тверді часточки діаметром 2,5 мікрометра настільки малі, що їх можна побачити лише за допомогою мікроскопа. Вони безперешкодно проникають глибоко в дихальні шляхи, минаючи захисні системи організму людини. Наше тіло просто не призначене для блокування PM 2,5. Більша частина утворюється внаслідок спалювання різних видів палива.

Тверді часточки 10 PM діаметром 10 мікрометрів не такі малі, як PM 2,5, проте втридцятеро менші, ніж товщина людської волосини, що дає їм змогу легко потрапляти в дихальні шляхи.

Технічна реалізація

Як я вже казав, ми почали на підлітковому хакатоні влітку 2018 року. Відтоді розпочалася розробка нашого проекту. Оскільки він був першим в Україні й ми робили все з нуля, спочатку виникало багато труднощів. До того ж більшості учасників нашої команди тоді бракувало досвіду.

Раніше ми вивчали програмування на Arduino, тож вирішили застосовувати її. Для надійності використали провідний канал зв'язку — Ethernet. Відтак почали вибирати сенсори. З доступних на ринку сенсорів ми взяли SDS011 для визначення концентрацій мікропилу. Він порівняно дешевший, і є дослідження його точності, як порівняти з еталонним обладнанням. Усі інші сенсори вибирали за доступністю. Для температури й вологості підійшов сенсор DHT22 з точністю 0,5 C для температури та 5% для відносної вологості. Для атмосферного тиску вибрали доступний BMP 180 з точністю 1hPa. Для вуличного шуму ми взяли прості мікрофони з підсилювачем, який у нас був, і програмно за формулою вивели з аналогового сигналу рівень шуму. Для радіаційного фону витворили простий окремий пристрій для зчитування імпульсів з трубки Гейгера, який працює по UART. Тоді треба було написати для цього прошивку. Я взявся за цю справу й склав прошивку на основі інших проектів (як-від системи розумного будинку та інтернет-метеостанції, які ми й наші колеги розробляли раніше).

Робота прошивки досить проста. Зчитування із сенсорів відбувається за протоколами I2C і UART. Далі дані із сенсорів формують у GET-запит і надсилають на сервер. Спочатку ми склали плагін для WordPress, який зчитував запити на наш сайт i показував на OSM-маркери з даними. Це все, на що нас вистачило тоді.

Що всередині «ЕкоТруби»

Був листопад 2018 року, коли ми подали заявку на грантову програму Urban Space 100 на встановлення в Івано-Франківську 5 таких станцій. А за кілька місяців побували на ековоркшопі в Чернівцях, де зустрілися з багатьма екоактивістами. Там і дізналися про проект Luftdaten та відтоді розпочали роботу над «ЕкоТрубами».

Прошивка для «ЕкоТруби», як я вже казав, була готова. Нам залишалося додати підтримку надсилання на наш сайт. Я додав підтримку в прошивці, а Валентин доробив підтримку таких станцій на сайті. Також ми трохи змінили інтерфейс і додали українську локалізацію.

Тоді й почали їх поширювати. Однак ми станції не лише продавали, а й подарували кілька з них. Одна з таких стоїть у гімназії № 2 в Івано-Франківську. Також ми зорганізували воркшоп для дітей, де розіграли 15 таких пристроїв.

З розширенням проекту нам знадобилося щось ліпше, ніж плагін для WP. І тут до нас прилучився Валентин, який переніс наш сайт на рушій nginx, додав збереження даних у БД, побудову графіків, створив відкрите API для виводу наших станцій на всесвітній сайт незалежного моніторингу — aqicn.org і загалом усе зоптимізував. А я переробив надсилання даних, і зараз ми надсилаємо їх як POST-запит. Також ми попрацювали над захистом даних від злому: додали шифрування й хешування.

Потім ми розпочали вдосконалення «ЕкоТруб»: додали підтримку інших сенсорів, завдяки чому ці станції тепер можуть виміряти СО2 й формальдегід. Сама «ЕкоТруба» працює на Wi-Fi-модулі ESP8266, що значно нас обмежує. Адже, щоб було зручно користувачам, наша прошивка універсальна для різних конфігурацій. Через це доповнювати її досить складно. Альо сенсори з UART можуть працювати в режимі Q/A, тобто сенсор надсилає дані тільки за запитом. Так, використовуючи два піни, ми можемо працювати з великою кількістю сенсорів. Також можемо додавати сенсори з I2C, а найближчим часом додамо підтримку сенсора NOx, SO2 й CO.
?

Результати й плани

Наразі ми одна з найбільших мереж громадського моніторингу якості повітря в Україні. У нас є 90 зареєстрованих станцій, половина з яких активна постійно. На нашому сайті ви також можете бачіті станції наших партнерів майже в десяти областях: це станції Save Dnipro, Luftdaten (які розміщено в Україні) і комунального підприємства «Центр екологічного моніторингу» з їхніми сертифікованими станціями. Ми незалежні від інших платформ моніторингу, оскільки в нас є своя, створена з нуля, гнучкий й стабільна платформа.

Ми маємо свої пристрої моніторингу. Нині наш сайт щоденно відвідують сотні користувачів — людей, які дбають про довкілля та своє здоров'я.

Ми аналізуємо показники, отримані з наших станцій для визначення джерел забруднення. Результати годину від годині публікуємо на нашій сторінці у Facebook .

Проект фінансує учасник нашої команди Олексій, і нам кілька разів виділяли кошти на проекти за грантовою програмою Urban Space 100. Також кожен охочий може підтримати наш проект фінансово або співпрацюючи з нами. На жаль, ми не маємо такого великого фінансування, як інші проекти, але, можливо, це й на краще.

У майбутньому ми розширюватимемо нашу мережу. Зараз ми з нашими партнерами рухаємося до сертифікації сенсорів, щоб їхні показники можна було офіційно використовувати. Також, отримавши більше даних, зможемо прогнозувати забрудненість автоматично.

Нашому проекту лише один рік, і нам, звичайно, ще є куди рости. Мі постійно вдосконалюємося та пробуємо щось нове. І попереду ще дуже багато роботи. Це й допрацювання підтримки нових сенсорів для «ЕкоТруб» (NOx, SO2, CO, VOx), і розробка нових пристроїв, і мобільний застосунок, над яким ми вже досить довго працюємо.

Але нам подобається цей проект, бо він дав нам багато нових знань і нових знайомств. І ми працюватимемо над ним і далі.

Опубліковано: 09/07/19 @ 07:00
Розділ Різне

Рекомендуємо:

Безпечний шлях. Що таке SAFe і як його впровадити
Python дайджест #21: Python 3 у Windows 10 Store. Black стає частиною Python Software Foundation
.NET дайджест #28: introducing .NET 5, asynchronous Injection, Core dump of StackOverflowException
Scrumium.io — альтернативна система управління проектами
Чи варто інвестувати у Flutter. Порівняння Flutter і React Native