Mics-6814 и esp32 в arduino ide

Тема в разделе "ESP8266, ESP32", создана пользователем mr.weles, 30 май 2023.

  1. mr.weles

    mr.weles Нуб

    Приветствую!
    Уже который день бьюсь с получением корректных показаний от MICS-6814.
    Подключал по схеме из единственной в сети статьи. С подтягивающими резисторами на 47 кОм.
    Значение высчитываю ориентируясь на закон Ома и даташит

    Код (C++):
    tempCo = (tempCo / ADC_SAMPLES); //Получаем среднее значение за период
    coCalcTemp = (tempCo*3.3)/ADC_MAX_VALUE; //4095 считаем полученное напряжение
    coCalcTemp = coCalcTemp / (3.3-coCalcTemp)*47000; //Считаем сопротивление, зная базовое напряжение и один известный резистор на 47 кОм
    coCalcTemp = coCalcTemp/1000;//Дальше получаем ppm (по мануалу сопротивление 100 - 1500 кОМ, соответсвуют 1-1000 ppm)
    coCalcTemp = coCalcTemp-100;
    tempCo = coCalcTemp * (1000/1400);

    return = tempCo;
    На выходе я получаю значения ppm в районе 500, что не соответствует действительности. Калиброванного датчика у меня увы нет, но если бы у меня в квартире было 500 ppm СО, я бы это сообщение уже не писал)

    Возможно кто-то сталкивался с этим датчиком и его работой с ESP32? В какую сторону вообще копать?
     
  2. Asper Daffy

    Asper Daffy Иксперд

    Нам её самим искать, а потом проводить экспертизу, та ли это "единственная" статья или другая? Ссылки Вы только за отдельную доплату даёте?
    1. взять даташит на датчик;
    2. внимательно почитать;
    3. убедиться, что там нет никаких 47к, зато есть много чего другого;
    4. сделать правильно.
    А в случае вопросов, давать все ссылки, а не напускать туману про единственные статьи.
     
  3. parovoZZ

    parovoZZ Гуру

    Если 500ppm, значит сопротивление измерительного элемента порядка 700к (согласно даташиту
    ) . Можно взять самый простой омметр и проверить.
     
  4. mr.weles

    mr.weles Нуб

    http://kstobbe.dk/2019/02/16/esp32-pms5003-bme280-mics6814-sensor-build/

    Ссылка эта. И он действительно единственная в которой подробно описано подключение этого модуля именно к ESP32

    Даташит внимательно изучен, основываясь на нём я и писал пересчёт из напряжения полученного АЦП после подтяжки сигнальных ног к 3.3V в ppm.
    Резисторы на 47 кОм выбраны потому что в статье использовали именно их и объективных причин использовать другие номиналы у меня нет. Модуль аналоговый и без подтяжки он просто молчит в эфир. Т.е. напряжение на выводах 0V.
    Датчик используется не в виде чипа, а в виде модуля, на котором уже распаяна минимально необходимая обвязка.
    [​IMG]

    Единственный момент который я упустил, это график в начале даташита, который указывает на то что при увеличении концентрации CO, сопротивление будет падать, а не расти. Что хоть и противоречит таблице ниже, но опытным путём подтверждается.
    И тем не менее показания датчика далеки от корректных. В условно контролируемой среде (кастрюле заклеенной скотчем), показания примерно такие

    01:06:26.023 -> Resistance CO:856.59 kOhm
    01:06:33.045 -> Resistance CO:679.28 kOhm
    01:06:39.143 -> Resistance CO:812.22 kOhm
    01:06:45.242 -> Resistance CO:710.74 kOhm
    01:06:51.336 -> Resistance CO:775.50 kOhm
    01:06:57.427 -> Resistance CO:735.38 kOhm
    01:07:03.493 -> Resistance CO:732.21 kOhm
    01:07:09.593 -> Resistance CO:786.18 kOhm
    01:07:15.664 -> Resistance CO:713.73 kOhm
    01:07:22.265 -> Resistance CO:915.32 kOhm
    01:07:29.305 -> Resistance CO:635.50 kOhm
    01:07:35.376 -> Resistance CO:732.21 kOhm
     
  5. mr.weles

    mr.weles Нуб

    Омметром в работающей цепи увы много не намеряешь, но показания вольтметра близки к реальным, разница в сотые вольта.
    Сейчас копаю в сторону измерения реального напряжения питания микроконтроллера. Последним вариантом будет выпаивание модуля с платы и проверка на импровизированном стенде
     
  6. Asper Daffy

    Asper Daffy Иксперд

    Я с этого всегда начинаю, удачи! :)
     
  7. parovoZZ

    parovoZZ Гуру

    оно вообще ничем не будет отличаться от подключения к любому другому МК.

    разумеется, что все подтягивающие резисторы необходимо отключить. Если омметр покажет те же 700-800 кОм, значит измерительная цепь и ПО для МК условно верные и причину надо искать...в даташите. Ну или отбраковать датчик.

    разумеется. Там же резистор. Цель измерений - замерить его сопротивление.

    А где, кстати, планируется использовать сиё изобретение? В местах, где обитает человек, допустимая концентрация СО лежит гораздо ниже нижнего порога чувствительности этого датчика (ниже 50 ppm).