• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос esp и mq135

Listian

New member
Привет!

Тут выяснил, что esp хитро работает с adc в отличии от arduino.

Т.е. по-умолчанию adc работает с 1.1в o_O

В итоге докапался до ADC_ATTEN_11db, который повышает до 3,6в.

Но осталось несколько вопросов:

Есть датчик MQ-135 с 5v логикой. Какие можно датчики заменил на 3,3 вольтовые.

Как лучше подключить его через преобразователь уровней и ADC_ATTEN_11db или ставить до 1.1 в?

Как, вообщем, правильно все сделать?
 

nikolz

Well-known member
Привет!
Тут выяснил, что esp хитро работает с adc в отличии от arduino.
Т.е. по-умолчанию adc работает с 1.1в o_O
В итоге докапался до ADC_ATTEN_11db, который повышает до 3,6в.
Но осталось несколько вопросов:
Есть датчик MQ-135 с 5v логикой. Какие можно датчики заменил на 3,3 вольтовые.
Как лучше подключить его через преобразователь уровней и ADC_ATTEN_11db или ставить до 1.1 в?
Как, вообщем, правильно все сделать?
5 вольт надо для нагрева датчика
------------------------
на выходе надо включить нагрузку от 10 до 47 ком
если напряжение на выходе датчика больше опорного у АЦП то нагрузку надо сделать в виде резистивного делителя.
надо учитывать что для нагрева датчика надо 150 ма т е датчик хорошо кушает
если питание выключать то надо ждать при включении разогрев датчика
--------------------------
если цена не главное то для определения CO2 лучше использовать оптический(инфракрасный) датчик газа
типа MH-Z14A,MH-Z19
--------------------------
 

Listian

New member
Про те датчики в курсе. дорого + только co2, а мне нужно датчики чистоты воздуха. Еще mq-2 подключить нужно.

На 5в отдельная линия от БП идет на экран, светодиоды и жирные модуля аля mq, с питанием проблем нет.

Тут вспомнил, что у меня есть АЦП ADS1115 на 4 канала.

Идея в чем. подключаем АЦП к 3,3в, а к 4 каналам аналоговый сигнал 5в.

И никакой возни с преобразованием уровней и внутренним АЦП esp.

В целом работает.

Никаких подводных камней нет с таким подключением?

п.с.
На arduino Adafruit_ADS1015.h все 4 канала отлично работают.

А на Esp a0 глючит. Не сталкивался кто с этим?
 

nikolz

Well-known member
Про те датчики в курсе. дорого + только co2, а мне нужно датчики чистоты воздуха. Еще mq-2 подключить нужно.

На 5в отдельная линия от БП идет на экран, светодиоды и жирные модуля аля mq, с питанием проблем нет.

Тут вспомнил, что у меня есть АЦП ADS1115 на 4 канала.

Идея в чем. подключаем АЦП к 3,3в, а к 4 каналам аналоговый сигнал 5в.

И никакой возни с преобразованием уровней и внутренним АЦП esp.

В целом работает.

Никаких подводных камней нет с таким подключением?

п.с.
На arduino Adafruit_ADS1015.h все 4 канала отлично работают.

А на Esp a0 глючит. Не сталкивался кто с этим?
полагаю Вы путаете согласование цифровых уровней с приемом аналоговых сигналов.
В данном случае все согласование сводится к расчету двух сопротивлений
причем нет никаких проблем кроме ограничения сигнала
Рекомендую включить датчик на 5 вольт поставить на выход нагрузку 20 ком так как АЦП ESP (вы не указали какой ESP) имеет высокое входное
и измерить напряжение
если оно будет больше уровня входного ацп то поставить доп резистор. И ВСЕ
---------------------
У меня проблем с АЦП нет
если учесть что я получаю на ESP8266 вместо 10 бит 12 и частоту дискретизации 600 кгц.
 

Listian

New member
полагаю Вы путаете согласование цифровых уровней с приемом аналоговых сигналов.
нет, не путаю. датчик аналоговый. возможно, выразился терминологией цифры.

просто это получается замена ацп esp32 с его 1,1-3,6в 12-бит на 3,3-5в с 15-битной точностью для 4 отдельных каналов.

с шим бы такое бы уже не провернул. нашел только SX1509, но у него слабый 8-битный шим.

вообще, существуют двунаправленные расширители шимов?

