Анализатор качества воздуха на ардуино

Прибор предназначен для контроля качества воздуха в помещении и отображения таких параметров, как температура, влажность, содержание CO2 а также выявления загрязнения воздуха угарным газом (CO), табачным дымом, парами спирта, ацетона, формальдегидов и других токсичных газов. “Сердцем” устройства является Seeeduino Nano - клон Arduino, присалнный на обзор компанией Seeed Studio.

Плата Seeeduino Nano поставляется в картонной коробке и выглядит следующим образом:

Seeeduino front Seeeduino back

Отличительной особенностью этой платы является использование разъёма USB type-C и преобразователя USB-UART на базе микросхемы cp2102.

Для отображения информации используется дисплей 16х2, также от Seeed Studio. Его особенность - красная подсветка (чёрный текст на красном фоне) и I2C - интерфейс.

LCD 16x2 black on red

Наконец, третья плата от Seeed Studio - модуль контроля качества воздуха на базе датчика MP503. Предназначен для обнаружения загрязнений воздуха (паров алкоголя, ацетона, табачного дыма, формальдегидов и CO). Подключается к Arduino по аналоговому интерфейсу (формирует аналоговый сигнал, величина которого тем больше, чем сильнее загрязнён воздух).

Grove air quality sensor MP503

Для удобного подключения всех модулей к Arduino Seeed Studio предлагает такой шилд:

Grove shield

На нём выведены 3 цифровых, 3 аналоговых разъёма (в каждом из которых линии питания и две линии GPIO), разъёмы I2C и UART.

Для измерения уровня влажности и температуры используется модуль AM2302 (DHT22). Он позволяет измерять относительных влажность воздуха в диапазоне 0-100% с точностью 2% и температуру от 40°С до 80°С с точностью 0.5 °C.

AM2302

Наконец, для определения содержания углекислого газа в воздухе используется датчик MH-Z19, позволяющий измерять содержание CO2 от 0 до 5000 ppm и работающий как по интерфейсу UART, так и по аналоговому интерфейсу (PWM).

MH-Z19

Т.к., у меня не оказалось в наличии подходящих разъёмов для подключения последних двух модулей к плате Grove shield, я использовал цанговые зажимы (выломанные из панели для DIP-микросхемы), поместив их в термоусадочную трубку. Подошли идеально.

Для заливки прошивки в Seeeduino потребуется установить драйвера для микросхемы CP2102 (если Arduino не отображается соответствующий порт).

Я использовал Mac OS X и опишу, как установить драйвер под неё. Чтобы убедиться, что устройство подключено, вводим в терминале команду lsusb и в результате видим список, подобный этому:

Bus 020 Device 003: ID 05ac:0274 Apple Inc. Apple Internal Keyboard / Trackpad  Serial: D3H63422BL1GHMFAF6FF
Bus 020 Device 000: ID 05ac:8290 Apple Inc. Bluetooth USB Host Controller 
Bus 020 Device 015: ID 10c4:ea60 Silicon Laboratories, Inc. Seeeduino Nano  Serial: 0001
Bus 000 Device 001: ID 1d6b:LPTH Linux Foundation USB 3.0 Bus 

Тут третья строка - наша Seeeduino.

Для поиска драйверов идём на сайт SiLabs www.silabs.com и … ничего годного там не находим. Рабочие драйвера под MacOS X можно скачать в конце статьи.

Если версии системы High Sierra и выше, то ОС будет блокировать модуль ядра SiLabs. Чтобы разрешить его, открываем "System Preferences" -> "Security & Privacy”, внизу окна видим сообщение "System software from developer "SiLabs" was blocked from loading." Нажимаем кнопку "Allow" и перегружаем компьютер. После чего в файловой системе должно появиться устройство /dev/cu.SLAB_USBtoUART. Его и надо выбрать в Arduino IDE.

После чего за полчаса была наговнокоженанаписана прошивка под Arduino (скачать вместе с исходниками можно по ссылке в конце статьи).

Уровень загрязнения воздуха отображается в верхнем левом углу экрана. В верхнем правом углу выводится уровень содержания CO2. Нижняя строка отображает влажность воздуха (слева) и его температуру (справа).

Для чистого воздуха уровень загрязнения должен не превышать 50. Значения от 50 до 200 - слабое загрязнение. От 200 до 400 - сильное загрязнение. Выше 400 - караул, спасайся кто может.

При этом важно помнить, что для выхода в рабочий режим датчику надо дать прогреться несколько минут. Аналогично, датчик MH-Z19 требует 3 минуты прогрева, чтобы его показания соответствовали действительности.

Для анализатора был смоделирован корпус под 3D-принтер. Сам корпус состоит из двух половинок, которые туго втсавляются друг-в друга. Дисплей, датчик загрязнения и Grove-шилд привинчиваются к пластмассовой плате (дисплей - с одной стороны, шилд с MP503 - с другой).

Панель корпуса

Датчики AM2302 и MH-Z19 устанавливаются непосредственно на заднюю панель. Там же есть отверстие для сенсора MP503.

Задняя крышка корпуса с датчиками

В собранном виде с проводами:

Корпус в собранном виде с проводами

По ссылкам можно скачать исходники проекта и модели для корпуса, а также драйвера для cp2102 под MacOS X.

Файлы

DownloadИсходники прошивки
DownloadМодель корпуса (STL)
DownloadMac_OSX_VCP_Driver.zip (драйвер для cp2102)
Рейтинг: 
0
Голосов еще нет

Комментарии

В этом магазине  заказывать, больно крутой ценник, понимаю что мож качественно, Алик наше все

Статья я так понял прорекламить этот магазин, и Китайскую компанию .

Устройство понравилось, спору нет.

Статья появилась потому, что Seed предложили сделать мини-обзор на свои модули. Что послужило мотивом наконец доделать девайс по измерению СО2, который используется уже пару лет в незаконченном виде, без корпуса.

Цены у них, согласен, высокие. Но ничего не мешает собрать то же самое на алишных компонентах. Лично я вообще не перевариваю все эти ардуины, предпочитая разводить печатную плату под конкретное устройство, вместо того, чтобы соединять зарослями "лапши" готовые модули. Справедливости ради, надо заметить, что модули тут сделаны качественно и хорошо проработаны в плане удобства подключения к ардуине - просто берём и подключаем к плате кабелем через разъём. Вообще ничего паять не надо. Результат выглядит относительно культурно, но, всё равно - последней фото можно видеть кучу [ненужных] проводов.