You are reading a single comment by @th and its replies. Click here to read the full conversation.
  • Hoping someone can help. Having issue with reading DHT11 that I don't understand.

    If I never call updateDisplay() then DHT11 returns "temp:-1,rh:-1,err:true,checksumError:fa­lse" forever (tried leaving it for days).

    If I call updateDisplay() then it returns -1, but after a few iterations I get a clearWatch() error message, then DHT11 temp/rh is read correctly forever.

    Compacting Flash...
    Calculating Size...
    Writing..
    Compressed 36800 bytes to 11307
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Temp is -1 and RH is -1, Err: true, ChecksumError: false
    Uncaught Error: clearWatch(undefined) not allowed. Use clearWatch() instead.
    at line 1 col 19
    clearWatch(a.watch);delete a.watch;var e=parseInt(b.substr(2...
    ^
    in function called from system
    Temp is 25 and RH is 58
    Temp is 26 and RH is 55
    Temp is 25 and RH is 54
    Temp is 25 and RH is 54
    Temp is 25 and RH is 54
    Temp is 25 and RH is 54
    Temp is 26 and RH is 55

    My code:

    var displayReady=false;
    var dht = require("DHT11").connect(D15);
    var spi = new SPI();
    spi.setup({mosi:D23 /* sda */, sck:D22 /* scl */, baud: 4000000});
    var g = require("ILI9163").connect(spi, D21 /* DC */, D18 /* CE */, D19 /* RST */, function() { 
      displayReady = true; 
      console.log("Display ready.");
    });
    require("Font8x12").add(Graphics);
    
    var temp = "N/A";
    var rh = "N/A";
    
    
    function updateDisplay() {
      //return;
      if (!displayReady)
        return;
            
        g.clear();
        g.setColor(1,1,1);
        g.setFont8x12();
        g.setFontVector(8);
        g.setRotation(1);
        g.drawString("Test",0,0);
        
        g.setFontVector(20);
      
        g.setColor(1,0.5,1);
        g.drawString("Temp: " + temp.toString(),0,10);
        
        g.setColor(0,1,1);
        g.drawString("Humid: " + rh.toString(),0,40);
    }
    
    function readSensor() {
      dht.read(function (a) {
        temp = a.temp;
        rh = a.rh;
        if (a.temp != -1)
          console.log("Temp is "+a.temp.toString()+" and RH is "+a.rh.toString());
        else
          console.log("Temp is "+a.temp.toString()+" and RH is "+a.rh.toString() + ", Err: " + a.err.toString() + ", ChecksumError: "+ a.checksumError.toString());
        
        updateDisplay();
      });
    }
    
    setInterval(function() {
      readSensor();
    }, 10000);
    
About

Avatar for th @th started