В данном случае все согласование сводится к расчету двух сопротивлений
причем нет никаких проблем кроме ограничения сигнала
Рекомендую включить датчик на 5 вольт поставить на выход нагрузку 20 ком так как АЦП ESP (вы не указали какой ESP) имеет высокое входное
и измерить напряжение
если оно будет больше уровня входного ацп то поставить доп резистор. И ВСЕ
---------------------
а что даст эти 20к? он же только ток ограничит?

У меня проблем с АЦП нет
если учесть что я получаю на ESP8266 вместо 10 бит 12 и частоту дискретизации 600 кгц.
esp32. тоже Adafruit_ADS1015 пользуетесь?
 

nikolz

Well-known member
нет, не путаю. датчик аналоговый. возможно, выразился терминологией цифры.
просто это получается замена ацп esp32 с его 1,1-3,6в 12-бит на 3,3-5в с 15-битной точностью для 4 отдельных каналов.
с шим бы такое бы уже не провернул. нашел только SX1509, но у него слабый 8-битный шим.
вообще, существуют двунаправленные расширители шимов?
а что даст эти 20к? он же только ток ограничит?
esp32. тоже Adafruit_ADS1015 пользуетесь?
ADS1015 частота дискрет 3300 гц 12 бит - хуже чем в ESP32
нет смысла заменять
 

kostyaer78

New member
Доброго!
Думал сначала через делитель подключить, но посмотрел тестером- выход у него не больше вольта даже если долго на него дышать.. Проверьте свой на всякий случай, если решите подключить напрямую и что-то случится, дабы мне крайним не остаться)
Т.ч. попробовал на прямую, и показания с него при хорошем воздухе 120-130, если курить рядом то 350... т.ч. оставил так, для вытяжки на форточке самое то, начал курить- сработала вытяжка... для СО2 у меня MH-Z19, но так пока и не нашел подходящего места где его установить.. Либо находишься рядом с ним и он очень быстро реагирует, а если вдвоем в помещении так проветривание никогда не выключится... А если поставить в другом конце комнаты, то там сквозняк и проветривание не включится..
 

nikolz

Well-known member
Доброго!
Думал сначала через делитель подключить, но посмотрел тестером- выход у него не больше вольта даже если долго на него дышать.. Проверьте свой на всякий случай, если решите подключить напрямую и что-то случится, дабы мне крайним не остаться)
Т.ч. попробовал на прямую, и показания с него при хорошем воздухе 120-130, если курить рядом то 350... т.ч. оставил так, для вытяжки на форточке самое то, начал курить- сработала вытяжка... для СО2 у меня MH-Z19, но так пока и не нашел подходящего места где его установить.. Либо находишься рядом с ним и он очень быстро реагирует, а если вдвоем в помещении так проветривание никогда не выключится... А если поставить в другом конце комнаты, то там сквозняк и проветривание не включится..
я вам уже написал что ничего не случится
так как это аналог и высокое сопротивление т е малый ток
вы все же путаете с цифрой - там ключевой режим
 

kostyaer78

New member
я вам уже написал что ничего не случится
так как это аналог и высокое сопротивление т е малый ток
вы все же путаете с цифрой - там ключевой режим
Nikolz, Вы меня с топик стартером спутали =)

При включении на холодную mq-135 стартует более вольта.. для еспехи думаю не страшно..
Кстати для аналоговых датчиков взял на пробу ЦАП/АЦП модуль PCF8591 но так и не удалось получить с него адекватных показаний, если замкнуть на землю показывает ноль, но с датчиком или без (не подключенный контакт) показания одинаковы и очень скачут, для тестирования на плате присутствуют- потенциометр, фоторезистор и терморезистор, переключение на внешний сигнал джамперами, так вот разницы в показаниях нет, что подключаю встроенные "датчики", что без них- уровни не меняются.. либо брак, либо я что то не понял..
 

nikolz

Well-known member
Nikolz, Вы меня с топик стартером спутали =)

При включении на холодную mq-135 стартует более вольта.. для еспехи думаю не страшно..
Кстати для аналоговых датчиков взял на пробу ЦАП/АЦП модуль PCF8591 но так и не удалось получить с него адекватных показаний, если замкнуть на землю показывает ноль, но с датчиком или без (не подключенный контакт) показания одинаковы и очень скачут, для тестирования на плате присутствуют- потенциометр, фоторезистор и терморезистор, переключение на внешний сигнал джамперами, так вот разницы в показаниях нет, что подключаю встроенные "датчики", что без них- уровни не меняются.. либо брак, либо я что то не понял..
в документации на mq135 указана необходимость резистора RL т е нагрузки на выходе в диапазоне от 10 до 47 ком.
попробуйте поставить
-----------------
полагаю что датчик генерит ток т е имеет высокое выходное сопротивление и надо ацп с высоким входным
либо ставить повторитель
 

