2016-06-10 81 views
1

我想要發送HTTP每次GET我按下一個按鈕:HTTP GET在LUA/NodeMCU

wifi.setmode(wifi.STATION) 
wifi.sta.config("SSID","PWD") 
function loop() 
    if wifi.sta.status() == 5 then 
     -- Stop the loop 
     tmr.stop(0) 
    else 
     print("Connecting...") 
    end 
end 
tmr.alarm(0, 100, 1, function() loop() end) 
print(wifi.sta.getip()) 

outpin_led = 1 
inpin_button = 3 

gpio.mode(outpin_led,gpio.OUTPUT) 
gpio.mode(inpin_button,gpio.INPUT) 
light_on = false 

function light() 
    if not light_on then 
     -- turn the light on 
     gpio.write(outpin_led,gpio.HIGH) 
     light_on = true 
     http.get("https://google.com", function(clt, data) 
      print(data) 
     end) 
    else 
     -- turn the light off 
     gpio.write(outpin_led,gpio.LOW) 
     light_on = false 
    end 
end 

gpio.trig(inpin_button,"down",light) 

含有http.get線引發此錯誤消息:

> PANIC: unprotected error in call to Lua API (stdin:6: attempt to index global 'http' (a nil value))

我確保我的NodeMCU內部包含http模塊,通過編譯通過http://nodemcu-build.com/

任何想法?

謝謝。

+0

唯一明智的解釋就是您的固件缺少HTTP模塊。不過,我可以確認,你今天觸發的所有三個版本都應該包含它(根據我的記錄)。你確定你實際上閃過其中一個嗎?當設備啓動時,它應該打印「NodeMCU自定義版本由frightanic.com」和一些配置參數到UART,一個例子可以在http://stackoverflow.com/q/37559525/131929看到 –

回答

1

正如MarcelStör指出的那樣,在固件閃爍期間的確是一個問題。

非常感謝您的回覆,並感謝您在http://nodemcu-build.com/上的工作。

+0

請接受你自己的答案以便StackOverflow可以將此標記爲已解決。 –