DHT11 - Датчик температуры и влажности (Troyka-модуль)

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем DNA, 15 сен 2017.

Метки:
  1. DIYMan

    DIYMan Guest

    Во-первых, я не малолетний, уже ооочень давно. Во-вторых - упаси боже от такого тунеядца-сынка, который неспособен оторвать жопу от стула, посмотреть библиотеку и написать свой код. Уж про даташиты я молчу. Сынки такие сынки - не могут без библиотек ничего :)

    З.Ы. Посмотрел код библиотеки - там жуткая тривиальщина, осилит любой "сынок" :) Судя по доке http://wiki.amperka.ru/js:i2c - есть всё необходимое для адаптации.
     
    Последнее редактирование модератором: 26 сен 2017
    parovoZZ нравится это.
  2. uts

    uts Нерд

    Много мучился с этими датчиками. В итоге поставил два датчика температуры Dallas 18B20. Один мокрый второй сухой. Обычный психрометр. С 2016 года проблем нет. В скетче есть измерение температуры одного мокрого второго сухого датчика. Вычисление разности и по массиву int add[48][30] определяем влажность.
     

    Вложения:

    • sychka.ino
      Размер файла:
      77,7 КБ
      Просмотров:
      819
    sys, DIYMan и ИгорьК нравится это.
  3. DIYMan

    DIYMan Guest

    Годный подход, сообщество одобряет :)
     
  4. uts

    uts Нерд

    Скетч температура+влага. Два датчика дисплей QC1602A LCD module (синяя подсветка). Дисплей подключаем к аналоговым входам. Показывает температуру мокро и сухого термометра. Психрометрическую разность, и степень насыщенности (j в %) сушильного агента при скорости его движения 1,5-2,5 м/с. влажность. При включении необходимо определить где мокры где сухой. Первый с меньшим уникальным номером. Ардуино УНО. Памяти маловато но работает.
     

    Вложения:

    • temp_vlaga.ino
      Размер файла:
      5,5 КБ
      Просмотров:
      619
    Последнее редактирование: 28 сен 2017
    DIYMan нравится это.
  5. DIYMan

    DIYMan Guest

    Спасибо, положу в загашник, возможно пригодится, даже - скорее всего ;)
     
  6. uts

    uts Нерд

    Считает правильно с 30 до 85 градусов. Дальше памяти не хватило. для МЕГИ написал до 130 градусов.Если надо то обращайтесь. Таблицы брали http://www.vashdom.ru/gost/19773-84/
     
    DIYMan нравится это.
  7. Joshua

    Joshua Нерд

    два датчика такие взял на попробовать, правда ардуиновские, а не Тройка, или брак или реально такое УГ?
    у вас они в коде хоть данные показывают, а у меня вот такая каша

    Код (Javascript):
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is 27 and RH is 30
    Temp is 13 and RH is 143
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is -1 and RH is -1
    Temp is 27 and RH is 28
    Temp is 27 and RH is 28
    с DHT22 никаких проблем нет
     
  8. ИгорьК

    ИгорьК Гуру

    Не знаю что там за код у вас их опрашивает, но датчикам нужно время для ответа.
    1. Такая ситуация может быть, если датчик безостановочно опрашивается.
    2. Если на модуле нет подтягивающего сопротивления 5.1 ком.
    [​IMG]
     
  9. Joshua

    Joshua Нерд

    Код (Javascript):
    var dht = require("DHT11").connect(P5);

    setInterval(function() {
     
     
      dht.read(function (a) {console.log("Temp is "+a.temp.toString()+" and RH is "+a.rh.toString());});

     
    }, 4000);
    раз в 4 секунды думаю должно хватать )
     
  10. ИгорьК

    ИгорьК Гуру

    Проверьте наличие резистора.

    И где-то я здесь, в ветке про JS, одному неблагодарному перцу накидывал код для этого датчика - поищите его.
     
    Joshua нравится это.
  11. ИгорьК

    ИгорьК Гуру

  12. Joshua

    Joshua Нерд

    а почему не благодарному?:)

    [​IMG]

    вот такие вот датчики. цепляю к искре.
     
  13. ИгорьК

    ИгорьК Гуру

    Картинки не видно, да и по ней не всегда понятно. Разглядите датчик - между питанием и сигнальным проводом должен стоять резистор. Если его нет - ставьте.

    Неблагодарному - потому что я (зачем - сам не знаю) написал ему код для его задачи и закомментировал по самые помидоры, не имея этого железа, а товарищ даже не удосужился отписать работает он или нет.
     
    SergeiL нравится это.
  14. Joshua

    Joshua Нерд

    прицепил
    резисторы есть
    код загрузил, , сменил только на HD44780 на I2C2

    картинка висит на Ready to work

    сейчас уезжать надо будет, а вечером попробую разобраться с тем как там и что и отпишусь
     

    Вложения:

  15. ИгорьК

    ИгорьК Гуру

    У вас там земля с данными не перепутана?
     
  16. Joshua

    Joshua Нерд

    тестер специально достал. нет. все ок. питание - 3.3В
     
  17. ИгорьК

    ИгорьК Гуру

    Она висит, когда ни одно вменяемое данное не пришло от сенсора.

    На картинке у вас видно, что черный провод подключен к выходу сенсора, а коричневый - к данным. Если к плате подключено не так - данных не будет.
     
  18. SergeiL

    SergeiL Оракул Модератор

    Ну да, бывает... я тоже, с такими, сталкивался. :(
     
  19. Joshua

    Joshua Нерд

    не..там все правильно... красный - коричневый питание, черный - данные.. на этих датчиках так
    приехал поздно, раньше не мог отписаться
    пробовал ваш код с DHT22, специально его с уличного термометра снял. та же петрушка. Ready to work
    т.е. по ходу данные тоже не получает. видимо с вызовом проблема

    вот мой вариант уличного термометра:
    Код (Javascript):
    //WI-FI
    var wifi = require("Wifi");
    wifi.connect("myWiFiNetwork", {password:"myWiFiPassword"}, function(err){
      console.log("connected? err=", err, "info=", wifi.getIP());
    });


    wifi.stopAP();


    // I2C
    I2C1.setup({scl:D5,sda:D4});
    var g = require("SSD1306").connect(I2C1);

    //connect DHT22
    var dht = require("DHT22").connect(D2);

    var temp,
        rh;
    //Update values every 5 seconds
    function readTemp() {
        //Update temp
        dht.read((a) => temp = a.temp);
        //Update rh
        dht.read((a) => rh = a.rh);

    setTimeout(function() {readTemp();}, 2000);
    }
    readTemp();


    //OLED font
    require("Font8x16").add(Graphics);
    require("Font6x8").add(Graphics);

    //READ TEMP +RH and show on LCD
    function drawLcd() {
      g.clear();
      g.setFont8x16();
      g.drawString('Temp is ' + temp+ ' '+'C', 7,10);
      g.drawString('RH is ' + rhu + " "+"%", 7, 30);
      g.setFont6x8();
      g.drawString('http://' +wifi.getIP().ip, 7, 50);
      g.flip();

      setTimeout(function() {drawLcd();}, 2000);
    }
    drawLcd();


    function onPageRequest(req, res) {
      var a = url.parse(req.url, true);
      res.writeHead(200, {'Content-Type': 'text/html',"Connection":"close", "Refresh": "1"});
      res.write('<html><body>');
      res.write('<p>Current Parameters</p>');
      res.write('<h1>Temperature is '+temp+ 'C'+'</h1>');
      res.write('<h1>Humidity is '+rh+'%'+'</h1>');
      res.end('</body></html>');
    }
    require("http").createServer(onPageRequest).listen(80);
     
    на по логике если заменить dht22 на dht11 должен был бы работать, но, тоже -1 в обоих параметрах