- PVSM.RU - https://www.pvsm.ru -
В этом посте рассказывается о созданной в форме кикстартеровского проекта системе мониторинга качества московского воздуха vozduh.msk.ru [1]. Сначала будет несколько слов о том, почему воздух интересно мониторить и почему для этого недостаточно существующих систем. Потом будет рассказ о сборе средств на проект (с цифрами). Потом будет рассказ об архитектуре системы, её характеристиках, сильных сторонах и ограничениях.

26 апреля 2012 года Москву накрыло плотное желто-зелёное облако. Вместе с облаком поползли слухи о каком-то якобы взорвавшемся заводе по производству удобрений. Но скоро стало ясно, что для конспирологии места нет: этой весной случилось уникально бурное цветение берёзы. Зелёное облако состояло из пыльцы. Друзья-аллергики сидели дома, плотно закрыв створки стеклопакетов.
Но даже без злосчастной берёзы московский воздух обычно отнюдь не горной чистоты. Многие возвращающиеся из отпуска жалуются на характерное состояние, напоминающее лёгкую степень отравления.
Нам было известно два источника данных по загрязнению воздуха в городе.
Судя по данным мосэкомониторинга, концентрация примесей газов-загрязнителей в московском воздухе обычно находится на премлемом уровне. Т.е. бывает всякое (особенно в районе Автозаводской), но в целом, судя по этим данным, наш воздух примерно такой же, как и в других мегаполисах. Значит есть другие действующие факторы, оказывающие существенное влияние на здоровье людей.
Помимо сети государственных пунктов мониторинга качества воздуха на западе широко развита практика частного, гражданского мониторинга. Наверное самый известный проект в рамках этой активности — «яйцо качества воздуха», Air quality egg [5].
Возникла гипотеза: важный вклад в качество воздуха вносит «невидимая» мосэкомониторингом пыль.
В ценовом диапазоне «до 1000$», в котором я решил искать решения, есть два популярных датчика пыли: фирмы Sharp с легко запоминающимся названием GP2Y1010AU0F [6] за 12$ и измеритель DC1100 pro [7] фирмы Dylos за 290$. К достоинствам первого относится его низкая цена. В остальном он уступает Dylos-у, поскольку этот последний умеет измерять отдельные показатели для мелкой (< 2.5 um) и крупной пыли. Это давало надежду на то, что показания прибора удастся привести к общечеловеческому показателю PM2.5, который как раз и используется при вычислении AQI. Забегая вперёд скажу, что этой надежде было не суждено оправдаться.
21 июня 2012 года я объявил в своём ЖЖ, френдфиде и фейсбуке о начале сбора средств на покупку измерителя пыли DC1100. Благодаря помощи друзей за шесть дней удалось собрать даже немного больше, чем требовалось, примерно 420$. На этот избыток был куплен замечательный оптический датчик дождя [8], потому что казалось вероятным сильное влияние дождя на пыль. Ещё раз забежав вперёд скажу, что сильная связь дождя и уровня пыли подтвердилась.
Для меня такой успех отечественного онлайн-финансирования стал приятной неожиданностью. Привычно видеть сборы средств для помощи людям, пребывающим в тяжелых обстоятельствах, нуждающихся в деньгах. Поэтому я совсем не был уверен, что проект частного мониторинга воздуха, по сути исследовательский (и объявленный в этом качестве) сможет получить финансирование. Тем приятнее был результат. Он говорит о том, что проблема актуальна и волнует многих людей.
20 июля датчики добрались до Москвы, в двадцатых числа августа проект заработал в полупромышленном режиме. Сейчас на сайте проекта публикуются актуальные данные, но сам сайт активно дорабатывается.
Система состоит из трех модулей: измерителя, промежуточного сервера и серверов публикации данных.
Данные с датчиков уровней пыли, дождя, температуры и влажности считываются измерителем на основе arduino и в json-формате пересылаются через Xbee-линк на домашний сервер. Там они логируются и пересылаются для публикации на cosm.com и vozduh.msk.ru.

