第一步嫉拐,lua語言開發(fā)環(huán)境配置
下載安裝java環(huán)境,下載地址:點擊下載
選擇windows版本下載安裝即可隆豹,如圖所示:
下載開發(fā)環(huán)境包:
下載地址:點擊下載
esp8266串口驅(qū)動:點擊下載
下載后解壓椭岩,電腦插上8266開發(fā)板,打開 NodeMCU-PyFlasher.exe 軟件璃赡,選擇esp8266的com口判哥,選擇nodemcu.bin 固件,點擊flash nodemcu 刷入碉考,如圖所示:
當(dāng)刷入nodemcu固件后塌计,就可以進行l(wèi)ua編程。解壓ESPlorer-0.2.0.zip后侯谁,雙擊文件夾中的 ESPlorer.jar 啟動軟件(需完成第一步的java環(huán)境安裝锌仅,否則點擊無反應(yīng))軟件使用步驟:
第一:選擇esp8266的com口章钾。
第二:點擊open連接esp8266,等待連接成功热芹,如果連接成功贱傀,會顯示nodemcu固件信息,如果連接失敗伊脓,可點擊兩次open按鈕左邊的RTS按鈕重啟esp8266府寒,注意是雙擊RTS。
第三:點擊open文件夾圖標(biāo)選擇init.lua程序报腔。
第四:當(dāng)程序修改完成后株搔,點擊save to ESP按鈕上傳程序,或者ctrl+s也可以保存并上傳纯蛾,上傳完成后纤房,雙擊軟件上的RTS按鈕重啟esp8266,或者手動重啟esp8266也可以翻诉。
第二炮姨,示例程序
tcp示例程序:需修改wifi名稱和密碼,用戶私鑰uid和主題topic值碰煌。
巴法云tcp服務(wù)地址:bemfa.com
端口:8344
-- wifi配置
wifi.setmode(wifi.STATIONAP)
apcfg={}
--wifi名稱和密碼
apcfg.ssid="newhtc2"
apcfg.pwd="qq123456"
wifi.sta.config(apcfg)
wifi.sta.connect()
wifi.sta.autoconnect(1)
function startup()
srv = net.createConnection(net.TCP, 0)
--連接服務(wù)器
srv:connect(8344,"bemfa.com")
--接收消息
srv:on("receive", function(sck, c)
print(c)
end)
--當(dāng)連接到服務(wù)器
srv:on("connection", function(sck, c)
ConnOK = 1
sck:send("cmd=1&uid=4d9ec352e0376f2110a0c601a2857225&topic=led002\r\n")
--心跳
liveTimer = tmr.create()
liveTimer:register(30000, tmr.ALARM_AUTO, function() sck:send("ping\r\n") end)
liveTimer:start()
end)
--當(dāng)連接斷開
srv:on("disconnection", function(sck, c)
tmr.create():alarm(1000, tmr.ALARM_SINGLE, startup)
end)
end
--當(dāng)wifi連接成功
wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)
print("WIFI CONNECTED OK")
tmr.create():alarm(2000, tmr.ALARM_SINGLE, startup)
end)
詳細巴法云tcp指令可參考接入文檔:點擊跳轉(zhuǎn)
mqtt示例程序:
巴法云mqtt服務(wù)ip:bemfa.com
端口:9501
連接服務(wù)器
1.用戶私鑰作為連接MQTT服務(wù)器的客戶端ID
2.連接時用戶名和密碼為空剑令,或隨意填寫,即設(shè)備連接時不需要賬號和密碼
-- wifi配置
wifi.setmode(wifi.STATIONAP)
apcfg={}
apcfg.ssid="newhtc2"
apcfg.pwd="qq123456"
wifi.sta.config(apcfg)
wifi.sta.connect()
wifi.sta.autoconnect(1)
function startup()
--client id 連接
m = mqtt.Client("4d9ec352e0376f2110a0c601a2857225", 60)
m:connect("bemfa.com", 9501, false, function(client)
print("connected")
client:subscribe("mylight002", 0, function(client) print("subscribe success") end)
end,
function(client, reason)
print("Connection failed reason: " .. reason)
tmr.create():alarm(3000, tmr.ALARM_SINGLE, startup)
end)
m:on("message", function(client, topic, data)
print(topic .. ":" )
if data ~= nil then
print(data)
end
end)
m:on("offline", function(client)
print ("offline")
tmr.create():alarm(3000, tmr.ALARM_SINGLE, startup)
end)
end
--當(dāng)wifi連接成功
wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)
print("WIFI CONNECTED OK")
tmr.create():alarm(3000, tmr.ALARM_SINGLE, startup)
end)
程序講解:首先配置wifi拄查,,當(dāng)連接wifi成功時棚蓄,通過wifi.eventmon.STA_GOT_IP事件獲取wifi連接成功狀態(tài)堕扶,啟動startup函數(shù),startup函數(shù)中初始化服務(wù)器連接梭依,當(dāng)連接斷開時稍算,通過語句:
tmr.create():alarm(3000, tmr.ALARM_SINGLE, startup)
實現(xiàn)3s后再次啟動startup函數(shù)重新連接服務(wù)器,默認重連是3秒役拴,可自行修改糊探。