Подключение датчика влажности и температуры DHT21/AM2301

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Денис Ящук, 26 апр 2017.

  1. Подскажите пожалуйста, как его подключить к искре?
    Нашёл только подключение аналогового термометра, а этот цифровой, спасибо.
     
  2. ИгорьК

    ИгорьК Гуру

    http://gruntoff.ru/publ/ehlektronika/12-1-0-88
     
  3. Спасибо, но эту статью находил.
    А как обращаться к нему через JS?
     
  4. sys нравится это.
  5. sys

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

    Совершенно верно. Espruino.com - это основное место для поиска информации о модулях и способах работы со всякой всячиной, если таковой не найдено на Амперке
     
    Денис Ящук нравится это.
  6. fix928

    fix928 Нерд

    Ап теме, имхо ответ никто не выложил инфу как же оно работает =(. Понятно, что ничего не понятно.... Я не силен в английском, не смог там разобрать в чем дело. В итоге использовал: upload_2017-4-27_16-11-38.png
    и получилось: upload_2017-4-27_16-12-10.png
    Там написано: upload_2017-4-27_16-12-56.png
    И я так понял, что нужно изменить или добавить параметр в каком-то объекте, а вот в каком хз. Да и потом если это будет работать, то откуда брать показатели для того, чтобы использовать их дальше в скетче?
     

    Вложения:

    Денис Ящук нравится это.
  7. sys

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

    Обычно в таком случае выкладывают фотографию/схему подключения. Чтоб гадать предметнее было... Плюс, настройте подробный вывод, ибо причины могут быть разными: либо данные не поступают, либо поступают, но ошибка контрольной суммы.
    По поводу второго параметра. Это количество попыток получить данные, по умолчанию - 10 попыток. Задается в .read( function(a){...}, кол-во попыток )
     
    Последнее редактирование: 27 апр 2017
  8. fix928

    fix928 Нерд

    Вот пожалуйста фото:
    upload_2017-4-28_9-36-39.png
    upload_2017-4-28_9-47-6.png

    Итак есть IskraJS с реле шилдом. По подключению датчика: красный = зеленый, синий = черный, желтый = синий. Скетч по сути не важен, но на всякий вот, что у меня сверху:
    Код (Java):
    var rel = function(pin){
    this._pin = pin;
    this._on = false;
    };
    var r1 = new rel(P4);
    var r2 = new rel(P5);
    var r3 = new rel(P6);
    var r4 = new rel(P7);

    rel.prototype.on = function(){
      this._on = true;
      Pin(this._pin).set();
    };
    rel.prototype.off = function(){
      this._on = false;
      Pin(this._pin).reset();
    };
    var sensor1 = require('DHT22').connect(P3);
    sensor1.read(function (a){console.log("Temp is "+a.temp.toString());});
    Собсно мой интерес настроить ввод в виде датчика и поиграться с кодом.
     
    Последнее редактирование: 28 апр 2017
  9. ИгорьК

    ИгорьК Гуру

    Игры с кодом начинают так:



    [​IMG]

    В JavaScript эти буквы называются "скрипт".

    Помог чем мог.
     
  10. Korobas

    Korobas Нерд

    Скетч не важен, ну-ну.
    Вся суть в нём, Вы подключаете библиотеку от Espruino, а пин указываете Искровский.
    Вот тут http://wiki.amperka.ru/js:iskra_js внизу есть картинка с соответствием пинов. Р3 на искре = А7 на еспруино.
     
  11. fix928

    fix928 Нерд

    Вот что выводит с портом P3:
    upload_2017-4-28_12-22-4.png
    Вот что получается если изменить на А7:
    upload_2017-4-28_12-23-9.png
    А что дальше?
     
  12. Korobas

    Korobas Нерд

    Джампер у искры точно на 5В стоит?
     
  13. sys

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

    Korobas нравится это.
  14. fix928

    fix928 Нерд

    Джампер переключает на портах 8-13, у меня в Р3 воткнут в данном случае, и как выяснилось позже напряжение особо роли не играет - показания одинаковые.
    Большое спасибо, помогло. Вот скрипт, который работает:
    Код (Java):
    var ow = new OneWire(A7);
    var sensor = require("DS18B20").connect(ow);
    setInterval(function() {
      sensor.getTemp(function (temp) {
        console.log("Temp is "+temp+"°C");
      });
    }, 1000);
    В моём случае пин Р3 на плате = А7 в коде - это сигнальный(синий)
    Так как мне не нужен вывод в консоль и таймер я его вырезал, осталось это:
    Код (Java):
    var ow = new OneWire(A7);
    var sensor = require("DS18B20").connect(ow);
      sensor.getTemp(function (temp) {
      });
    Вытащить значение датчика в данном случае можно так:
    Код (Java):
    var t = sensor.getTemp();
    // t - значение в переменной можно использовать в циклах и переключалках
     
    Последнее редактирование: 3 май 2017
    Денис Ящук нравится это.