最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

ESP8266 WIFI 模块与 Arduino 串口通信实现远程控制

Arduino 少儿编程 2594浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

前几年,入手了一块 ESP8266 的板子。当时也没想太多,反正买了一大包东西,感觉这个好便宜,顺手就拍下了。。。
后来几经调试。又是连接串口,又是查询 AT 指令,觉得很麻烦。
最主要的问题,还是在于买了盗版货,不支持固件更新。试了无数遍,很气。索性放下,去搞别的了。

ESP8266 WIFI 模块与 Arduino 串口通信实现远程控制
ESP8266模块实图.jpg

最近比较闲,重新拾起来。既然无法刷入固件,引出的 GPIO 又少,不如配合 Arduino,做个支持多路连接的“蓝牙”得了。当个远程遥控,也算简单实用。

引脚分布图

ESP8266 WIFI 模块与 Arduino 串口通信实现远程控制
ESP8266模块引脚分布图.png

至于线路连接,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 引脚(连接时注意蜂鸣器的极性,不要接反)。


实物图

ESP8266 WIFI 模块与 Arduino 串口通信实现远程控制
ESP8266实物图.jpg

上代码

#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 命令列表及功能解释,可参考网络上或商家提供的文档)
本示例中用到的命令为:

  1. AT+CWMODE=2
    设置工作模式为 AP 模式(即作为路由器,可供手机、笔记本等客户端连接)
  2. AT+CIPMUX=1
    启用多连接
  3. AT+CIPSERVER=1,80
    启动 TCP 服务器,IP地址默认,端口为80

配置完成后,即可通过手机客户端进行连接并遥控。(手机需预先装好远程控制 APP。下载链接 点我下载Arduino Remote; 提取密码:www.starky.xin)

ESP8266 WIFI 模块与 Arduino 串口通信实现远程控制
手机客户端链接示意图.jpg

(其中的 IP 地址可以通过在串口输入 AT+CIFSR 命令获取。也可以直接在手机端查看 WIFI 连接信息,填写其中的网关即可)


以上步骤完成后,便可直接通过手机 APP 控制蜂鸣器了(当然,稍稍添些代码,也可以加入更多元件,不赘述)。

演示视频

视频地址1
视频地址2

您必须 登录 才能发表评论!