датчик MQ135 и iskra js

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем TrashPony, 16 фев 2018.

  1. TrashPony

    TrashPony Нуб

    Добрый день имеется датчик mq 135 в вики сказано что он поддерживается библиотекой http://wiki.amperka.ru/js:gas-sensor

    но при компиляции с параметром model: MQ135 выдает ошибку "Function "preheat" not found!"

    залез в библиотеку на гит хаб https://github.com/amperka/espruino-modcat/blob/master/modules/@amperka/gas-sensor.js
    и там нечего нету про MQ 135 и CO2

    код использую из вики:
    Код (Javascript):
    var gasSensor = require('@amperka/gas-sensor').connect({
      dataPin: A0, // разъём SVG
      heatPin: P13, // разъём GHE
      model: 'MQ135'
    });

    gasSensor.preheat(function() {
      var basePpm = gasSensor.calibrate();
      print('PPM base in current environment: ', basePpm);

      setInterval(function() {
        var val = gasSensor.read('LPG');
        print('LPG PPM =', val);
      }, 1000);
    });
    что я делаю не так и как быть? :(
     
  2. sys

    sys Злобный Буратино Модератор

    действительно, в самом коде модуля gas-sensor нет описания свойств для MQ135...

    попробуйте http://www.espruino.com/MQ135
     
  3. dpro

    dpro Нерд

  4. TrashPony

    TrashPony Нуб

    Спасибо за ответы буду пробовать
     
  5. Ampermeter

    Ampermeter Нерд

    Получилось ли что-нибудь?
    Пытаюсь получить что-то с Тройка-модуля MQ135.

    У меня с той библиотекой с сайта Espruino получается ерунда.
    Ведь, как минимум, не ясны номиналы согласующего резистора на тройка-модуле.
    У меня получились довольно разумно с кодом, взятым отсюда.
    Открыл сейчас окно и ppm упало до 850., а так было в районе 1300.
    Пока установил mqR = 10000;

    Кстати, по неопытности, перепутал и установил тройка модуль в тройка-слот шилд наоборот и мерил напряжение питания :oops: Сейчас перевернул датчик в контактах и заработало как надо :cool:

    Я новичок в arduino-мире, и мне не ясен такой момент:
    функция
    Код (Javascript):
    analogRead(PIN);
    для Iskra JS возвращает значение [0,1]
    А в классическом Arduino - там [0, 1023]
    Поэтому я изменил в коде, взятом из блога Davide Gironi, пересчёт следующим образом:
    Код (Javascript):
    let adcRaw = analogRead(mqInput);
    let rS = mqR * (1/adcRaw - 1);
    Напряжение E.getAnalogVRef(), которое также можно видеть в формуле библиотеки от Амперки не нужно, т.к. оно сокращается, присутствуя и в числителе и в знаменателе формулы.

    В указанной выше библиотеке для Espruino там тоже домножение на 1023 и абсолютно "левые" результаты на выходе.

    Пока не ясен номинал mqR. Он там 10к на тройка-модуле? Или 22к, как у автора блога...

    А вообще, представители Amperka это читают?
    Хотелось бы иметь поддержку MQ135 в виде тройка-модуля от Амперки в той же штатной JS-библиотеке от Амперки, тем более что нас вводят в заблуждение описанием в Wiki, что поддержка данного датчика имеется.
     
    Последнее редактирование: 3 мар 2018
    arkadyf нравится это.
  6. DNA

    DNA Нерд

    Добрый вечер! Есть пример кода вызова измерений CO2 c помощью вашей библиотеки? Буду признателен если поделитесь.
     
  7. dpro

    dpro Нерд

    так там же по ссылке прям видно: getPPM();
     
  8. RuslanCC

    RuslanCC Нуб

    Добрый день!
    Приобрел Искру, MQ-135 и slot shield
    Судя по мануалу на датчик для Искры:
    http://wiki.amperka.ru/js:gas-sensor
    При подключении можно выбрать тип датчика - model: 'MQ135'

    Однако при просмотре исходников библиотеки:
    https://github.com/amperka/espruino-modcat/blob/master/modules/@amperka/gas-sensor.js

    Никакого MQ135 нет, соотвественно ничего не работает! Что делать в данном случае? Как можно измерить CO2 при помощи этого датчика?

    Смотрел разные исходники типа:
    https://www.espruino.com/MQ135
    https://gist.github.com/dpr0/e978cf46d8ad896a132c4ede20509d2d
    через них получаются какие-то некорректные шестизначные значения или вообще 0
    Помогите, пожалуйста.
     
  9. sys

    sys Злобный Буратино Модератор

    остается ожидать ответа техподдержки... Обязательно отпишитесь сюда о результате.
     
  10. parovoZZ

    parovoZZ Гуру

    С помощью АЦП
     
  11. RuslanCC

    RuslanCC Нуб

    Все таки - если на сайте заявлена поддержка датчика и я его купил - хотелось бы, чтобы эта поддержка имелась. Ведь тройка-модули предполагают именно такой сценарий использования.
    Если у кого-то есть рабочий код для модуля - буду очень признателен, если вы им поделитесь.
     
  12. parovoZZ

    parovoZZ Гуру

  13. RuslanCC

    RuslanCC Нуб

    Дозвонился до поддержки - обещали внести правки в модуль в течение пары дней) спасибо!
     
  14. ИгорьК

    ИгорьК Гуру

    Изменения они, конечно, внесут, но к данным вас это не приблизит.
    Почитайте даташит на этот датчик, поймите как он работает и сами определите - оно может говорить что-то определенное об уровне СО2, кроме как "меньше"/"больше".
     
  15. parovoZZ

    parovoZZ Гуру

    MQ-135 выдаёт полноценный аналоговый сигнал. Читается АЦП и никак иначе.
     
  16. ИгорьК

    ИгорьК Гуру

    ... О чем то.
     
  17. parovoZZ

    parovoZZ Гуру

    В даташите есть графики.
     
  18. ИгорьК

    ИгорьК Гуру

    :)
     
  19. RuslanCC

    RuslanCC Нуб

    Я когда этот датчик подключал к ардуине - он вроде бы выдавал корректные значения СО2 - в комнате выше чем на улице, когда дуешь на него - еще выше и тд)
    На искре будет что-то другое чтоли?
     
  20. ИгорьК

    ИгорьК Гуру

    Датчик - это переменное сопротивление, на котором измеряется напряжение, причем не в вольтах, а в "условных единицах" от 0 до 1023. Ну или от 0 до 1 в случае Искры JS.

    После чего эти "попугаи" интерпретируются в соответствии с каким-то алгоритмом, типа построенном на таблице из даташита.

    Это "механизм" дОбычи. В этом механизме туча дыр.

    А если вы смотрите на ситуацию "добавил библиотеку - заработало", то это формально верно но по сути - заблуждение.

    Извините, с телефона лучше не объяснить.