前述のように私は天気APIに接続して結果を出力するスクリプトを作成しました。NodeMCU ESP 8266(devkit v2)のNodeMCU 0.9.6-dev:dofile()スクリプトがTCPサーバーに接続していない
インタプリタ(ESPlorer "ESPに送信し、行ごとに"行)を介して1行ずつ実行するとすべてうまく動作しますが、dofile()
で実行するとサイトに接続できず失敗します。
私は混乱しています。私が無視している間違いを見つけてくれる人もいらっしゃいましたら幸いです。
がここにコードされています。彼らは時代遅れだとしてそれらの古い0.9.x事前に構築されたバイナリを使用しないでください、もはや
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がこのケースをクローズとしてマークできるように、回答を受け入れて/ upvoteしてください。 –