Самодельный детектор CO₂ (диоксида углерода)
В последние дни я экспериментирую с встраиваемой системой Arduino и обнаружил, что изучать её довольно просто, поэтому решил собрать детектор углекислого газа. Основная причина в том, что из-за постоянного контроля PM2.5 окна всегда закрыты, и я хочу знать, достаточно ли в комнате кислорода, а также какой тип приточной вентиляции необходимо установить.
Материалы для сборки:
| Материал | Цена в юанях (включая доставку) |
|---|---|
| Совместимая плата разработки Arduino Nano | 15 |
| Преобразователь уровней (Logic Level Converter) | 5.5 |
| Датчик DS-CO2-20 | 145 |
| OLED-дисплей SSD1306 128x64 | 14 |
| Двусторонняя универсальная плата 3x7 | 5.14 |
| Провода | 4 |
| Стойки с резьбой M2*15 | 5 |
Паяльник подойдет самодельный с наконечником T12, его цена около 170 юаней, а производительность сравнима с оригиналом стоимостью более 2000.

Схема подключения
Протокол связи датчика — UART на 3.3 В, для простоты используем преобразователь уровней.

Код
Здесь приведен только простой код для получения значений с датчика:
#include <SoftwareSerial.h>
#define rxPin 12
#define txPin 11
SoftwareSerial CO2_Serial(rxPin, txPin);
const byte readCO2[] = {0x42, 0x4d, 0xe3, 0x00, 0x00, 0x01, 0x72}; //Команда
byte responses[12];
void setup()
{
CO2_Serial.begin(9600);
}
unsigned int GetCo2()
{
int valMultiplier = 1;
while (!CO2_Serial.available())
{
CO2_Serial.write(readCO2, 7);
delay(1000);
}
CO2_Serial.setTimeout(2000);
CO2_Serial.readBytes(responses, 12);
int high = responses[4]; //Старший байт
int low = responses[5]; //Младший байт
unsigned int val = high * 256 + low;
return val * valMultiplier;
}
void loop()
{
auto co2 = GetCo2();
draw_co2(co2);
delay(1000);
}Для отображения я использовал библиотеку u8g2. Чтобы увеличить скорость рендеринга, приходилось обновлять только часть области, поэтому я включил режим полного буфера, в результате было использовано 92% памяти. Возможно, лучше использовать другую библиотеку.

Выводы
Вернемся к исходному вопросу: достаточно ли кислорода при постоянно закрытых окнах? Вот мой опыт для одной комнаты площадью около 30 $м^2$, с окнами из некачественного алюминиевого сплава и одним человеком (не очень активным):
- При закрытых окнах CO2 повышается примерно на 500 ppm каждые 30 минут, максимальный уровень может достигать 3000-4000 ppm (в зависимости от места измерения).
- Если окно слегка приоткрыть, уровень может стабилизироваться примерно на 1000 ppm.
- Если слегка приоткрыть и окно, и дверь, уровень может стабилизироваться около 500 ppm (видно, что одновременная вентиляция с севера и юга важна).
Каждые 10 000 ppm соответствуют содержанию CO2 в 1%.
Какой уровень CO2 вреден для человека? В науке на этот счет есть разногласия. Некоторые эксперименты показывают, что уровень выше 1200 ppm снижает когнитивные способности, но другие исследования, например, по набору текста на клавиатуре, показывают, что даже 5000 ppm не оказывают влияния. С медицинской точки зрения для безопасности жизни не рекомендуется находиться в среде с содержанием CO2 выше 10 000 ppm более 8 часов. Таким образом, можно считать, что безопасность при постоянно закрытых окнах определенно не вызывает проблем, но при возможности лучше поддерживать уровень в пределах 1000-2000 ppm.
ПРИМЕЧАНИЕ: Ранее я подозревал, что уровень CO2 достигает максимума в 3000-4000 ppm из-за плохой герметичности старого дома, но тесты в доме с современными окнами, прошедшем проверку на герметичность (отрицательное давление), показали такие же результаты.
Если эффект от небольшой щели в окне так заметен, значит ли это, что достаточно установить настенную приточную вентиляцию в каждой комнате? И можно ли избежать сложностей, связанных с прокладкой воздуховодов по потолку для общедомовой системы вентиляции (канальной вентиляции)? Если рассматривать только обеспечение кислородом, то да, возможно.
Общедомовая вентиляция обычно обеспечивает полную замену воздуха в доме 1-2 раза в час, поэтому она может удалять запахи и формальдегид. Конечно, сейчас проблема формальдегида не так актуальна, и часто это просто маркетинговый ход. Однако установка такой системы сложна, размышления о том, как проложить воздуховоды, могут свести с ума, а представить, как её ремонтировать в случае поломки, вообще страшно.
Настенные же системы имеют низкую производительность по воздухообмену, ограниченную дальность подачи воздуха (подходят только для небольших помещений), и их способность к теплообмену ограничена, что может приводить к подаче холодного или горячего воздуха.
248520b