找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4902|回復(fù): 0
收起左側(cè)

ESP8266 lua設(shè)置模塊開放熱點(diǎn)開啟TCP客戶端模式詳解

[復(fù)制鏈接]
ID:81424 發(fā)表于 2018-11-6 14:47 | 顯示全部樓層 |閱讀模式
本帖最后由 沙漠之痕 于 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é)束
1.png
手機(jī)連接上模塊開放的熱點(diǎn),但是不能上網(wǎng)
2.png
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.png
4.png
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é)束
5.png
6.png
7.png
8.png
發(fā)送其他指令,可以通過串口查看已經(jīng)接收到,但是不能控制繼電器
9.png

ESP8266 開放熱點(diǎn)TCP客戶端源碼.zip (3.11 KB, 下載次數(shù): 25)


交流QQ:1813763867
QQ群:607064330



回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表