四,ESP8266 TCP服務器
阿新 • • 發佈:2017-09-15
src 測試 今天 stat gist ati www config ted 不過呢怕有所遺漏,就兩篇文章同時參考吧
我要趕時間趕緊寫完所有的內容....朋友的東西答應的還沒做完呢!!!!!!!沒想到又來了新的事情,,.......
配置模塊作為TCP服務器然後呢咱們連接服務器發指令控制繼電器吸合和斷開
控制的指令呢咱就配置成----
http://www.cnblogs.com/yangfengwu/p/7513097.html
這篇文章最後的指令,,畢竟最終咱們就要做成那樣子.....這樣的話8266就應該使用的非常順手和輕松了
可以看一下這篇文章,,初略看一下就行,這是以前寫的代碼不怎麽好,,,這篇文章會詳細的解釋的
http://www.cnblogs.com/yangfengwu/p/6407727.html#3771010
新建一個文件就叫wifi.lua
咱們呢就先做成一個客戶端連接的,,然後連接模塊的無線控制繼電器,,,然後在做成多個連接的,,然後呢再設置成連接路由器,,當然或許親們的可以遠程控制哈
android客服端+eps8266+單片機+路由器之遠程控制系統 只看路由器設置部分就好了,,程序這次咱用Lua開發的,,要比那好的多....
我的init.lua
gpio.mode(4,gpio.OUTPUT) gpio.mode(2,gpio.OUTPUT) gpio.write(4,1) tmr.alarm(0, 1000, 1, function() gpio.write(4,1-gpio.read(4)) end) tmr.alarm(1, 1000, 0, function() dofile("wifi.lua") end)
我的wifi.lua
cfg={} cfg.ssid="Hellow8266" cfg.pwd="11223344" wifi.ap.config(cfg) TCPSever=net.createServer(net.TCP,28800) TCPSever:listen(8080,function(socket) socket:on("receive",function(socket,data)if data == "++MD610" then gpio.write(2,1) end if data == "++MD600" then gpio.write(2,0) end end) socket:on("disconnection",function(sck,c) socket = nil end) end)
現在可以測試一下
模塊內部默認的IP是192.168.4.1
大晚上的光線有點暗...照的不是很清晰,,還是說手機不好..................
下面的解釋呢就照搬以前的了
對了
點擊這個按鈕是不管來的,這些按鈕數據哈我再後面加了CRC16校驗.....以後用到CRC再說
現在讓模塊連接路由器,,,這樣方便些
現在的wifi.lua
wifi.setmode(wifi.STATIONAP) cfg={} cfg.ssid="Hellow8266" cfg.pwd="11223344" wifi.ap.config(cfg) apcfg={} apcfg.ssid="qqqqq" apcfg.pwd="11223344" wifi.sta.config(apcfg) wifi.sta.connect() TCPSever=net.createServer(net.TCP,28800) TCPSever:listen(8080,function(socket) socket:on("receive",function(socket,data) if data == "++MD610" then gpio.write(2,1) socket:send("relay=1") end if data == "++MD600" then gpio.write(2,0) socket:send("relay=0") end end) socket:on("disconnection",function(sck,c) socket = nil end) end) printip = 0 wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T) printip = 0 end) wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T) if printip == 0 then print("+IP"..T.IP) end printip = 1 end)
還有兩個沒有連接上路由器和連接上路由器的事件函數
現在呢我們讓網絡的數據發送到串口,,,,,串口的數據發送到網絡
現在的wifi.lua
wifi.setmode(wifi.STATIONAP) cfg={} cfg.ssid="Hellow8266" cfg.pwd="11223344" wifi.ap.config(cfg) apcfg={} apcfg.ssid="qqqqq" apcfg.pwd="11223344" wifi.sta.config(apcfg) wifi.sta.connect() TCPSever=net.createServer(net.TCP,28800) TCPSever:listen(8080,function(socket) socket:on("receive",function(socket,data) uartsocket = socket uart.write(0,data) if data == "++MD610" then gpio.write(2,1) socket:send("relay=1") end if data == "++MD600" then gpio.write(2,0) socket:send("relay=0") end end) socket:on("disconnection",function(sck,c) socket = nil uartsocket = nil end) end) uart.on("data",0,function(data) if uartsocket ~= nil then uartsocket:send(data) end end, 0) printip = 0 wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T) printip = 0 end) wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T) if printip == 0 then print("+IP"..T.IP) end printip = 1 end)
現在下進去測試
今天就先到這裏,,,太晚了...........
四,ESP8266 TCP服務器