Как уже упоминалось, я написал скрипт, который подключается к API погоды и распечатывает результат.NodeMCU 0.9.6-dev на ESP 8266 (devkit v2): в то время как скрипт dofile() не подключается к TCP-серверу
Все работает нормально, когда я запускаю его по строкам через интерпретатор (ESPlorer «Отправить в ESP-» и запустит «строка за строкой»), но когда я его выполнил с помощью dofile()
, он не может подключиться к сайту и не удается.
Я смущен и надеюсь, что некоторые из вас найдут ошибку, которую я игнорирую.
Вот код:
data= ""
s= net.createConnection(net.TCP, 0)
s:on("receive", function(so, da) data= da end)
s:connect(80, "api.openweathermap.org")
s:send("GET /data/2.5/weather?q=berlin,de&appid=9a3719c191ce0e1e70673f892013647e&units=metric HTTP/1.1\r\nHost: www.api.openweathermap.org\r\n\r\n")
for x in string.gmatch(data, "([^\n]+)") do
if string.find(x, '"coord"') ~= nil then
for k,v in pairs(cjson.decode(x)) do
if k == "main" or k == "weather" then
print("++++++"..k.."++++++")
if type(v) == "table" then
for kz, vz in pairs(v) do
if kz == 1 or kz == 2 then
for kd,vd in pairs(vz) do
print(kd,vd)
end
else print(kz,vz) end
end end end
end end end
s:close()
Спасибо, очень полезно. –
Полезно знать. Если это решит вашу проблему, примите и/отложите ответ, чтобы StackOverflow мог отметить этот случай как закрытый. –