四,ESP8266 TCP服务器

我要赶时间赶紧写完所有的内容....朋友的东西答应的还没做完呢!!!!!!!没想到又来了新的事情,,.......

配置模块作为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)

现在下进去测试

今天就先到这里,,,太晚了...........

时间: 2024-08-24 11:36:51

四,ESP8266 TCP服务器的相关文章

五,ESP8266 TCP服务器多连接

一些时间去准备朋友的元器件了... 接着写,,争取今天写完所有的文章,,因为答应了朋友下周5之前要做好朋友的东西 对于TCP大家在玩AT指令的时候有没有发现客户端最多连接5个,,,再连接就不行了?? 所以在用AT指令开发的时候单片机程序一定要记得清除多余的连接 现在看用LUA语言怎么做 直接先上菜 Init.lua gpio.mode(4,gpio.OUTPUT) gpio.mode(2,gpio.OUTPUT) gpio.write(4,1) tmr.alarm(0, 1000, 1, fun

六,ESP8266 TCP Client

今天不知道是不是让我姐挺失望.......很多时候都不知道自己努力的方向对不对,,以后能不能带给家人最美好的期盼...... Init.lua 没啥改变,,就改了一下加载Client.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, 3000, 0,

ALL-51单片机ESP8266学习-AT指令(ESP8266作为TCP客户端,连接自己制作的TCP服务器)

从这一节开始,以视频加源码的形式,后期视频和程序将放在链接中 资料链接 链接:https://pan.baidu.com/s/10MxI8-Q33-M_R2WEHqEi1A 密码:j1sz 14节:    51单片机ESP8266学习-AT指令(ESP8266作为TCP客户端,连接自己制作的手机TCP服务器,互相通信) 视频链接: 15节:    51单片机ESP8266学习-AT指令(ESP8266作为TCP客户端,连接自己制作的电脑TCP服务器,互相通信) 视频链接: 16节:    51单

C#网络编程系列文章(四)之TcpListener实现同步TCP服务器

原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 本文介绍 TcpListener 类提供一些简单方法,用于在阻止同步模式下侦听和接受传入连接请求. 可使用 TcpClient 或 Socket 来连接 TcpListener. 可使用 IPEndPoint.本地 IP 地址及端口号或者仅使用端口号,来创建 TcpListener. 可以将本地 IP 地址指定为 Any,将本

Netty系列(四)TCP拆包和粘包

Netty系列(四)TCP拆包和粘包 一.拆包和粘包问题 (1) 一个小的Socket Buffer问题 在基于流的传输里比如 TCP/IP,接收到的数据会先被存储到一个 socket 接收缓冲里.不幸的是,基于流的传输并不是一个数据包队列,而是一个字节队列.即使你发送了 2 个独立的数据包,操作系统也不会作为 2 个消息处理而仅仅是作为一连串的字节而言.因此这是不能保证你远程写入的数据就会准确地读取.举个例子,让我们假设操作系统的 TCP/TP 协议栈已经接收了 3 个数据包: 由于基于流传输

Windows 下的最简单的TCP服务器客户端

他们是短连接的,服务器接受客户端之后,马上发送一个消息,发送完以后立即将客户端断开掉,然后继续等待下一个连接. 使用Winsocket2必须要引用到的头文件和需要包含到的链接库文件: #include <WinSock2.h> #pragma comment( lib, "ws2_32.lib" ) 以下代码是Winsocket2的系统初始化和关闭的封装代码. class WinSocketSystem { public: WinSocketSystem() { int i

高性能、高并发TCP服务器(多线程调用libevent)

本文讲述的TCP服务器是模仿memcache中的TCP网络处理框架,其中是基于libevent网络库的. 主线程只处理监听客户端的连接请求,并将请求平均分配给子线程. 子线程处理与客户端的连接以及相关业务. 每个子线程有一个"连接"队列.每个"连接"有一个"反馈"队列. 先上个流程图,要上班了,以后再解释.代码以后再上··· 实现代码地址:http://download.csdn.net/detail/aillean/7521245

Nodejs创建TCP服务器

Nodejs创建TCP服务器 1.Nodejs提供了net模块给我们,所以我们创建TCP服务器很简单: 1 require('net').createServer(function(socket) { 2 // new connection 3 socket.on('data', function(data) { 4 // got data 5 }); 6 socket.on('end', function(data) { 7 // connection closed 8 }); 9 socke

一个TCP服务器和客户端示例-网络编程

创建了一个TCP时间戳服务器,并创建了对应的客户端程序,两者的通信都在同一台PC上实现(手边只有一台笔记本,sorry...) 1.TCP 服务器 简单解释一下: 利用最基本的socket模块实现, 总体的效果是客户端发送消息,服务器端对消息打上时间戳,并发送回客户端: HOST为空,也即默认为本机: TCP的套接字家族名称为AF_INET,套接字类型为SOCK_STREAM; 利用bind方法绑定地址,listen方法进行监听: while循环模拟了真实的服务器工作场景,也即永不停机的进行监听