暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【原创技术分享】手机通过ESP8266模块和单片机通过局域网通讯

众智创新团队 2021-05-31
4678

手机通过ESP8266模块和单片机通过局域网通讯

手机通过ESP8266模块和单片机通过局域网通讯,实现手机发送信号给单片机,单片机接收信号控制一个LED灯,此技术文档共分为四大部分:

1、接线;

2、ESP8266模块调试;

3、手机APPTCP通讯程序;

4、单片机串口结构程序。


一、接线

我买的模块是ESP8266 ESP-01S

(如果没有TTL转串口的模块,也要顺便买一个这个模块,这个模块作用是用来给ESP8266模块发送指令)

接线方式为:

1.3V3接串口3.3V此处一定要接到3.3V上,如果接到5V引脚上,模块不工作,有些TTL转串口模块没有3.3V的引脚,买的时候要注意

2.EN引脚接到串口VCC引脚上或者5V引脚上都行

3.RXTX接到串口的TXRX引脚上,即叉接(RXTX分别是发送和接收引脚,所以要叉接)

4.GND接到串口的GND引脚上

5.其他引脚不用接

二、ESP8266模块调试,我们做的是TCP调试,ESP8266模块配置也是配置TCP服务器的程序。

串口调试助手百度网盘链接(永久有效)

链接:

https://pan.baidu.com/s/1Z0676e7GG2NI4j5P54Og3g

提取码:

1111

下载之后,把TTLUSB模块插到电脑上(电脑要安装CH340驱动程序!!!)

二、打开调试助手

1. 设置串口波特率为115200,然后打开串口,输入AT+RESTORE(初始化模块)点击发送(我已经调试好了,方便演示才输入这个指令,重新配置模块,读者买完之后是不需要这一步的,如果你想重新定义通讯方式,可以用这一步,读者只需要把波特率调到115200,打开串口,进行下一步就行

2.发送:“AT+RST”——复位(重启),如果返回乱码,就说明你线接的对,模块没有问题,串口配置没有错,也和单片机通讯上去了。

3.发送“AT+CWMODE=2”——配置模式

4.发送

AT+CWSAP_DEF="TCP_Server","12345678",5,4

配置ESP8266WIFI名字和WIFI密码;当然,这只是局域网(内网),手机连接上去是上不了互联网的"TCP_Server"WIFI名,12345678是密码。

5.发送AT+RST”——重启ESP8266模块,重启后前面的配置才生效。

6.发送“AT+CIPMUX=1”——开启多连接

7.发送“AT+CIPSERVER=1,8001”——开启服务器,设置端口号;端口号等会写手机程序的时候会用到,端口号需要看你买的模块支持的端口号。

8.  注:二到五步配置一次就行了,掉电重连后也不用配置,但是初始化要重新配置;第六步和第七步每次重启后或者断电重连后都要重新配置,配置完之后就要看一下有没有连接上去,当然,我们先要看一下自己是否配置正确,如果正确我们再编写手机程序,但是我们怎么看呢?

9.调试

9.1下载件,连接模块WIFI。

https://pan.baidu.com/s/1qZddJa8,这个是android手机网络调试助手,下载下来之后,安装到手机上。手机连接到ESP8266的模块的局域网,密码是第四步设置的密码

9.2 在软件里面选择TCP Client,连接到服务器的端口号为第七步设置的端口号,IP地址需要在调试助手发送“AT+CIFSR”——查询本机地址。点击连接,如果按钮变成断开,则连接成功。

9.3发送数据,手机调试助手分别发送1,2,3,4,电脑串口助手分别接收到+IPD0,1:1这就说明我们之前的配置是正确的。

10.上面的配置只是手机发送数据给ESP8266,通过电脑串口接收,现在要进行单片机和ESP8266的连接了。因为51单片机通讯的波特率为9600,所以ESP8266要与单片机进行连接通讯,就要先用电脑把ESP8266的波特率设置为9600,发送“AT+CIOBAUD=9600”——设置波特率。

11.重启一下,发送“AT+RST”——复位(重启)。

注:这里一定一定要把串口助手的波特率设置成9600!如果不设置,你是发送不了数据的。前面在第8步说过,每次重启后都要重复第六步和第七步,请读者重新安装六七步的顺序配置一下模块。

8266模块TCP通讯配置就到这里了,如果需要UDP通讯的,请留言问我。

手机代码——Android studioJava语言,TCP通讯

这里手机布局我就不细讲,我主要展示TCP通讯源码。

这个是我写的一个手机程序视频,一个2activity,其中一个登陆界面一个主界面,主界面承载2fragment,每个fragment中有4个按钮。

接下来,上代码!

1.登陆界面代码:

2.主界面部分代码:

3.fragment1界面部分代码:

4.fragment2界面部分代码:

5.主要讲一下socket通讯代码

5.1定义一个socket

5.2MainActivity中定义端口号和ip地址,调用socket

5.3 fragment中定义线程池,定义一个Handler——消息分发对象,readerwriter,读数据流和写数据流

按钮负责发送数据,

手机程序到这里就结束了。

四、单片机程序

在写程序之前,建议把单片机晶振换成11.0592MHz,这个晶振比较准,防止丢包。

这个是我自己写的代码:

TXRX接到单片机的RXTX引脚上

如果有更多的操作,参考代码:

效果展示:




文章转载自众智创新团队,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论