前几年,入手了一块 ESP8266 的板子。当时也没想太多,反正买了一大包东西,感觉这个好便宜,顺手就拍下了。。。
后来几经调试。又是连接串口,又是查询 AT 指令,觉得很麻烦。
最主要的问题,还是在于买了盗版货,不支持固件更新。试了无数遍,很气。索性放下,去搞别的了。
最近比较闲,重新拾起来。既然无法刷入固件,引出的 GPIO 又少,不如配合 Arduino,做个支持多路连接的“蓝牙”得了。当个远程遥控,也算简单实用。
引脚分布图
至于线路连接,Fritizing 中没有找到这种型号的模块图,就不上图了(懒得自己做,也不会)。
本示例中 USB转TTL 不需要用到,WIFI模块的运行参数可以通过 Ardunio 的串口进行配置。
连接时,按照 WIFI 模块的工作模式来接线。
即 GND 接 Arduino 的 GND ,
VCC 和 CH_PD 接 Arduino 的 3.3V 输出。
UTXD 和 URXD分别接 Arduino 的 13和12引脚
(即程序中由 SoftwareSerial 定义的 RX 和 TX)。
用于测试的有源蜂鸣器接在 Arduino 的 11 引脚(连接时注意蜂鸣器的极性,不要接反)。
实物图
上代码
#include <SoftwareSerial.h>
SoftwareSerial mySerial(13, 12);
String comdata;
void setup() {
pinMode(11,OUTPUT);
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Hello World");
mySerial.begin(115200);
mySerial.println("AT+GMR");
}
void loop() {
while (mySerial.available() > 0)
{
comdata += char(mySerial.read());
delay(2);
}
if (comdata.length() > 0)
{
comdata.trim();
Serial.println(comdata);
if (comdata.endsWith("A")){
digitalWrite(11,HIGH);
Serial.println("Buzz ON");
}
if (comdata.endsWith("a")){
digitalWrite(11,LOW);
Serial.println("Buzz OFF");
}
comdata = "";
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
调试
程序上传成功后,打开 Arduino IDE 的串口调试窗口。
通过 AT 命令对 WIFI 模块进行配置。(详细的 AT 命令列表及功能解释,可参考网络上或商家提供的文档)
本示例中用到的命令为:
- AT+CWMODE=2
设置工作模式为 AP 模式(即作为路由器,可供手机、笔记本等客户端连接) - AT+CIPMUX=1
启用多连接 - AT+CIPSERVER=1,80
启动 TCP 服务器,IP地址默认,端口为80
配置完成后,即可通过手机客户端进行连接并遥控。(手机需预先装好远程控制 APP。下载链接 点我下载Arduino Remote; 提取密码:www.starky.xin)
(其中的 IP 地址可以通过在串口输入 AT+CIFSR 命令获取。也可以直接在手机端查看 WIFI 连接信息,填写其中的网关即可)
以上步骤完成后,便可直接通过手机 APP 控制蜂鸣器了(当然,稍稍添些代码,也可以加入更多元件,不赘述)。