我正在试验这个设备,当我把它安装到面包板上时遇到了麻烦。它工作了一段时间,然后偶尔重新启动。有时是几分钟,有时是几个小时。
我正在使用使用默认模块 + 单线模块构建的当前整数主 NodeMCU 固件。
我正在使用的部分:
- ESP-201
- 一个 170 点的面包板
- CP2102 USB转TTL转换器
- LM1117T稳压器
- 1000 µF 16V 电容器
我弯曲了前销,以便 ESP-201 适合面包板(https://flic.kr/p/GzCp4k)
接线:
- CP2102 5v ---- LM1117T 5v
- ESP-201 中文 ---- 3V3
- ESP-201 IO15 ---- 接地
- GND和3V3之间的电容
加上所有连接的 GND 和 3V3。为了上传程序,我将前面的 4 个引脚分别连接到 GND、3V3、RX 和 TX 到 GND、3V3、TX 和 RX。后来我把这些电线拆掉了。
我的配置图片:https ://flic.kr/p/GbiPBE 。
再生产
您需要一个 ThingSpeak 频道来检查重启。创建一个并记下写入密钥。
您可以使用以下简单程序进行测试(只需填写WIFI SSID、PASSWORD和WRITE_KEY):
local WIFI_SSID = "..."
local WIFI_PASSWORD = "..."
local WRITE_KEY = "..."
tmr.alarm(0, 5000, tmr.ALARM_SINGLE, function()
wifi.setmode(wifi.STATION)
wifi.sta.config(WIFI_SSID, WIFI_PASSWORD)
tmr.alarm(1, 60000, tmr.ALARM_AUTO, function()
print("Doing something...")
end)
local connout = nil
connout = net.createConnection(net.TCP, 0)
connout:on("receive", function(connout, payloadout)
if (string.find(payloadout, "Status: 200 OK") ~= nil) then
print("Posted OK");
end
end)
connout:on("connection", function(connout, payloadout)
connout:send("GET /update?api_key="..WRITE_KEY.."&field1=1"
.. " HTTP/1.1\r\n"
.. "Host: api.thingspeak.com\r\n"
.. "Connection: close\r\n"
.. "Accept: */*\r\n"
.. "User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n"
.. "\r\n")
end)
connout:on("disconnection", function(connout, payloadout)
connout:close();
collectgarbage();
end)
connout:connect(80,'api.thingspeak.com')
end)
它只是记录设备何时启动(或重新启动),并启动一个计时器,以便设备无法睡眠。将其保存为init.lua,以便在设备重启时启动。
给设备加电,让它运行一段时间。您应该会时不时地看到重新启动:
如果设备不在面包板上,则无需重新启动即可工作。
PS:我也把这个问题发到了Reddit