Страница 1 из 3

Датчик СО2

Добавлено: 16.02.2017{, 05:21}
JORA555
Нужно подключить три датчика СО2 к Arduino. Тип датчика MH-Z14, либо MH-Z19 (цена адекватная и отзывы неплохие.)
Делаю вентиляционную установку для трехкомнатной квартиры. Делаю для себя, поэтому есть желание сделать как нужно. Сам по профессии проектировщик систем ОВК. С подключением датчиков температуры и влажности разобрался, а с СО2-никак. Блоков для подключения нет в программе. Только начинаю изучать Arduino. До этого баловался с овеновским ПР, но там входов/выходов маловато для данной схемы.

Датчик СО2

Добавлено: 16.02.2017{, 08:26}
AVGN
Вы про этот датчик?
https://www.arduino.md/arduino-co2-gas-sensor-mh-z14

Датчик СО2

Добавлено: 16.02.2017{, 09:27}
JORA555
В том и вопрос, прочитал данную статью и еще несколько. Выглядит все красиво, а программа???. В FLProg логику работы установки составить могу, а библиотеки на датчик нет.

Датчик СО2

Добавлено: 16.02.2017{, 11:48}
AVGN
Тоже присматривался к датчику MH-Z19.
Хочу сделать автоматическую вентиляцию в гараж.
Вот здесь есть скетч для Ардуино http://www.2150692.ru/faq/87-co2-mhz19-arduino
Наверное можно на базе этого сделать пользовательский блок для FLProg.

Датчик СО2

Добавлено: 16.02.2017{, 12:30}
JORA555
Так кто его сделает. Возможно кому из профи будет интересно сделать блок.Я лично Arduino начал рассматривать для внедрения только когда увидел FLProg. Тупо копировать коды и запускать устройства, не понимая как они работают не вариант. А теперь с FBD делай что хочешь, только блоки бы народ сделал.
AVGN писал(а):Хочу сделать автоматическую вентиляцию в гараж.
Как вентиляционщик не советовал бы этот датчик в гараж, выхлопные газы по моему быстро убьют сенсор. Данный датчик лучше использовать в относительно чистом воздухе, например квартире, офисе, магазине.
Лучше использовать что-то типа этого: http://egeny.webasyst.net/shop....pleniem
Измерение нужно проводить по СО (угарный газ), а не СО2 (углекислый газ).
Я смонтировал себе вентиляцию. Система работает в ручном режиме, только ТРМ стоит на нагреватель и регулятор оборотов двигателем. Много набегает за электричество зимой для нагрева воздуха (бывает забудешь выключить-неделю молотит). По датчику система включалась бы по необходимости, а не по ощущению пользователя. Ждемс помощи...

Датчик СО2

Добавлено: 16.02.2017{, 13:51}
AVGN
MH-Z19 инфракрасный там нечего убивать.
Закоптится -протрем
Здесь обзор и документацию выложили
https://geektimes.ru/post/272090

Датчик СО2

Добавлено: 16.02.2017{, 14:09}
JORA555
AVGN писал(а):Закоптится -протрем
Вопрос не в том что закоптиться, а в том, что мерить нужно не углекислый газ, а угарный газ, как я понял от выхлопа автомобиля (гараж же все-таки).
Но протереть, тоже вариант Изображение
AVGN писал(а):Здесь обзор и документацию выложилиhttps://geektimes.ru/post/272090
Все перечитал вдоль и поперек, лучше не найти за такую цену. Отличие от MZ-H14 только отсутствием аналогового выхода (0-2,4В),  но он похорошему и не нужен.

Датчик СО2

Добавлено: 16.02.2017{, 14:36}
Anydy
Так а в чем проблема сделать блок, Автор сделал видео и статью.
Тем более что код всего несколько строк.

СпойлерПоказать
#include

SoftwareSerial mySerial(A0, A1); // RX, TX сенсора

byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
// волшебная комманда - смотри мануал
char response[9]; // здесь будет ответ

void setup() {
Serial.begin(9600); //это наш монитор
mySerial.begin(9600); //а это датчик MH-Z19(14)
}

void loop()
{
mySerial.write(cmd,9);//запрос PPM CO2
mySerial.readBytes(response, 9);
int responseHigh = (int) response[2];
int responseLow = (int) response[3];
int ppm = (256*responseHigh)+responseLow;
// ну и по мануалу из ответа считаем PPM

Serial.println(ppm);
delay(10000);
}
Я бы сделал, но самого датчика нет, как отлаживать)))

Датчик СО2

Добавлено: 16.02.2017{, 14:59}
AVGN
Лейтенант, Вы наши погоны видели здесь.
Это и есть проблема - не доползли еще до создания пользовательского блока
Если можете помогите создать блок.
JORA555 протестирует.
У меня тоже блока нет.
Но блок считаю очень полезным в домашнем творчестве.

Датчик СО2

