先生们您好,
我做错了什么?请参阅以下 lua 代码。它有效,但只有几分钟。我测试了各种固件版本和各个分支,但结果大致相同。几分钟后 Nodemcu 挂起。它应该可以用作外部温度计,但由于稳定性而无法使用。
文件:main.lua
代码:
全选wifi.setmode(wifi.STA
tiON)
wifi.setphymode(wifi.PHYMODE_N)
wifi.sta.config(\'WIFI_SSID\', \'wifi_passwd\')
wifi.sta.connect()
wifi.sta.setip({ip=\'192.168.2.254\',netmask=\'255.255.255.0\',gateway=\'192.168.2.1\'})
function loop()
if wifi.sta.status() == 5 then
m = mqtt.Client(\'nodemcu\',120,\'mqtt_user\',\'mqtt_password\')
m:connect(\'192.168.2.2\', 1883, 0, 1, function(conn)
tmr.stop(0)
local status, temp, humi, temp_dec, humi_dec = dht.read(4)
local temperature = string.format(\"%d.%03d\", math.floor(temp), temp_dec)
local humidity = string.format(\"%d.%03d\", math.floor(humi), humi_dec)
local a = {}
a[\"temperature\"] = temperature;
a[\"humidity\"] = humidity;
m:publish(\"/nodemcu/dht22\", cjson.encode(a) ,0,0, function(conn)
m:close()
wifi.sta.disconnect()
node.dsleep(60000000)
end)
end)
end
end
tmr.alarm(0, 500, 1, function() loop() end)