22.01.2018, 23:40 | #1 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Датчик CO2 MH-Z19 MH-Z14A
В наше время людям живущим в мегаполисах, такой датчик просто необходим. Так как концентрация CO2, очень сильно влияет на самочувствие и е здоровье человека. Считаю что "Умный дом" без таких датчиков неполноценный. Датчик CO2 MH-Z14A , как датчик температуры и влажности должен быть в каждом доме.
Незначительное увеличение СО2 во вдыхаемом воздухе у здоровых людей приводит к учащению дыхания и к снижению давления в лёгких. Этот факт свидетельствует о том, что СО2 включает разрушительные процессы в нервных тканях, в работе иммунной системы и во всём организме в целом. 380-400 Атмосферный воздух — Идеальный для здоровья и хорошего самочувствия. 400-600 — Нормальное количество воздуха. Рекомендовано для детских комнат, спален, офисных помещений, школ и детских садов. 600-1000 — Появляются жалобы на качество воздуха. У людей, страдающих астмой, могут учащаться приступы. Выше 1000 — Общий дискомфорт, слабость, головная боль, концентрация внимания падает на треть, растёт число ошибок в работе. Может привести к негативным изменениям в крови, также могут появиться проблемы с дыхательной и кровеносной системой. Выше 2000 — Количество ошибок в работе сильно возрастает, 70% сотрудников не могут сосредоточиться на работе. Основные измерения уровня СО2 происходят, конечно же, в центральной нервной системе, и носят они при гиперкапнии фазный характер: сначала повышение, а затем снижение возбудимости нервных образований. Многие скажут, но ведь жили же раньше без этих датчиков. Да но и продолжительность жизни раньше была короче, при том, что питание было экологически чистое и экология была не нарушена. Я больше не о себе забочусь , а о детях и о их будущем. Так как живу в городе у которого экология не самая лучшая. И так хватит демагогию разводить, приступим к делу: Что хочу в итоге сделать? Засунуть в коробочку из под ночника 1- Блок питания с 220В на 5В 2- Wi-Fi Wemos D1 mini 3- Датчик CO2 MH-Z14A или MH-Z19 4- RGB светодиод. 5- Коробочка из под ночника с вилкой на 220В На Wemos D1 или ESP8266 будет простой веб сервер. На странице которого можно будет посмотреть более точные CO2 показания датчика Визуальное отражение показаний будет реализовано на RGB светодиоде синий - 400ppm бирюзовый - 500ppm зеленый - 600ppm желтый - 700ppm фиолетовый - 800ppm красный - 900ppm плавно и медленно моргающий красный - 1000ppm быстро моргающий красный - больше 1000ppm Почему светодиод? Потому что с дисплеем много гемороя с монтажом и корпусом. Так же дисплей в розетке будет не информативен, из-за малого угла обзора и мелкого шрифта, к нему придется близко подходить и т.д. А со светодиодом все просто и понятно, видно из далека, присматриваться не нужно Еще я думаю что потребуется датчик освещенности. Что бы ночью подсветка не раздражала Сегодня провел тестирование датчика CO2 Датчик MH-Z14A подключил к Wi-Fi модулю Wemos на чипе ESP8266 четырьмя проводами ESP<--->MH-Z14 +5В <--> V+ GND <--> V- D1 <----> T D2 <----> R Схема подключения MH-Z19 к Wemos ESP8266 Проверочный скетч, будет работать на любой Arduino и на ESP8266 PHP код:
Видео тестов датчика MH-Z14A Датчик на фабрике откалиброван. Проверить его можно, достаточно вынести измеритель на улицу на 10 минут и и провести замеры. Делать это лучше рано утром с 5:00 до 6:00, пока автомобили не успели выехать на дороги. А если есть возможность, то провести замеры за городом в лесу или в парке. |
23.01.2018, 00:09 | #2 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
И так. Первый день тестов
Проверка датчика CO2 перед сном - 950ppm На ночь приоткрыл маленькую щель на окне. С утра показания датчик MH-Z14A -520ppm Я так понимаю что вечером еще есть влияние загазованности атмосферы автомобилями, а к утру газы рассеиваются ветром. |
12.02.2018, 16:34 | #3 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Подробности по обмену с датчиком MH-Z19
Запрос данных у датчика: [0]-0xFF — начало [1]-0×01 — первый сенсор [2]-0×86 — команда [3]..[7] 0×00, 0×00, 0×00, 0×00, 0×00 — место для данных [8]- 0×79 — контрольная сумма. В ответ придет примерно такое: [0]- 0xFF — начало [1]- 0×86 — команда [2]..[3]- 0×01, 0xC1 — старший и младший байт CO2 [4]- 0×3C — температура [5]..[7] 0×04, 0×3C, 0xC1 — неизвестно [8]- 0×7B — контрольная сумма Расчет контрольной суммы: Берутся 9 байт ответа, кроме первого и последнего. Складываются, инвертируются, результат увеличивается на единицу: 0×86 + 0×01… + 0xC1 = 0×85, 0×85 xor 0xFF = 0×7A, 0×7A + 1 = 0×7B. Подсчет crc в коде: PHP код:
|
12.02.2018, 18:23 | #4 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
сделал шкалу для цветового монитора:
светло зеленый – 400 ppm и менее.- Высокое качество воздуха зеленый – 400-600 ppm – хорошее качество воздуха желтый – 600-800 ppm – среднее качество воздуха оранжевый – 800-1000 ppm – допустимое качество воздуха красный – 1000-1500 ppm- плохое качество воздуха красный моргающий - 1500 и выше - опасное для здоровья качество воздуха Не знаю почему, но мне синий как то не нравится в шкале Может я и ошибаюсь? |
13.02.2018, 17:21 | #5 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Что то ее пойму , баг это или Китайская фитча
Вод скриншот официального Datasheet Проблема в том что китайцы предлагают складывать 7 переменных типа: byte, а результат размещать в переменной типа: Char Переполнение же будет? Я бы не заострил внимания на этой проблеме, но если подуть на датчик и его показания взлетают до небес, начинает вылетать ошибка CRC Error . И контрольные суммы не равны. Кто что скажет по этому поводу? |
21.01.2019, 21:20 | #6 |
Junior Member
Регистрация: 21.01.2019
Сообщений: 2
Вес репутации: 0 |
Подскажите пожалуйста. Сделал такую же историю. Wemos D1 mini + MH-Z14A.
Отправляю данные через POST запрос на внешний сервер. При подключении к ПК все отлично. Как только подключаю от внешней USB зарядки, или от ПК без загруженной ОС - Wemos работает, но данные с датчика не получает. В чем может быть проблема? Вот код скетча PHP код:
Последний раз редактировалось darkdrive; 21.01.2019 в 21:48. |
22.01.2019, 01:07 | #7 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Попробуйте уберите из кода, все что связано с Serial.begin(115200);
|
22.01.2019, 09:06 | #8 |
Junior Member
Регистрация: 21.01.2019
Сообщений: 2
Вес репутации: 0 |
Убирал. Не помогало. В итоге решил проблему очень странным способом.
Почему-то, при подключении питания от USB зарядки - датчик выдает чушь до той поры пока не перезагрузишь Wemos(кнопкой reset или программно. При этом пробовал в сделать Delay перед SerialCO2.begin - тоже не помогало). Т.е. порядок такой - Включаем USB шнурок к Wemos(питание на датчик идет от него). Ждем 5-10 секунд - Жмем RESET на Wemos - Все работает. Решил на программном уровне следующим образом: Поставил счетчик CRC ошибок подряд. При включении - интервал опроса 5 секунд. Если получает 2 ошибки подряд - Делается RESET через: PHP код:
Вот такой код получится в итоге: Получает данные с датчика и отправляет значение через POST на внешний сервер по HTTP. PHP код:
Последний раз редактировалось darkdrive; 22.01.2019 в 09:15. |
23.01.2019, 00:57 | #9 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Попробуйте лучше БП помощнее и отфильтруйте кондерами пульсации
|
Здесь присутствуют: 4 (пользователей: 0 , гостей: 4) | |
|
|