ESP8266的单独使用:
不通过AT指令,直接烧录代码。它本身也算一种微处理器,也能承担一部分简单计算。如果手上的ESP8266有比较多的接口的话,可以直接连传感器,而不需要再来一个单片机做辅助。
AT指令:
使用AT指令的目的是发送某种命令,从而控制单片机上连接的传感器。在使用AT指令方法的时候,不需要给ESP8266烧录代码。
例如,大部分AT指令教程的内容为:输入on使得Arduino上的LED灯亮,输off则反之。
一个普遍的过程:
1. 给Arduino烧录有如下特质的代码
** #include <SoftwareSerial.h>
**
SoftwareSerial ESP8266Serial(8, 9); // RX, TX
这里正是通过串口连上了ESP8266。
在代码中的 ESP8266Serial.print()
就都是向该模块输出了。
2. 进行AT指令操作
这一点我到现在都没特别清楚。网上信息纷繁复杂,各执一词,在此罗列一下。
首先是设置wifi模式。官方是这样说的:
1.搭载在路由器上(手机/PC直接连接到路由器,模块通过AT+CWJAP="SSID","PWD"
链接到路由器)
2.搭载在模块上(手机/PC连接到模块wifi上即Esp8266,模块不用设置)
如果让ESP8266作为服务器:
AT+CWMODE=3
AT+RST
AT+CIPMUX=1
AT+CIPSERVER=1
使用tcp调试助手连接。在助手中记得选择TCP Client的通讯模式。
如果让PC作为服务器:
AT+CWMODE=3
AT+RST
AT+CIPSTART="TCP","IDaddress",port
在助手中选择TCP Server。(这里面的地址和端口是PC的,原话是远程服务器IP地址)
如果想透传:
AT+CIPMUX=0
设置单连接
AT+CIPMODE=1
设置透传模式
以上。
然后输入设定的命令,比如on/off控制LED灯之类的。
ESP8266 拓展板
AT命令不能解决传感器数据–> ESP8266 --> 电脑这个过程,而且传达信息极其有限,所以实践中大家还是用方法1比较多。但是这就意味着每次改代码都得刷固件……而且本身传感器的接口有限,这时候就有诸多拓展板粉墨登场。
我在用Arduino Wemos D1 R2板,使用过程见下篇。