kostyaer78

New member
в документации на mq135 указана необходимость резистора RL т е нагрузки на выходе в диапазоне от 10 до 47 ком.
попробуйте поставить
-----------------
полагаю что датчик генерит ток т е имеет высокое выходное сопротивление и надо ацп с высоким входным
либо ставить повторитель
Спасибо, попробую с нагрузкой, возможно поможет снять уровни с этим внешним АЦП. Нет, так и оставлю на прямую в есп, уже привык к показаниям 110-120 свежий воздух, 120-130 чистый, 130+ загрязненный..
 

nikolz

Well-known member
выше ссылка на статью с этим датчиком
"Единственное, китайцы поставили в нагрузку датчика резистор R2 сопротивлением 1 кОм, что сильно снижает его чувствительность. Для нормальной работы, сопротивление нужно увеличить до 5-10 кОм."
---------------
по документации от 10 до 47 ком
 

kostyaer78

New member
выше ссылка на статью с этим датчиком
"Единственное, китайцы поставили в нагрузку датчика резистор R2 сопротивлением 1 кОм, что сильно снижает его чувствительность. Для нормальной работы, сопротивление нужно увеличить до 5-10 кОм."
---------------
по документации от 10 до 47 ком
Nikolz, спасибо за помощь, попробую перепаять датчик, скорее всего повысив чувствительность смогу реализовать более адекватное распознание дыма и вообще качество воздуха... Статейку с переделкой датчика видел, но тогда собирал инфу где народ ставит датчики и по этому не обратил внимания на переделку.. и тут я до сих пор не определился где MH-Z19 оставить , динамика СО2 в комнате очень сильно меняется от расположения MH-Z19... либо связывать данные от mq-135 и MH-Z19, учитывать количество человек и температурные предпочтения, я люблю свежий прохладный воздух, подруга потеплее... Сейчас у меня mq135 отвечает за вытяжку, MH-Z19 за проветривание.. настроил под себя, но как приходит подруга так проветривание не выключается т.к. переваливает за 800 ppm и не может опустится ниже порогового 700 ppm
 

nikolz

Well-known member
Nikolz, спасибо за помощь, попробую перепаять датчик, скорее всего повысив чувствительность смогу реализовать более адекватное распознание дыма и вообще качество воздуха... Статейку с переделкой датчика видел, но тогда собирал инфу где народ ставит датчики и по этому не обратил внимания на переделку.. и тут я до сих пор не определился где MH-Z19 оставить , динамика СО2 в комнате очень сильно меняется от расположения MH-Z19... либо связывать данные от mq-135 и MH-Z19, учитывать количество человек и температурные предпочтения, я люблю свежий прохладный воздух, подруга потеплее... Сейчас у меня mq135 отвечает за вытяжку, MH-Z19 за проветривание.. настроил под себя, но как приходит подруга так проветривание не выключается т.к. переваливает за 800 ppm и не может опустится ниже порогового 700 ppm
надо кнопку поставить "пришла" - нажал и стало теплее
 

kostyaer78

New member
надо кнопку поставить "пришла" - нажал и стало теплее
Можно проще, у меня majordomo сканирует эфир блютуза на наличие знакомых девайсов, меня по телефону узнает, а когда телефон в дауне, то по браслету (браслет не видно если он в коннекте с телефоном, если телефон выключился браслет переходит в поиск и мажор уже по нему определяет) Но пока что не хочу заикаться на тему дай телефон, надо мак блютуза записать в умный дом.. Обижается, что время стал много тратить на контроллеры))))
 

kostyaer78

New member
В общем фигня этот mq-135, а не датчик! Поиграться с ардуинкой не более...
Постоянно плавает диапазон измерений, но динамика на графике в сравнении с MH-Z19 сохраняется..
Несколько дней норма 130, на следующий день 200, потом 150.. а сейчас вовсе 440 для свежего воздуха.. в то время как MH-Z19 без каких либо отклонений.
Закономерность так и не выявил.. температура особо не меняется 23-24С, влажность скачет, но от этого показания не меняются.. единственное давление несколько дней уже завышенное 765-770мм
В общем даже для датчика дыма мне он не подходит...

По поводу замены резистора на датчике. Перепаял, напряжение выросло до 0.7в, но еспэшка его не приняла показывает 1024 постоянно.. странно даже вольта нет... запаял обратно на 1к
 
Сверху Снизу