- Что такое ардуино
- Mq135. блог амперкот.ру
- Версии аппаратной части платформы ардуино
- Влияние содержания со2 на человека
- История создания arduino
- Как сделать датчик газа на ардуино своими руками
- Калибруем датчик
- Модуль датчика mq-135 и его подключение к orange pi pc
- Проект сборки детектора углекислого газа с датчиком mq-135 на платформе ардуино
- Проект сборки детектора углекислого газа с инфракрасным датчиком mh-z19
- Узнаем значение нагрузочного сопротивления
- Устройство и принцип работы датчика углекислого газа для ардуино
Что такое ардуино
Такое название носит аппаратно-программное устройство. Плата небольших размеров с процессором обладает собственной памятью. На ней расположено довольно много клеммных-контактов, к которым можно подсоединять различные устройства: контроллеры, световые приборы, электродвигатели и многое другое.
Универсальность электронной платформы заключается в том, что её можно загружать разными программами, с помощью которых можно управлять самыми разнообразными гаджетами. Ардуино — это своеобразная конструкторская база, с помощью которой можно создавать уникальные управляющие системы любого назначения, в том числе измеритель уровня загазованности окружающего пространства CO2.
Mq135. блог амперкот.ру
Каждый год с
развитием технологий увеличивается комфортабельность пребывания человека на
Земле. Вот только к таким благам можно отнести не только широкое применение
умных устройств, но и природные потребности человека. Например, потребность в
чистом воздухе.
Те, кто бывали в горах, наверняка помнят какой там свежий воздух. Особенно хорошо жить на берегу озера и дышать ароматными травами, цветущими растениями, проще говоря – природой. В загрязненной атмосфере мегаполисов этого всего практически не встретишь, зато можно получить серьезные проблемы со здоровьем.
С помощью Arduino и специального датчика мы можем оценить качество воздуха в помещении или среде, где мы регулярно проводим время, сравнить с допустимыми значениями и принять меры.
Благодаря таким устройствам мы можем взять под собственный контроль ситуацию с загрязнением и обезопасить себя.
Для того чтобы стало понятно, чем вы дышите, нам понадобится специальный датчик газа под названием
Купить его можно в нашем магазине: Датчик MQ-135.
Данный датчик позволяет обнаруживать в воздухе такие газы, как дым, аммиак, бензин, спирт и другие. В схеме он является полупроводниковым прибором, а его чувствительность основана на изменении сопротивления небольшого слоя диоксида олова в так называемом чувствительном слое. Также в датчике есть небольшой нагревательный элемент, который нагревает слой до нужной температуры, с целью реагировать на определенный газ. Из-за наличия нагревателя, датчик способен сильно нагреваться и вообще для него желательно подключать внешнее питание.
Питается он от напряжения в 5 вольт, как и большинство датчиков на Arduino. Подключается по трем контактам. Это контакты заземления и питания, а также контакт управления (это может быть как аналоговый, так и цифровой вывод)
Схему подключения вы сейчас видите ниже:
Измеряет содержание тех или иных газов в воздухе (метан, водород, пропан и др.) в величинах ppm – (миллионная доля) единица концентрации.
Также есть определенный диапазон измерений.
Например, для аммиака это 10ppm-300ppm; для бензина 10ppm-1000ppm; для спирта 10ppm-300ppm.
Полный даташит на датчик есть здесь
Исходя из этих данных, можно определить в норме или выше допустимая концентрация.
Вот табличка предельно допустимой концентрации газов в воздухе:
Давайте разберемся с аммиаком. Во-первых, смотрим на единицы измерения. В таблице это мг/м3. Значение ppm измеряется в мг/л или в мг/дм3
Значит 0,2 мг/м3 это 200 мг/дм3 или 200 ppm.
Значит содержание аммиака в воздухе более 200 ppm опасно для человека, а наш датчик сможет это смело зафиксировать и измерить.
Теперь загрузим следующий программный код в плату:
const int analogSignal = A0; //подключение аналогового сигнального пина const int digitalSignal = 8; //подключение цифрового сигнального пина boolean noGas; //переменная для хранения значения о присутствии газа int gasValue = 0; //переменная для хранения количества газа void setup() { pinMode(digitalSignal, INPUT); //установка режима пина Serial.begin(9600); //инициализация Serial порта } void loop() { noGas = digitalRead(digitalSignal); //считываем значение о присутствии газа gasValue = analogRead(analogSignal); // и о его количестве //вывод сообщения Serial.print("There is "); if (noGas) Serial.print("no gas"); else Serial.print("gas"); Serial.print(", the gas value is "); Serial.println(gasValue); delay(1000); //задержка 1 с }
В примере демонстрируется подключение датчика и вывод полученных данных в монитор Serial – порта
На этом статья подходит к концу. Всем желаю удачной компиляции и до скорых встреч!
Данная статья является собственностью anemometers.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.
Версии аппаратной части платформы ардуино
На сегодняшний день существует несколько видов плат Arduino. Последняя разработка Leonardo использует микроконтроллер AT mega 32u4, а Duemilanove построена на Atmel At mega 328. Для сборки детектора углекислого газа применяют чаще всего более дешёвую модель — Arduino Uno, основанную на том же микроконтроллере, что и предыдущая версия платформы.
Платформа Ардуино Уно:
Влияние содержания со2 на человека
С повышением уровня углекислого газа в помещении люди начинают ощущать духоту, учащается сердцебиение, появляется утомляемость. Дальнейшее ухудшение качества воздуха может и вовсе привести к трагическим последствиям. Концентрацию газа в атмосфере ограниченного объёма измеряют в ppm.
№ | Содержание СО2, ppm | Симптомы |
1 | 400–800 | Отличное самочувствие |
2 | 800–1200 | Сонливость, утомляемость, падает внимание |
3 | 1200 и более | Потеря трудоспособности, угроза здоровью |
Влияние СО2 на человека:
История создания arduino
Автором универсального прибора считается житель итальянского городка Ивреа в провинции Пьемонт. Молодой преподаватель местного университета Массимо Банци с коллегами в 2005 году, пытаясь создать универсальную платформу для обучения студентов программированию, оснастил микроконтроллер ATMEGA дополнительной обвязкой. В результате Банци получил продукт, крайне востребованный на рынке электроники.
Интересен сам факт названия электронной платформы. Группа университетских программистов частенько засиживалась в местном баре под названием Arduino. Так в давние времена звали местного правителя. Вот авторы изобретения и решили так назвать своё детище.
Как сделать датчик газа на ардуино своими руками
Для того чтобы собрать своими руками датчик углекислого газа, потребуется знание основ электротехники, опыт обращения с инструментами и оборудованный рабочий стол. Кроме того, нужен компьютер с выходом в интернет и опыт обращения с операционной системой ПК.
Существует несколько проектов сборки детектора углекислого газа на Ардуино. Стоит рассмотреть два наиболее популярных из них. В принципе оба отличаются тем, что в первом случае используется датчик углекислого газа MQ-135, а в другом варианте применяется китайский инфракрасный прибор MH-Z19B.
Калибруем датчик
Для калибровки датчика нам придётся написать вот такой скетч:
Теперь, по логике вещей, мы должны сейчас найти чистый воздух, где содержание кислорода составляет ровно 21%, температура воздуха 20 градусов Цельсия и относительная влажность 65%. Оставить на таком воздухе наш датчик минут на 20-30, потом все полученные значение осреднить и получить наше итоговое значение R0.
Однако, учитывая то, что мне такого чистого помещения вряд ли удастся найти, я просто проветрил комнату в которой нахожусь, накрыл всю конструкцию небольшой коробкой и оставил так на 20 минут. В итоге я получил значение RO = 70.83. Это значение я также внёс в MQ135.h.
Модуль датчика mq-135 и его подключение к orange pi pc
Этот модуль (датчик газа) уже обозревался
тут
, я немного дополню, приведу несколько домашних тестов. Расскажу о нестандартном подключении датчика к Orange Pi PC (OPi).
Модуль построен на основе
датчика
MQ-135. Касалось бы чего там выдумывать в данный модуль встроен компаратор — выставляй нужный уровень срабатывания и жди когда он сработает. Мне же хотелось наблюдать непрерывный процесс — аналоговый сигнал с датчика. Здесь нас ждет разочарование у OPi на разъеме GPIO нет АЦП. Конечно, можно приобрести внешний модуль АЦП, но его у меня нет. Кроме того, данный модуль я планирую использовать с ESP8266 и поместить всё это в кочегарку на даче. АЦП у ESP8266 есть, но с ESP8266 я пока на стадии размышлений, а OPi я уже неплохо освоил.
Поэтому решил использовать OPi и протестировать датчик, понять чего ожидать от него. Первым делом надо построить АЦП. Сразу скажу, ничего высокоточного мне не надо и даже просто точного. Достаточно прикидочных значений, т. е. на что реагирует, как сильно реагирует и т.п. Хорошо, что в деле АЦП ничего придумывать не надо все придумано до нас. Воспользуемся одним из способов, например, «АЦП последовательного приближения» (
см. тут
). Для этого надо регистр последовательного приближения, ЦАП и компаратор. Компаратор у нас уже есть, надо только слегка изменить схему. ЦАП — реализуем на основе ШИМ и RC цепочки. Регистр последовательного приближения — легко реализуется программно.
Полную принципиальную схему модуля можно найти в интернете или по ссылке на другой обзор. Изменяем схему, а именно удаляем переменный резистор (R5), на его место впаиваем RC (R1,C1) цепочку. Кроме того нагрузочное сопротивление 1 кОм (R2), меняем на 6.8 кОм (R6), для увеличения сигнала с датчика. Для смещения уровня выходного напряжения компаратора к 3.3 В установлен резистор R4. ШИМ (на 10 бит) реализую программно, аналогично тому как я делал
раньше
.
Детали использую обычные, поэтому с эстетической точки зрения внешний вид модуля пострадал.
Постоянная времени RC цепочки довольно большая, это конечно увеличивает время преобразования, что мне не критично, но зато уменьшает, хоть и неокончательно, влияние всяких программных задержек. Должен признаться, что линейного преобразования у меня не получилось, как известно напряжение на конденсаторе при заряде через резистор от фиксированного источника напряжения изменяется по экспоненте. Значит и результат пропорционален ей же. Код программы можно посмотреть
тут
(на C/C ). Сигнал записывался в файл, потом строился график.
Теперь перейдем к тестам. На что же реагирует датчик? Если верить описанию, то много на что. Я перевел с китайского (с помощью Google) характеристику.
Видим, что сильней всего реагирует на ацетон, толуол, алкоголь.
На всякий случай данные (из интернета) с предельными концентрациями, того на что реагирует датчик.
Это каких концентраций надо боятся.
Проверим работу, но я первым делом естественно подышал, реагирует, но на что?
Нет, алкоголь я не употреблял тем более остальное. Мое предположение это в основном влажность. Да, в описании про это сказано — реагирует на влажность и температуру. Проверим, над кружкой с чаем.
Эффект есть. Расстояние до кружки примерно 10-15 см (на глаз).
Расстояние такое же. Реакция довольно сильная.
Расстояние такое же.
Пламя не зажигал, просто открыл клапан. Сигнал ушел в «зашкал». Значит этим датчиком вполне можно контролировать утечку газа. Если не ошибаюсь, недорогие датчики утечки газа тоже на основе SnO2.
Суммируем, да — датчик дешевый и слишком универсальный, реагирует много на что, но с другой стороны все на что он реагирует явно не полезно. Датчиком можно пользоваться как индикатором общего состояния воздуха в помещении, т. к. ухудшение ведет к увеличению сигнала однозначно. Проветривание же наоборот — уменьшает сигнал.
Однако, для получения с датчика данных в ppm (parts per million — частей на миллион ) его надо калибровать. Предложенный метод калибровки по
CO2
, на мой взгляд не убедительный. Для калибровки надо хотя бы две точки. Можно воспользоваться методом предложенным в описании к
датчику
по аммиаку (фу…) или по алкоголю (да!). Да, еще не забыть про компенсацию температуры и влажности. Другой вопрос, надо ли всё это делать? Что он в результате будет показывать, датчик то не селективный. Есть и другие датчики из серии MQ, как бы специализированные под разные газы, но все они на SnO2, т. е. характеристики у них будут примерно одинаковы. Что же до способа подключения датчика к OPi, то он, на мой взгляд, вполне имеет право на жизнь, используем всего два контакта и получаем АЦП. Для внешнего модуля АЦП с шиной I2C контактов надо больше, правда там может быть несколько каналов. Но если надо один и не быстрый, то почему нет? Может кому то будет интересно познакомится с принципами работы АЦП.
Проект сборки детектора углекислого газа с датчиком mq-135 на платформе ардуино
Перед сборкой следует подготовить следующее:
- платформа Ардуино Уно;
- датчик MQ-135;
- зуммер (любое звуковое сигнальное устройство);
- LCD дисплей 16×2;
- батарейка 9 вольт;
- два трёхжильных шлейфа;
- два резистора 1 кОм;
- плата расширения Troyka Shield.
Плата Тройка Шилд:
Центром построения электронной системы контроля за качеством воздуха является плата расширения «Тройка». Панель имеет сеть контактных отверстий, через которые можно подключать различные приборы. По периметру панели расположены группы тройных контактов «S-V-G», к которым трёхжильными шлейфами подключают датчик углекислого газа и платформу Ардуино, где:
- S — аналоговый или цифровой сигнал;
- V — питание с рабочим напряжением;
- G — масса (земля).
Плата Тройка Шилд и датчик с обозначением контактов:
Датчик газа подключают к управляющей платформе проводами двух шлейфов. Как это сделать, видно на нижнем фото.
Схема подсоединения MQ-135 к панели Troyka Shield:
Проект сборки детектора углекислого газа с инфракрасным датчиком mh-z19
Прибором MQ-135 может стать датчик MH-Z19. Модуль оснащён двумя выходами, совместимыми с 5-вольтовой логикой. Измеритель может работать в одном из диапазонов газовой насыщенности СО2 от 0 до 2000 ppm и от 0 до 5000 ppm.
Датчик MH-Z19:
Датчик соединяется через панель Troyka Shield c любой платформой Ардуино. В отличие от MQ-135, китайский инфракрасный детектор страдает некоторой инерционностью показаний данных. При изменении уровня содержания в атмосфере углекислого газа, прибору требуется около минуты для коррекции показаний. Положительным является то, что срок службы MH-Z19 намного больше вышеуказанного аналога, но и стоит он дороже.
Узнаем значение нагрузочного сопротивления
Учитывая, что датчики MQ135 и аналогичные им могут устанавливаться на различные платы с разными нагрузочными сопротивлениями, RL нам придётся узнавать опытным путем. На плате моего датчика стоит резистор с маркировкой «102», что означает 1 кОм.
Устройство и принцип работы датчика углекислого газа для ардуино
CO2 — диоксид углерода тяжелее воздуха, поэтому он имеет способность скапливаться в нижних слоях атмосферы помещений и представляет угрозу для органов дыхания человека. Поэтому нужно вовремя определить опасный уровень загазованности в пространстве, где находятся люди. Самый распространённый вид детекторов СО2 — это датчик серии MQ.
Модель MQ-135 — электрохимический прибор. Он построен на принципе изменения сопротивления чувствительного химического элемента устройства при соприкосновении с углекислым газом. Элемент представляет собой керамическую трубку, на покрытие которой из оксида алюминия (Al2O3) нанесена тонкая плёнка диоксида олова (SnO2).
Модуль датчика газа:
Для нормального функционирования датчик должен находиться постоянно в нагретом состоянии. Нагреватель внутри трубки доводит её поверхность до нужного уровня температуры, при которой чувствительный слой при соприкосновении с молекулами углекислого газа меняет своё сопротивление.
Под сеткой кроме трубки находятся 6 контактных головок. Две из них питают нагревательную спиральку внутри трубки током. Остальные две пары соединены проволочками и служат для дополнительного анализа состояния сопротивления элемента.
Что находится под защитной сеткой MQ-135:
Изменение характеристик тока, протекающего через устройство, фиксируются платой Ардуино. Процессор, обрабатывая информацию о превышении безопасного уровня СО2, отдаёт команды на включение звуковой сигнализации (зуммера), и на реле включения вытяжной вентиляции. Таким образом датчик выполняет функцию контроля за безопасным уровнем загазованности углекислым газом помещения.
Следует учитывать то, что датчик рассчитан на эксплуатацию при влажности 65% и температуре окружающего воздуха 20 °С. При влажности 95% прибор перестаёт адекватно реагировать на изменение содержания СО2. Кроме этого большую роль играет срок службы детектора.