Воздух, прогоняемый вентилятором (8) с улицы через трубу (2) проходит через нагревательный элемент (3) для того, чтобы при необходимости снизить относительную влажность воздуха и предотвратить влияние водяного пара на результаты измерений. Ход воздуха показан стрелочками. Схема управления (5) на базе платформы arduino uno, используя данные датчика влажности (6), управляет нагревателем (3) с помощью силового реле (7).
Данные с DC1100 (4) и датчика дождя (не показан на схеме) считываются схемой управления (5) и через карточку XBee передаются на домашний сервер, где проходят первичную обработку и отсылаются для публикации на общедоступный веб-сайт.
[9] [10] [11] |
| Слева направо: внешний вид блока измерителя, корпус со снятой крышкой и DC1100, датчик дождя во время тестирования. (картинки кликабельны) |
FreeBSD 9.0 на старом ноуте с разбитым экраном. Сам, без танцев с бубном, увидел ftdi-шную карточку с Xbee модулем, рубёвый скрипт импорта данных крутится в скрине.
[12]
Сейчас данные публикуются в двух местах: на cosm.com и на vozduh.msk.ru. Vozduh представляет собой скрипт на ruby-sinatra, графики рисуются с помощью библиотечки dygraphs [13]. Графики выводятся сглаженными на 10-минутных интервалах; те, кому любопытны «сырые» данные, могут их увидеть на соответствующей страничке [14].
На vozduh-e прикручена минимальная статистика: вычисляются квантили для измерений пыли и тренды в соответствии с линейной моделью. Статистика вычисляется с помощью небольшого скрипта на языке R, напрямую читающего и пишущие данные из базы данных (SQLite).
На мой взгляд, проект можно считать успешным. Во-первых, это первый известный мне народно-профинансированный проект мониторинга воздуха в нашей стране. Во-вторых, ежеминутно публикуются точные данные по двум загрязнителям атмосферы: крупной и мелкой пыли. Эта информация была недоступна до реализации проекта.
Данные по загрязнению атмосферы пылью очень любопытны. Известно, например, что пыльные бури из центральной Африки достигают берегов северной Америки, перемещаясь на расстояния в тысячи километров. Наши измерения говорят о том, что количество мелкой пыли мало меняется при перемещении на расстояния в сотни километров. В один из дней я снял показания последовательно на юго-западе москвы, на МКАД-е и в г. Дубна. Показания были очень близки. При этом с течением времени уровни загрязнения могут меняться быстро, в разы в течении нескольких часов. Это делает значения этого параметра перспективными для интерпретации.
К сожалению, не получилось превратить измерения пыли в общепринятый в этом деле показатель PM2.5. Дело в том, что DC1100 показывает количество пылинок в единице объема воздуха, а PM2.5 — массу пыли в единице объема. Несмотря на то, что делались попытки сконвертировать одно в другое, моё лучшее понимание на текущий момент состоит в том, что корректно это сделать невозможно. Интересующихся вопросом могу адресовать к работе [5].
Дальнейшие планы по развитию проекта включают в себя:
Буду рад другим идеям по развитию проекта и желающим принять в нём участие.
Автор: variomap
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/arduino/14390
Ссылки в тексте:
[1] vozduh.msk.ru: http://vozduh.msk.ru
[2] Мосэкомониторинг: http://www.mosecom.ru/air/
[3] Сайт: http://www.kestine.ru/monitoring.aspx
[4] AQI: http://airnow.gov/index.cfm?action=aqibasics.aqi
[5] Air quality egg: http://www.kickstarter.com/projects/edborden/air-quality-egg
[6] GP2Y1010AU0F: https://www.sparkfun.com/products/9689
[7] DC1100 pro: http://www.dylosproducts.com/dcproairqumo.html
[8] оптический датчик дождя: http://www.rainsensors.com/
[9] Image: http://i.imgur.com/oAK5p
[10] Image: http://i.imgur.com/12YMD
[11] Image: http://i.imgur.com/43A9D
[12] Image: http://imgur.com/Yuem5
[13] dygraphs: http://dygraphs.com/
[14] на соответствующей страничке: http://vozduh.msk.ru/data/dc1100
[15] vozduh.msk.ru/: http://vozduh.msk.ru/
[16] github.com/ati/air-quality: https://github.com/ati/air-quality
[17] sir35.ru/Pokazateli-kachestva-vozduxa.html: http://sir35.ru/Pokazateli-kachestva-vozduxa.html
[18] www.sciencedirect.com/science/article/pii/0021850274900639: http://www.sciencedirect.com/science/article/pii/0021850274900639
Нажмите здесь для печати.