我正在尝试使用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(全部试过)
我已经用完了想法 . 这可能是什么问题?
1 回答
好的,我们走了......
引脚号必须从模块上的内容映射到您在Lua代码中使用的索引 . 见https://nodemcu.readthedocs.org/en/dev/en/modules/gpio . 例如,使用
pin = 4
,您必须在模块上使用GPIO2 .