標題: ESP8266 lua設置模塊開放熱點開啟TCP客戶端模式詳解 [打印本頁]
作者: 沙漠之痕 時間: 2018-11-6 14:47
標題: ESP8266 lua設置模塊開放熱點開啟TCP客戶端模式詳解
本帖最后由 沙漠之痕 于 2018-11-7 12:46 編輯
模塊連接路由器和不鏈接路由器直接開放熱點的區別在于,服務器的ip不同
1. 設置模塊工作在AP模式下開放wifi熱點
init.lua文件:
tmr.alarm(0,4000,0,function()
dofile("tcpclient.lua")
end)
init.lua文件結束
tcpclient.lua文件:
wifi.setmode(wifi.SOFTAP)
local apcfg={
ssid="ESP8266-open",
pwd="11223344"
}
wifi.ap.config(apcfg)
tcpclient.lua文件結束
1.png (119.75 KB, 下載次數: 55)
下載附件
2018-11-6 14:40 上傳
手機連接上模塊開放的熱點,但是不能上網
2.png (64.19 KB, 下載次數: 60)
下載附件
2018-11-6 14:41 上傳
2.手機連接上模塊wifi熱點, 然后用手機創建服務器,與連接路由器時相比服務器的ip改變;先讓客戶端在連接上服務器后再處理斷開連接事件。
init.lua文件:
tmr.alarm(0,4000,0,function()
dofile("tcpclient.lua")
end)
init.lua文件結束
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文件結束
服務器ip時手機連接,模塊wifi所分配的,要想查看分配的ip再重新去調整模塊連接服務器時的ip, 此方法與都去連接路由器相比麻煩了些;因為事先不知道手機的ip。
3.png (169.11 KB, 下載次數: 72)
下載附件
2018-11-6 14:42 上傳
4.png (104.22 KB, 下載次數: 60)
下載附件
2018-11-6 14:43 上傳
3. 手機連接模塊wifi熱點通過“close”關閉繼電器;“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文件結束
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文件結束
5.png (157.17 KB, 下載次數: 60)
下載附件
2018-11-6 14:44 上傳
6.png (220.41 KB, 下載次數: 67)
下載附件
2018-11-6 14:44 上傳
7.png (43.02 KB, 下載次數: 61)
下載附件
2018-11-6 14:45 上傳
8.png (636.92 KB, 下載次數: 52)
下載附件
2018-11-6 14:45 上傳
發送其他指令,可以通過串口查看已經接收到,但是不能控制繼電器
9.png (28.17 KB, 下載次數: 56)
下載附件
2018-11-6 14:46 上傳
交流QQ:1813763867
QQ群:607064330
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |