唯倚社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1184|回复: 8

[学习教程] ESP8266设置为TCP客户端模式控制继电器开关

[复制链接]

127

主题

293

帖子

4491

积分

LV3

Rank: 3Rank: 3

积分
4491

最佳新人

发表于 2017-10-13 11:59:52 | 显示全部楼层 |阅读模式

轻松玩转社区

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 MartinGarrix 于 2017-10-13 12:07 编辑

ESP8266设置为TCP客户端模式

本教程配送ESP8266源码
实现原理及主要功能说明

       首先我们既然要将ESP8266设置为TCP客户端模式,我们查看ESP8266数据手册可以知道ESP8266有三种工作模式: station 模式 soft-AP模式 station+soft-AP模式。可以看出我们的station模式就是TCP8266客户端模式。此次我们整体功能为当模块设置为TCP服务模式,那么我们可以用手机或者电脑PC去连接ESP8266模块,连接上之后我们向模块发送相应数据,当ESP8266收到服务端消息时对继电器进行操作。

编译环境:ESP_IDE                  

编译语言:C                             

硬件模块:WiFi继电器  WIOT-1模块

通信方式:串口      TCP


AndroidAPP应用名称:有人网络助手



主要代码说明
首先我们打开我们的ESP8266工程,找到我们user_main.c找到我们的user_init函数,这个函数我们主要初始化了串口,并设置了ESP8266模块的工作函数

TY6[%X@}XJCON1VGXJRYTLW.png

这一句就是我们设置的工作方式。然后我们打开TCPClient.c文件夹,我们可以看到tcp_client_connect函数里我们存放了我们目标IP地址及TCP服务器的端口。

{YC5F$CCV1VPKQ9`S{)13X4.png

此次函数我们存放的目标IP为我们电脑的IP,那么如何查看我们的电脑IP呢。

下面我们教大家如何查看自己电脑的IP:

使用Windows+R键打开“运行”窗口,然后输入CMD进入命令提示窗口

@K}_KWXRP`FMO1X5_$TN29G.png

进入命令窗口之后,输入:ipconfig/all 回车即可看到整个电脑的详细的IP配置信息

B(X_WCA[3ZC1W88S6R_HB@B.png

user_tcp_recv_cb为TCP接收函数void *arg : 回调函数的参数,网络传输结构体 espconn 指针。pdata为TCP接收函数指针,len为TCP接收数据的长度。在这个函数你们我们主要对TCP发送过来的数据进行了判断处理,在相对应的控制指令我们对继电器进行了控制。

9X$P98%}5TC65FA0S0FTO09.png

在这里我们定义了数据协议数据包头为0XFF  0X01 第3个数据才是控制代码,0X01为开继电器,0X00为关继电器。当我们收到开或者关的指令时,模块会对继电器进行操作的同时会将模块的ID发送上去,发送到服务器的数据包括包头0XFF  0X01  控制代码  模块ID。

一般普通的用户时没有个人服务器的,那么此时我们就需要通过软件模拟服务器,本次我们使用的软件为周立功的TCP&UDP测试工具软件。


点击我们的软件进去之后点击创建服务器,设置端口为9074

M59%3%Z}4UCWNDQJ7SXDF)5.png

然后在点击启动服务器。


9(L00D0N~4IMM]U0SF)NV)J.png


启动后,如果你的模块下载的固件当中的IP和端口号都对的上,那么大约5秒左右模块就会连上你电脑模拟的服务器。

J1}DN{XUP0CFR%XC20%1I}8.png

这就代表你的模块连接上来了。

那么下面我们要做的就是发送相应的数据进行控制继电器的开关。

`QI]UK1BUNYMZ{A{O%5]EHP.png

记住我们要勾选按16进制然后在发送区输入相应协议数据点击发送即可控制继电器开关。与此同时我们在接收区也勾选16进制,可以看到我们收到的数据有包头  控制代码  模块ID,模块ID为00 3e 7c fd.
回复可见百度云分享代码链接



游客,如果您要查看本帖隐藏内容请回复


[发帖际遇]: MartinGarrix 乐于助人,奖励 8 贡献. 幸运榜 / 衰神榜

33

主题

160

帖子

434

积分

版主

Rank: 7Rank: 7Rank: 7

积分
434
发表于 2017-10-13 13:05:01 | 显示全部楼层
微博的常用语
回复

使用道具 举报

21

主题

148

帖子

1143

积分

超级版主

Rank: 8Rank: 8

积分
1143

最佳新人

发表于 2017-10-13 13:57:08 | 显示全部楼层
早知道前世的五百次回眸,能换来今生的与你相遇。我就该把头甩断,来换这一辈子与
回复

使用道具 举报

31

主题

151

帖子

812

积分

版主

Rank: 7Rank: 7Rank: 7

积分
812
发表于 2017-10-13 13:57:29 | 显示全部楼层
楼主,我这人不太会说话,要是我说错了话,你特么来咬我啊!
回复

使用道具 举报

31

主题

151

帖子

812

积分

版主

Rank: 7Rank: 7Rank: 7

积分
812
发表于 2017-10-13 14:17:51 | 显示全部楼层
无论是多么无聊的帖子我都会去的
回复

使用道具 举报

3

主题

122

帖子

426

积分

版主

Rank: 7Rank: 7Rank: 7

积分
426
发表于 2017-10-13 14:25:00 | 显示全部楼层
很黄很暴力
回复

使用道具 举报

0

主题

3

帖子

35

积分

LV1

Rank: 1

积分
35
发表于 2017-12-21 01:02:17 | 显示全部楼层
看下如何操作
回复

使用道具 举报

2

主题

4

帖子

70

积分

LV1

Rank: 1

积分
70
发表于 2017-12-28 09:39:18 | 显示全部楼层
图挂了???为啥看不到图
[发帖际遇]: wx8336926 在论坛发帖时没有注意,被小偷偷去了 2 E币. 幸运榜 / 衰神榜
回复

使用道具 举报

1

主题

6

帖子

58

积分

LV1

Rank: 1

积分
58
发表于 2018-2-7 16:13:11 | 显示全部楼层

微博的常用语
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|weiecn ( 湘ICP备14002058号 )

GMT+8, 2018-5-25 20:47 , Processed in 0.098731 second(s), 11 queries , Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表