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 超时。……

我尝试了“pin”的所有可能值,并将 DHT22 数据输出连接到我的 NodeMCU 的所有 GPIO。

引脚连接如下:

  • DHT22-VCC -> NodeMCU-3.3V
  • DHT22-GND -> NodeMCU-GND
  • DHT22-DATA -> NodeMCU-D0、D1、D2、D3、D4(都试过了)

我已经用完了oif的想法。这里可能是什么问题?

4

1 回答 1

2

好的,我们开始...

引脚编号必须从模块上的内容映射到您在 Lua 代码中使用的索引。请参阅https://nodemcu.readthedocs.org/en/dev/en/modules/gpio。例如,pin = 4您必须在模块上使用 GPIO2。

于 2016-02-15T08:24:19.197 回答