本帖最后由 沙漠之痕 于 2018-11-7 12:46 編輯
模塊連接路由器和不鏈接路由器直接開放熱點(diǎn)的區(qū)別在于,服務(wù)器的ip不同
1. 設(shè)置模塊工作在AP模式下開放wifi熱點(diǎn) init.lua文件: tmr.alarm(0,4000,0,function() dofile("tcpclient.lua") end) init.lua文件結(jié)束 tcpclient.lua文件: wifi.setmode(wifi.SOFTAP) local apcfg={ ssid="ESP8266-open", pwd="11223344" } wifi.ap.config(apcfg) tcpclient.lua文件結(jié)束 手機(jī)連接上模塊開放的熱點(diǎn),但是不能上網(wǎng) 2.手機(jī)連接上模塊wifi熱點(diǎn), 然后用手機(jī)創(chuàng)建服務(wù)器,與連接路由器時(shí)相比服務(wù)器的ip改變;先讓客戶端在連接上服務(wù)器后再處理斷開連接事件。 init.lua文件: tmr.alarm(0,4000,0,function() dofile("tcpclient.lua") end) init.lua文件結(jié)束 tcpclient.lua文件: wifi.setmode(wifi.SOFTAP) local apcfg={ ssid="ESP8266-open", pwd="11223344" } wifi.ap.config(apcfg)
tmr.alarm(1,1000,1,function() TCPClient = net.createConnection(net.TCP,0) TCPClient:connect(8080,"192.168.4.2") TCPClient:on("receive", function(sck, data) uart.write(0,data) end) TCPClient:on("connection", function(sck, c) print("Connection") tmr.stop(1) TCPClient:on("disconnection", function(sck, c) print("Disconnection") tmr.start(1) end) end) end) tcpclient.lua文件結(jié)束 服務(wù)器ip時(shí)手機(jī)連接,模塊wifi所分配的,要想查看分配的ip再重新去調(diào)整模塊連接服務(wù)器時(shí)的ip, 此方法與都去連接路由器相比麻煩了些;因?yàn)槭孪炔恢朗謾C(jī)的ip。 3. 手機(jī)連接模塊wifi熱點(diǎn)通過“close”關(guān)閉繼電器;“open“打開繼電器 init.lua文件: RELAY_Pin = 1 gpio.mode(RELAY_Pin, gpio.OUTPUT) gpio.write(RELAY_Pin,0) tmr.alarm(0,4000,0,function() dofile("tcpclient.lua") end) init.lua文件結(jié)束 tcpclient.lua文件: LinkStat = 0 TCPClient = nil ClientReceData = "" ClientReceCnt = 0 ClientReceDataStat = true wifi.setmode(wifi.SOFTAP) local apcfg={ ssid="ESP8266-open", pwd="11223344" } wifi.ap.config(apcfg) tmr.alarm(1,1000,1,function() if LinkStat == 0 then TCPClient = net.createConnection(net.TCP,0) TCPClient:connect(8080,"192.168.4.2") TCPClient:on("receive", function(sck, data) ClientReceData = ClientReceData..data ClientReceCnt = 0 ClientReceDataStat = true end) TCPClient:on("connection", function(sck, c) LinkStat = 1 print("Connection") tmr.stop(1) TCPClient:on("disconnection", function(sck, c) LinkStat = 0 print("Disconnection") tmr.start(1) end) end) end end) tmr.alarm(2,10,1,function() if ClientReceDataStat==true then ClientReceCnt=ClientReceCnt+1 if ClientReceCnt>=10 then --receive finsion if ClientReceData=="open" then gpio.write(RELAY_Pin,1) end if ClientReceData=="close" then gpio.write(RELAY_Pin,0) end uart.write(0,ClientReceData) ClientReceData = "" ClientReceCnt = 0 ClientReceDataStat = false end end end) tcpclient.lua文件結(jié)束 發(fā)送其他指令,可以通過串口查看已經(jīng)接收到,但是不能控制繼電器
交流QQ:1813763867 QQ群:607064330
|