M5StickC ENV HatのDHT12が、I2C通信エラーで読めない



  • M5StickC ENV Hatを購入したので、Node.jsでDHT12の温度データを取得しようとしていますが、必ずI2C通信でエラーになってしまいます、
    原因の推定や確認ポイントなどアドバイスご教授いただければと
    思います。

    エラー
    message: 'i2c0: writing error. Communication Failed. Maybe, target is not connected.'
    i2Cでの通信ができていないようです。

    Node.jsコード
    const Obniz = require("obniz");
    const obniz = new Obniz("-");
    obniz.onconnect = async function () {
    var ret;
    const device = obniz.wired("DHT12",{vcc:0, gnd:1, scl:2, sda:3, address:0x5c});
    obniz.setVccGnd(0, 1, '5v');
    ret = await device.getAllDataWait();
    console.log(ret);
    }
    ※wired までは問題なく、getAllDataWaitがエラーになります。
    ※スレーブアドレスは、明示的に0x5cと入れています。
    ※3.3Vをつくるため、obnizから5V出力

    配線は、以下を参考に
    https://forum.obniz.io/post/159

    https://docs.m5stack.com/assets/img/product_pics/hat/env_hat/env_hat_04.jpg

    3v3 <-- vcc:0 (obnizの5V出力から抵抗分圧して3.3Vを入力)
    GND <-- gnd:1
    G26 <-- scl:2
    G0 <-- sda:3
    電圧は実行するたびに正しく3.3Vが印加されているのを確認すみ

    DHT12のライブラリに問題があるかと思い、
    Lessonsー>obniz js SDK の基礎 の「I2C: マスターとしてデータを読み書き」のようにI2C通信しても同じエラーでした。

    const myI2C = obniz.getFreeI2C();
    myI2C.start({mode:"master", vcc:0, gnd:1, scl:2, sda:3, clock:100000, address:0x5c});
    obniz.setVccGnd(0, 1, '5v');
    var ret = await myI2C.readWait(0x5c, 5);
    console.log(ret);
    ※やはりstart までは問題なく、readWaitの処理でエラーになっています。

    よろしくお願いします。


Log in to reply
 

SUGGESTED TOPICS

  • 2
  • 1
  • 2
  • 2
  • 3
  • 3
  • 4
  • 5