Добавлено: 16.02.2017{, 15:16}
JORA555
Anydy писал(а):Я бы сделал, но самого датчика нет, как отлаживать)))
Могу приобрести, оно же мне больше всех нужно и протестить готовый блок, но есть вопросы, так как чайник в данной теме:
1) Какой датчик брать MH-Z14 или MH-Z19. У MH-Z14 есть PWM, UART, аналог. У MH-Z19 аналога нет, но точность вроде получше (по отзывам);
2) Какую Arduino брать, чтобы маленькие габариты были, выходов хватило но при условии:
      -Будет собрано три станции с наличием в каждой: датчика СО2 из пункта 1, DS18B20 и DTH22. Кнопка ВКЛ/ВЫКЛ системы для данного помещения (открытие заслони). Показания должны показываться на дисплее. Со всех станций должны либо: уходить показания всех датчиков на общий блок (по основной плате тоже еще не определился)+уставка по температуре, влажноости, СО2, либо просто сигнал о выходе параметра за пределы уставок. (Уставки выставляются на станции) По возможности возврат данных о режиме работы системы (Работа/Аваирия). Пр отключении основного блока получаем просто метеостанции, при включении основного блока имеем управление системой вентиляции с нагревателем, встроенным кондиционером.
3) Какой дисплей: двухстрочный конечно неплохо, но делать так делать-хотя бы четыре строки, чтобы все параметры видны били разом.
В общем централизовяаннан система вентиляции с режимом ветиляции, отопления, охлаждения, очистки воздуха.
Желаний много, а опыта "0". Пробовал на ПР-200 сварганить: алгоритм работы написал, а входов катастрофически не хватает и ценик кусается, а в общем платформа не плохая.

Все хочу делать по порядку, времени навалом: вся жизнь впереди, часть вентиляционной системы уже в работе (кондиционер к лету внедрю) только в полуавтоматическом режиме.

Итак, на чем делать станции, предложите: куплю, обкатаю и блок для СО2, и все в сборе.

Датчик СО2

Добавлено: 16.02.2017{, 15:47}
Vitez
Судя по описанию, там никакой блок не нужен.
Читаете Serial, конвертируете сткоку в число, оцениваете загазованность. Как то так.
Изображение

Датчик СО2

Добавлено: 16.02.2017{, 16:14}
AVGN
Вот по уроку сделал.
Но не понял из урока что во внутрь вкладывать из этого кода
#include

SoftwareSerial mySerial(A0, A1); // RX, TX сенсора

byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
// волшебная комманда - смотри мануал
char response[9]; // здесь будет ответ

void setup() {
Serial.begin(9600); //это наш монитор
mySerial.begin(9600); //а это датчик MH-Z19(14)
}

void loop()
{
mySerial.write(cmd,9);//запрос PPM CO2
mySerial.readBytes(response, 9);
int responseHigh = (int) response[2];
int responseLow = (int) response[3];
int ppm = (256*responseHigh)+responseLow;
// ну и по мануалу из ответа считаем PPM

Serial.println(ppm);
delay(10000);
}

Датчик СО2

Добавлено: 16.02.2017{, 16:32}
slavas
блок на пробу A0 A1 -RX TX данные в порт кидает. Проверьте если что подправлю.

AVGN, #include    а дальше? это код ознакомительный он не работает

Добавлено (16.02.2017, 16:32)
---------------------------------------------
AVGN, я глянул Ваш код, вы создали входы и выход не не подключили их, а в конце ещё и повесили процессор на десять секунд.

Датчик СО2

Добавлено: 16.02.2017{, 16:37}
Alex16
AVGN писал(а):Вот по уроку сделал.!!!!!!
Vitez писал(а):Судя по описанию, там никакой блок не нужен. !!!!!!

Датчик СО2

Добавлено: 16.02.2017{, 17:12}
AVGN
slavas писал(а):AVGN, я глянул Ваш код, вы создали входы и выход не не подключили их, а в конце ещё и повесили процессор на десять секунд.
slavas, да я в этих кодах вообще ничего не понимаю.
Попробовал сделать по уроку создания пользовательского блока, ну и вот видите, неерабочий получился

Датчик СО2

Добавлено: 16.02.2017{, 19:20}
Anydy
Накидал два блока для MH-Z19 по примерам с сайта выше.
Один по UART работает второй по ШИМ.
Можно использовать несколько блоков для разных датчиков.
С настройками разберетесь надеюсь.
Может где то что то и не верно сделал, пробуйте, там еще вариант есть работы через прерывания.

Датчик СО2

