作者:面包不好吃 | 更新時間:2019-12-05 | 瀏覽量:2402
首先我為什么要寫這個呢,我已經輕松把ESP8266接入中移的onenet,和接入機智云,接下來是嘗試接入貝殼物聯,和天貓精靈連接。
如下是這一天中學到的,快速接入貝殼物聯,實現控制四路繼電器
鏈接:https://pan.baidu.com/s/1MoqGjNxcEor0fDWvWFYsuA
提取碼:3mbn
這個是我們用到的軟件 ,燒程序所用
接下來我們用的是燒錄固件軟件
如下鏈接
鏈接:https://pan.baidu.com/s/18y5MjoS7v1NT7-mQM7q5iQ
提取碼:nbdz
燒錄 固件后,打開軟件
改動如上兩個點,接下改另一個程序
兩個程序修改完,直接 下載到你的ESP8266中 即可在線 即可控制 你的四路繼電器。
簡單實現控制 四路開關,接下就是接入天貓精靈,實現控制,如有問題,或獲取 源碼,請在下方回復 即可。
DEVICEID = "....0"
APIKEY = "....."
INPUTID = "....."
host = host or "www.eqytg.org"
port = port or 8181
LED = 5
LED1 = 6
LED2 = 7
LED3 = 8
gpio.mode(LED,gpio.OUTPUT)
gpio.mode(LED1,gpio.OUTPUT)
gpio.mode(LED2,gpio.OUTPUT)
gpio.mode(LED3,gpio.OUTPUT)
local function run()
local cu = net.createConnection(net.TCP)
cu:on("receive", function(cu, c)
print(c)
r = cjson.decode(c)
if r.M == "say" then
if r.C == "play" then
gpio.write(LED, gpio.HIGH)
ok, played = pcall(cjson.encode, {M="say",ID=r.ID,C="LED turn on!"})
cu:send( played.."\n" )
end
if r.C == "play1" then
gpio.write(LED1, gpio.HIGH)
ok, played = pcall(cjson.encode, {M="say",ID=r.ID,C="LED1 turn on!"})
cu:send( played.."\n" )
end
if r.C == "play2" then
gpio.write(LED2, gpio.HIGH)
ok, played = pcall(cjson.encode, {M="say",ID=r.ID,C="LED2 turn on!"})
cu:send( played.."\n" )
end
if r.C == "play3" then
gpio.write(LED3, gpio.HIGH)
ok, played = pcall(cjson.encode, {M="say",ID=r.ID,C="LED3 turn on!"})
cu:send( played.."\n" )
end
if r.C == "stop" then
gpio.write(LED, gpio.LOW)
ok, stoped = pcall(cjson.encode, {M="say",ID=r.ID,C="LED turn off!"})
cu:send( stoped.."\n" )
end
if r.C == "stop1" then
gpio.write(LED1, gpio.LOW)
ok, stoped = pcall(cjson.encode, {M="say",ID=r.ID,C="LED1 turn off!"})
cu:send( stoped.."\n" )
end
if r.C == "stop2" then
gpio.write(LED2, gpio.LOW)
ok, stoped = pcall(cjson.encode, {M="say",ID=r.ID,C="LED2 turn off!"})
cu:send( stoped.."\n" )
end
if r.C == "stop3" then
gpio.write(LED3, gpio.LOW)
ok, stoped = pcall(cjson.encode, {M="say",ID=r.ID,C="LED3 turn off!"})
cu:send( stoped.."\n" )
end
end
end)
cu:on('disconnection',function(scu)
cu = nil
--停止心跳包發送定時器,5秒后重試
tmr.stop(1)
tmr.alarm(6, 5000, 0, run)
end)
cu:connect(port, host)
ok, s = pcall(cjson.encode, {M="checkin",ID=DEVICEID,K=APIKEY})
if ok then
print(s)
else
print("failed to encode!")
end
cu:send(s.."\n")
tmr.alarm(1, 60000, 1, function()
cu:send(s.."\n")
end)
end
run()