嵌入式技术
之前在玩ESP8266-01,把学习的经验写出来让大家共同学习。
首先,你要有一个ESP8266模块,当然,如果你买的是模块,ESP8266的模块竟然有十几种,大概有这么几个公司做它的模块,首先是AI think,然后是什么WROOF,这第二个不知是啥,大概就是espressif的官方吧,卖的不多。不过淘宝大部分都是AI THINK的。
这是ESP8266的接线图
ESP8266默认的固件是使用AT指令来控制的,当进入AT指令模式以后上电就会出现如下一堆乱码:
但是最后会有ready表示启动成功。需要注意的是,ESP8266工作电压为3.3V。波特率一般为115200。
ESP8266有三种工作模式:
1.Station (客户端模式)
2.AP (接入点模式)
3.Station+AP (两种模式共存)
就是说模块可以当成一个设备(client)连接区域网内的路由,也可以设置成是一个路由(sever),也可以既作为局域网里面的client同时又是其他client的sever。
下面我们可以尝试一下配置ESP8266的指令(注意:每条AT指令后面都要加一个回车键再发送!!!输入用串口软件输入,相当于把电脑想象成单片机来用。):
一、先玩玩AP(sever)模式
1.输入:AT+CWMODE=2
响应:OK
说明:指令原型为:AT+CWMODE=;其中:1-Station模式,2-AP模式,3-AP兼Station模式。
2.输入:AT+RST
响应: OK
说明:配置好模式后需要重启生效。
3.输入:AT+CWMODE?
响应:+CWMODE:2
OK
说明:这条指令可以不要,这是查询当前模式的指令,模式返回是2,说明是AP模式。
4.输入:AT+CWSAP="ESP8266","0123456789",11,0
响应:OK
说明:指令原型为:AT+ CWSAP=,,, ;其中:字符串参数,接入点名称;:字符串参数,密码最长64字节,ASCII;:通道号;< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK。
然后现在就可以在你的手机或者是电脑通过无线网卡连接到ESP8266上了。
5.输入:AT+CIPMUX=1
响应:OK
说明:开启多连接模式,因为只有在开启多连接模式的时候才能开启服务器模式。注意:透传只能在单连接模式下进行。
6.输入:AT+CIPSERVER=1,8080
响应:OK
说明:设置端口为8080。
最后,我们就可以通过网络调试助手来通过“TCP Client”模式下添加“IP:192.168.4.1(模块默认的IP),端口8080(第6步设置的)”值得一提的是,ESP8266当服务器的时候,客户端如果没有数据传输,隔一段时间会自动断开连接,可通过AT+CIPSTO= 命令设置超时时间(说明: :服务器超时时间,0~2880,单位为s)。
二、再玩玩Station(client)模式
1.输入:AT+CWMODE=1
响应:OK
说明:指令原型为:AT+CWMODE=;其中:1-Station模式,2-AP模式,3-AP兼Station模式。
2.输入:AT+RST
响应: OK
说明:配置好模式后需要重启生效。
3.输入:AT+CWMODE?
响应:+CWMODE:1
OK
说明:这条指令可以不要,这是查询当前模式的指令,模式返回是1,说明是Station模式。再看电脑或者手机wifi连接窗口,刚才的热点已经消失了,说明已经把模式转换为了客户端模式。
4.输入:AT+CWLAP
响应:+CWLAP:(4,"呭摜",-84,"78:eb:14:f3:9c:1a",1)
+CWLAP:(4,"509509",-53,"20:dc:e6:d0:3b:3c",1)
+CWLAP:(4,"bing2014",-73,"ec:88:8f:63:40:d4",1)
+CWLAP:(3,"瀵嗙爜鏄?883125",-80,"7e:2f:68:6b:df:5e",11)
OK
说明:可以让模块搜索周围的信号了,列出可以连接的热点(中文显示为乱码)。
5.输入:AT+CWJAP="509509","ldzldz509"
响应:OK
说明:指令原型为:AT+CWJAP=,),ssid就是wifi的名字,pwd就是wifi的密码。
6.输入:AT+CWJAP?
响应:+CWJAP:”509509”
OK
说明:这条指令可以不要,这是查询一下当前连接的AP。
7.输入:AT+CIFSR
响应:192.168.1.104
OK
8.输入:AT+CIPSTA_CUR=”192.168.6.100”,"192.168.6.1","255.255.255.0"
响应:OK
说明:这条指令可以不要,这是分配固定ip。
说明:通过路由器查看下模块的IP地址。如果模块之前我们设置成了AP和Station共存模式,则会出现两个IP,上面的APIP是作为无线AP的IP地址。下面的STAIP是它作为客户端从路由器获取到的IP 地址。
ESP8266是有寄存器的,所以即使重启连接信息也不会丢失,重启后再查询,发现会自动连接。使用电脑ping一下这个ip,ip是可以ping通的,说明连接正常。
C:\Users\Administrator>ping 192.168.1.104
正在 Ping 192.168.1.104 具有 32 字节的数据:
来自 192.168.1.104 的回复: 字节=32 时间=65ms TTL=255
来自 192.168.1.104 的回复: 字节=32 时间=95ms TTL=255
来自 192.168.1.104 的回复: 字节=32 时间=102ms TTL=255
来自 192.168.1.104 的回复: 字节=32 时间=18ms TTL=255
192.168.1.104 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 18ms,最长 = 102ms,平均 = 70ms
通过路由器管理界面查看到模块的MAC地址为:18-FE-34-9C-8B-9D
可以调整一下路由器的IP分发策略,让这个mac地址获得固定的ip,这样每次连接路由器之后就不用查看ip了。配置后提示要重启路由器才生效,没关系以后有时间再重启。
8.输入:我们用来调试的这台电脑(电脑也需连接同一个路由器)上建立一个TCP服务器,然后用我们刚刚连接到路由器的ESP8266模块连接到我们建立的这个TCP服务器上,然后在这个模块与服务器之间转输数据。用到的工具是网络助手NetAssist.exe,运行后在网络协议类型:TCP Server ,然后点“连接”按扭,成为一台TCP服务器。
9.输入:AT+CIPSTART="TCP","192.168.1.100",8080
响应:CONNECT
OK
说明:192.168.1.100为服务器IP地址;8080为端口。
10.输入:AT+CIPSEND=4
响应:OK
说明:意思是发送四个字节的数据。
11.输入:ABCD
响应:SEND OK
说明:NetAssist会收到ABCD四个字母。
这里他以十六进制显示出来了。
12.把网络助手的“连接对象”选择成我们的模块IP地址,在下面输入:CDEFG,点发送,会在串口工具收到+IPD,5:CDEFG。意思是接收到的数据长度为5个字节,CDEFG为数据内容。
三、Station(client)模式下与手机通信
1.输入:AT+CWMODE=3
响应:OK
说明:指令原型为:AT+CWMODE=;其中:1-Station模式,2-AP模式,3-AP兼Station模式。
2.输入:AT+RST
响应: OK
说明:配置好模式后需要重启生效。
3.输入:AT+CWMODE?
响应:+CWMODE:3
OK
说明:这条指令可以不要。
4.输入:AT+CWSAP="ESP8266","0123456789",11,0
响应:OK
说明:指令原型为:AT+ CWSAP=,,, ;其中:字符串参数,接入点名称;:字符串参数,密码最长64字节,ASCII;:通道号;< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK。
然后现在就可以在你的手机或者是电脑通过无线网卡连接到ESP8266上了。
打开手机上的有人网络助手,TCP server→配置→激活→能看到此时手机的IP和端口号,要记下,下面要用。
5.输入:AT+CIPMODE=1
响应:OK
说明:开启透传模式。
6.输入:AT+CIPMUX=0
响应:OK
说明:开启单路模式。
7.输入:AT+CIPSTART="TCP","192.168.4.2",8080
响应:CONNECT
OK
说明:192.168.4.2为服务器IP地址;8080为端口。填刚才记下的手机IP和端口号
这时手机已经能向模块发信息了,但模块不能发。
8.输入:AT+CIPSEND
响应:OK
说明:退出透传模式。
全部0条评论
快来发表一下你的评论吧 !