Як зробити свій власний вимірювач якості повітря з Raspberry Pi і датчиком CO2
Надійним індикатором якості повітря в офісах, класах або житлових кімнатах є вміст CO2.
Концентрація вуглекислого газу в свіжому повітрі становить близько 400 ppm. Це означає «частинки на мільйон», у даному випадку 400 молекул CO2 на мільйон молекул повітря. Хоча це лише 0,04 відсотка, він має помітний вплив.
У приміщенні концентрація швидко зростає через дихання людини (тобто дихання). Дивно, але під час показу фільму в кінотеатрі рівень CO2 може швидко досягати кількох тисяч частин на мільйон. Якщо рівень CO2 досить високий, це може спричинити відсутність концентрації, втому та головний біль.
Станція вимірювання CO2 може сказати вам, коли пора відкрити вікна – свіже повітря потрібне, якщо рівень CO2 досягає 1500 ppm або вище.
що тобі знадобиться
По-перше, вам потрібен Raspberry Pi з досить оновленою ОС Raspberry Pi. Не має значення, яку модель Raspberry ви використовуєте.
Вам також потрібен датчик CO2. У статті використовується датчик MH-Z19C китайського виробника Vinson Electronics Technology. Аналогічно працює модель MH-Z19B.
При покупці варто вибирати модель зі штирями, інакше її доведеться паяти самостійно. Піни або заголовки – це маленькі штифти, які ви використовуєте для підключення датчика до Raspberry Pi. Версія із заголовком доступна на Amazon, тому переконайтеся, що ви вибрали ту саму версію, купуючи її.
Нарешті, вам також знадобляться перемички. Вам знадобиться жіноча/жіноча версія для датчика.
Загалом інвестиція становить менше 40 доларів, тоді як професійні вимірювачі CO2 коштують у рази дорожче, якщо купувати готові моделі.
Важливо: Щоб зчитувати датчики, Raspberry Pi спілкується через послідовний інтерфейс, який за замовчуванням вимкнено. Використовуйте інструмент, щоб змінити це
raspi-config
У розділі «Параметри інтерфейсу» виберіть «Послідовний порт».
Як працює датчик?
MH-Z19C (або B) — це недисперсійний інфрачервоний датчик (NDIR). Вони засновані на залежному від концентрації поглинанні електромагнітного випромінювання в інфрачервоному діапазоні довжин хвиль. Вуглекислий газ поглинає інфрачервоне випромінювання специфічним і вимірюваним способом.
Джерело світла пропускає ІЧ-випромінювання через повітря, яке вимірюється справжнім датчиком. Попереду розміщено фільтр, який пропускає довжину хвилі поглинання цільового газу.
Якщо концентрація збільшується, абсорбція збільшується відповідно до закону Ламберта–Бера, а сигнал відповідно зменшується. Датчик визначає інтенсивність результуючого світла і перетворює її в проміле.

Як підключити датчики до Raspberry Pi. На датчик слід дивитися знизу.
ливарний цех
монтаж схеми
Щоб налаштувати схему, спочатку вимкніть Raspberry Pi та від’єднайте його від джерела живлення. Потім підключіть друковану плату до датчика. Вам знадобляться чотири дроти-перемички (мама/мама), тобто з гніздами на обох кінцях.
Ви можете побачити функцію кожного з’єднання під датчиком. Під’єднайте контакт 6 датчика (з позначкою «VCC» або «Vin») до контакту 4 на Raspberry Pi. Це блок живлення на п’ять вольт. Контакт 4 є другим зверху з правого боку смуги GPIO.
Тепер підключіть контакт «GND» (7) на датчику до контакту 6 на платі Raspberry. Це дріт заземлення. Він розташований безпосередньо під контактом 4.
На півдорозі перейдіть до іншої сторони датчика, який має п’ять з’єднань: контакт «RX» (2) на датчику має бути підключений до контакту 8 на міні-комп’ютері, безпосередньо під контактом 6.
Нарешті, з’єднайте контакт «Tx» (3) прямо під контактом 8 на датчику з контактом 10 на Raspberry Pi. На малюнку вище знову показано повне налаштування. Нарешті, почніть із повторного підключення Raspberry Pi до джерела живлення.
зчитувати виміряні значення
Датчик CO2 готовий до використання. Для читання поточного значення CO2 потрібен скрипт Python. На щастя, його розробив японський розробник – лише для вашої інформації, щоб пояснити адресу Github. Ви встановлюєте сценарій разом з іншими компонентами, відкривши термінал на Raspberry Pi та ввівши такі команди:
git clone https://github.com/UedaTakeyuki/mh-z19.git
Потім перейдіть до новоствореної папки “~/mh-z19” і виконайте інсталяційний сценарій:
./setup.sh
Щоб визначити поточне значення CO2, у майбутньому використовуйте цю команду:
sudo python -m mh_z19
Ви отримаєте такий результат, як “{“co2″: 3128}”. Одиницею є поточна проміле CO2.

Виміряні значення можуть автоматично відображатися онлайн і чітко показувати ефект вентиляції.
ливарний цех
Значення, виміряні онлайн
Завжди вручну зчитувати виміряні значення на Raspberry Pi дратує та дуже стомлює в довгостроковій перспективі. Тому краще відображати виміряні значення за часом онлайн.
Використовуйте безкоштовний онлайн-сервіс для доступу до історії виміряних значень через ПК або смартфон. Перейдіть на сайт monitor3.uedasoft.com і введіть адресу електронної пошти та пароль для входу. Ви отримаєте “view_id”, який вам не потрібен.
Натисніть на пункт меню елементівЗверніть увагу на друге поєднання літер у списку, наприклад «prgrvpqg», і встановіть відповідний параметр Активнийнатисніть на зберегти Щоб завершити налаштування.
Тепер відкрийте термінал на Raspberry Pi і поверніться до папки «mh-z19». там ви викликаєте команду
./setid.sh [abcdefgh]
Замініть послідовність літер восьмизначною літерною комбінацією, яку ви щойно помітили. Цей виклик використовується для перевірки, чи все працює належним чином:
sudo python -m pondslider
Якщо в нижньому рядку виведених даних з’являється слово «true», все гаразд. Відтепер, щоб регулярно отримувати вимірювані значення та вводити їх у програму Monitor, введіть команду
./autostart.sh --on
Тепер у браузері можна побачити, як кожні п’ять хвилин діаграма на сторінці монітора збільшується на виміряне значення. Кількість виміряних значень, що відображаються, можна встановити за допомогою кнопки «Налаштування» безпосередньо внизу.
Щоб охопити десять годин, потрібно 120 значень. За допомогою діаграми ви можете з першого погляду побачити, чи хтось провітрював кімнату, коли ви були за обідом або за покупками.
Графік із виміряними значеннями можна легко викликати зі смартфона та завантажити як файл CSV за допомогою кнопки «Завантажити», щоб проаналізувати його в Excel. Після перезавантаження Raspberry Pi скрипт вимірювання перезапускається автоматично.
Цю концепцію можна розширити. За допомогою червоного світлодіода, відповідного резистора 330 Ом і дещо модифікованого сценарію Python можна створити схему, у якій світлодіод загоряється, як тільки виміряне значення перевищує вказане граничне значення CO2.