Добавлено: 16.02.2017{, 20:41}
JORA555
JORA555 писал(а):Могу приобрести, оно же мне больше всех нужно и протестить готовый блок, но есть вопросы, так как чайник в данной теме:1) Какой датчик брать MH-Z14 или MH-Z19. У MH-Z14 есть PWM, UART, аналог. У MH-Z19 аналога нет, но точность вроде получше (по отзывам);
2) Какую Arduino брать, чтобы маленькие габариты были, выходов хватило но при условии:
-Будет собрано три станции с наличием в каждой: датчика СО2 из пункта 1, DS18B20 и DTH22. Кнопка ВКЛ/ВЫКЛ системы для данного помещения (открытие заслони). Показания должны показываться на дисплее. Со всех станций должны либо: уходить показания всех датчиков на общий блок (по основной плате тоже еще не определился)+уставка по температуре, влажности, СО2, либо просто сигнал о выходе параметра за пределы уставок. (Уставки выставляются на станции) По возможности возврат данных о режиме работы системы (Работа/Авария). Пр отключении основного блока получаем просто метеостанции, при включении основного блока имеем управление системой вентиляции с нагревателем, встроенным кондиционером.
3) Какой дисплей: двухстрочный конечно неплохо, но делать так делать-хотя бы четыре строки, чтобы все параметры видны били разом.
В общем централизованная система вентиляции с режимом вентиляции, отопления, охлаждения, очистки воздуха.
Желаний много, а опыта "0". Пробовал на ПР-200 сварганить: алгоритм работы написал, а входов катастрофически не хватает и ценник кусается, а в общем платформа не плохая.

Все хочу делать по порядку, времени навалом: вся жизнь впереди, часть вентиляционной системы уже в работе (кондиционер к лету внедрю) только в полуавтоматическом режиме.

Итак, на чем делать станции, предложите: куплю, обкатаю и блок для СО2, и все в сборе.
Anydy, что можете посоветовать по данным пунктам. Какая плата, дисплей, а то заказать хочется, а плодить ненужные железки в столе нет желания. По моему Pro mini в самый раз (габариты очень важны), только какое питание выбрать 3.3 (С учетом большого желания дальнейшего подключения к DUE) или 5В (для Mega)  и вообще хватить памяти, процессора для моей задачи? Буду благодарен за помощь. Все необходимые датчики по ТХ работают при любом питании.
Возможно часть вопросов есть в GOOGLE, но везде много противоречивой информации.

Датчик СО2

Добавлено: 16.02.2017{, 22:05}
Anydy
JORA555 писал(а):что можете посоветовать по данным пунктам
Тут столько ньюансов....Платы на конечные устройства я бы взял Nano, удобнее что с УСБ сразу. Лучше 5в. Какая связь с центром? по проводам тогда RS485, можно и WiFi но не очень надежно, смотря какое расстояние. Если не большое то можно ESP8266-12, и ардуино не нужно. Центральную плату я бы поставил или Мегу или малинку. Дисплей так понимаю на центральной плате будет? Тогда можно TFT 2.4" за 200руб. Если на каждой станции то Nokia5110.

Датчик СО2

Добавлено: 17.02.2017{, 04:28}
JORA555
Anydy писал(а):Тут столько ньюансов....Платы на конечные устройства я бы взял Nano, удобнее что с УСБ сразу. Лучше 5в. Какая связь с центром? по проводам тогда RS485, можно и WiFi но не очень надежно, смотря какое расстояние. Если не большое то можно ESP8266-12, и ардуино не нужно. Центральную плату я бы поставил или Мегу или малинку. Дисплей так понимаю на центральной плате будет? Тогда можно TFT 2.4" за 200руб. Если на каждой станции то Nokia5110.
Итого, как я понял: Arduino nano, DTH22 (связь PWM), дисплей 5110 (связь I2C), датчик MH-Z19 (связь PWM). Про связь с основным блоком: Расстояние-максимум 15 метров. Думал организовать через UART. Их на Mege как раз 4 шт. (3шт.- использовать на станции, а на один еще три датчика DS18B20 (1-Wire) повесить (для контроля температур в установке). Возможно по такой схеме подключить или есть "подводные камни".
А как организовать изменение уставки параметров с отображением на станциях и основном блоке : Изменять кнопками (Больше/меньше) по Uart отправлять (вместе с показаниями датчиков) на основной блок, а в ответ на дисплее будет меняться значение. Я правильно понимаю? Или есть более простой вариант.
По малинке: лежит одна ревизии В. Использую как медиацентр. Хотел сделать все на ней, но опять уперся в написание программы.

Добавлено (17.02.2017, 04:28)
---------------------------------------------
JORA555 писал(а):дисплей 5110 (связь I2C)
Извиняюсь, через 5 цифровых входов

Датчик СО2

Добавлено: 17.02.2017{, 09:03}
AVGN
Цитата JORA555 () 200?'200px':''+(this.scrollHeight+5)+'px');">Итого, как я понял: Arduino nano, DTH22 (связь PWM), дисплей 5110 (связь I2C), датчик MH-Z19 (связь PWM). Про связь с основным блоком: Расстояние-максимум 15 метров. Думал организовать через UART. Их на Mege как раз 4 шт. (3шт.- использовать на станции, а на один еще три датчика DS18B20 (1-Wire) повесить (для контроля температур в установке). Возможно по такой схеме подключить или есть "подводные камни".
MH-Z19 нельзя соединить с Arduino nano на прямую. Выходы/входы поддерживают уровень 3,3V

Придется использовать TTL logic level converter