ESP8266 wiFI 可以用作连接周边的无线设备,也可以作为发送器供其他设备连接通常在产品中,我们经常用作无线的接收使用,也可能会用作在线升级使用等。
说点题外话:虽然在线升级已经较为成熟,但我不推荐在一些重要的产品中推荐这种在线OTA升级,像汽车、智能家居等这种代码直接由软件架构生成的底层逻辑代码类型。因为如果,底层结构或者一些代码逻辑被破解之后,很容易造成安全隐患,这种事情发生过不少,而且这种人,是最难被抓捕的。除非哪天,所有的系统网络是被破解或者很难针对的算法出现以及普及。我认为才是安全的。
1- ESP8266 初体验
esp8266是一种无线网络设别,内部集成常用的网络配置,只要不是太精密的产品,是都可以应用的。同时他本身就是一个MCU,在没有其他外在MCU的情况下也是可以开发使用的。当然,这只是其中一款而已。具体的产品特性如下:
我们主要是讲如何使用,原理在这里不在多说,只需要数据手册就可以了。
1.1 硬件连接
我们在电脑上使用USB转串口进行连接。具体的连接方式请根据自己手中的设备进行连接,几乎所有的无线通信都是使用AT命令来进行操作的。连接如下图:
就是上面这个逻辑图。
然后我们连接好之后根据手册看看会返回那些有用的信息
1.2 尝试
1 AT指令
我们在发送区发送AT。如果得到OK,那么说明是可以正常通信的。
2 AT固件版本
发送AT+GMR
3 软件重启
这种会重启模块,打印出OK后会相关的配置信息。
4重置出厂设置
1.3 通信测试
接下来我们进行一些通信测试,下面这些是写代码的时候常常用到的指令
1.3.1 模式配置
TCP Server 为 AP 模式,TCP Client 为 Station 模式。
1-配置WIFI模式:
其他模式是一样的这里是两种模式都配置了。
输入:AT+CWMODE=3
1.3.2-连接路由器
AT+CWJAP="SSID","password"
下面这个图说明连接成功了,如果没有请检查密码和SSID,请注意中间不能有空格
1.3. 3-查询 ESP8266 设备的 IP 地址
AT+CIFSR
把下面这个记录下来,在写代码的时候需要,后面会总结。
[21:44:56.358]收←◆AT+CIFSR
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"be:dd:c2:b3:a0:f1"
+CIFSR:STAIP,"192.168.0.102"
+CIFSR:STAMAC,"bc:dd:c2:b3:a0:f1"
4. ESP8266 设备作为 TCP client 连接到服务器
在这里我们需要一个服务,如下:
然后我们对其进行连接:下面这种就是成功了。如果出现 error CLOSED,需要检查是否在同一局域网下,以及要把这个串口工具添加到入站规则同时添加8080这个端口(具体的请百度)
如果建立成功就可以通信了,如下图:
下面这些才是我们需要的:
AT // 1. 配置 WiFi 模式AT+CWMODE=3 // softAP+station mode // 2. 连接路由器AT+CWJAP="SSID","password" // SSID and password of router // 3. 查询 ESP8266 设备的 IP 地址AT+CIFSR // 响应[21:44:56.358]收←◆AT+CIFSR+CIFSR:APIP,"192.168.4.1"+CIFSR:APMAC,"be:dd:c2:b3:a0:f1"+CIFSR:STAIP,"192.168.0.102"+CIFSR:STAMAC,"bc:dd:c2:b3:a0:f1"OK // 4. ESP8266 设备作为 TCP client 连接到服务器AT+CIPSTART="TCP","192.168.0.107",8080 //protocol, server IP and port // 5. ESP8266 设备向服务器器发送数据AT+CIPSEND=4 // set date length which will be sent, such as 4 bytes >test // enter the data, no CR // 响应Recv 4 bytesSEND OK // 6. 当 ESP8266 设备接收到服务器器发来的数据,将提示如下信息:+IPD,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx
如何实现AT命令的编写,以后在说,这段时间太忙了。