Этот модуль (датчик газа) уже обозревался
тут, я немного дополню, приведу несколько домашних тестов. Расскажу о нестандартном подключении датчика к 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 контактов надо больше, правда там может быть несколько каналов. Но если надо один и не быстрый, то почему нет? Может кому то будет интересно познакомится с принципами работы АЦП.
Фото подключения к Orange Pi PC еще сфотографируйте крупным планом с распиновкой.
Можно прикрутить счетчик моточасов, что бы заменить датчик через пару лет.
Про концентрацию и ресурс вот что могу заметить.
Специализированный датчик СО, с громадной автономностью (без нагрева, АА батареек хватало на год), попал на поверку метрологам. Ничегошеньки эти профессионалы о его фактических характеристиках не смогли заявить, но датчик не выдержал знакомства с «поверочными газовыми смесями».
На фото эскиз преобразователя — про него ничего не известно.
До поверки датчик исправно пищал на сигарету в 5 л кастрюле, после поверки ни разу больше 1 промилле не показал.
Про показания в кочегарке.
1. До поверки этот датчик показывал вблизи работающего газового котла от половины допустимого предела 30 промилле (удачный пуск котла от фитиля) до пятикратного превышения этого предела (пламя после пуска разгоралось странным способом).
Т.е. диапазон в кочегарке у котла был 15-150 промилле.
2. Такие же датчики у булерьяна показывали 15 (нормальное горение) до 300 промилле (неправильное горение при подбрасывании дров).
Как называется «мой» преобразователь, и что он измеряет, не знаю — но давно хочу узнать.
Кто даст ссылку?
Но всё равно, год — неправдоподобно долго! батарейки от саморазряда должны были уже сдохнуть)
Датчик — думаю, из той же серии, так как никаких° других физических принципов измерения нет.
Включен он всегда — на сигарету реагирует через 15 секунд.
А вот то, что он может измерять не содержание СО, а какой-то побочный параметр, более вероятно — достаточно всего лишь оформить датчик ожидаемым образом, да и гнать его на мировой рынок.
датчик именно как вы нарисовали — два ленточных вывода, приваренных?
ни одна надпись на основной плате не гуглится? чипы какие?
про поставленную выше «°»: статья в википедии 'Пожарный газовый извещатель'
чуть более чем бесполезна; английская тоже оперирует $$$-ценами из прошлого, для «подходящих» технологий… Загадка!
Предполагаю, что и с таким же преобразователем, имеющим два приваренных ленточных вывода.
Как выводы расположены, нарисовано на эскизе.
Надписи на плате не гуглил (даже мысли не было такой) — недотумкал этого сделать.
Схема осталась работоспособной, только датчик перестал реагировать на дым.
Почему бы в заголовке не прописать сразу или хотя бы в первом же абзаце?
вот даже ссылочку нарыл: www.drive2.ru/l/8341756/
От така кхм, фигня малята.
(хотя, «пиар плохим не бывает»:)
А с ардуиной или внешним АЦП — то банальщина
В итоге: да, можно быть уверенным в том, что если система online, то она работоспособна. В противном случае мы немедленно получаем оповещение от внешних сервисов что система недоступна.
Звучит громоздко, но это вполне по силам сделать человеку который желает, изучает и понемногу осуществляет задуманное.
Делать на ардуино? Оно может и подороже будет, а тут полноценная операционка, можно интегрировать в IT среду.
На esp думаю датчики по дому раскидать — как раз нужна автономность и беспроводная связь.
Для параноиков можно настроить периодический/контрольный опрос датчиков и в случает отсутствия отклика слать смс кому скажешь.
Если же использовать на датчиках «глубокий сон» на Witty cloud, то можно сильно автономность от батареек поднять.
Итог — датчики не поддаются калибровке и не предназначены для сколько-нибудь точного определения концентрации.
Было бы очень любопытно ознакомиться…
Выше Nikatorov описывал ситуацию, когда после встречи с «тестовой газовой средой» показиметр (на неизвестном физическом принципе основанный:) перестал реагировать на внешние раздражители…
Суть — человек попытался выявить стабильность показаний в разных средах и условиях, контролируя по лабораторным приборам. Показания менялись в разных условиях и разное время. Вывод — только для определения присутствия, меняя чувствительность.