1

NodeMCU を使用して DHT22 から温度データを読み取ろうとしています。これは私のスクリプトです:

function GetSensorData()
    print( "Trying to get temperature..." )
    pin = 4
    status, temp, humi, temp_dec, humi_dec = dht.read(pin)
    if status == dht.OK then
        print("DHT Temperature:"..temp..";".."Humidity:"..humi)
    elseif status == dht.ERROR_CHECKSUM then
        print( "DHT Checksum error." )
    elseif status == dht.ERROR_TIMEOUT then
        print( "DHT timed out." )
    end
end

-- MAIN
tmr.alarm(1, 1000, 1, function() GetSensorData() end)

これにより、次の出力が得られます(何度も):

温度を取得しようとしています... DHT がタイムアウトしました。....

「ピン」に可能なすべての値を試し、DHT22 データ出力を NodeMCU のすべての GPIO に接続しました。

ピンは次のように接続されています。

  • DHT22-VCC -> NodeMCU-3.3V
  • DHT22-GND -> NodeMCU-GND
  • DHT22-DATA -> NodeMCU-D0, D1, D2, D3, D4 (全部試した)

私はアイデアを使い果たしました。ここで何が問題になる可能性がありますか?

4

1 に答える 1

2

では、行きましょう...

ピン番号は、モジュールに記載されている内容から、Lua コードで使用するインデックスにマップする必要があります。https://nodemcu.readthedocs.org/en/dev/en/modules/gpioを参照してください。たとえばpin = 4、モジュールで GPIO2 を使用する必要があります。

于 2016-02-15T08:24:19.197 に答える