美文网首页玩转Arduinoarduino scratch创客教育我爱编程
ESP8266 WIFI 模块与 Arduino 串口通信实现远

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

作者: rollingstarky | 来源:发表于2017-08-24 01:38 被阅读545次

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

ESP8266模块实图.jpg

最近比较闲,重新拾起来。既然无法刷入固件,引出的 GPIO 又少,不如配合 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实物图.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

手机客户端链接示意图.jpg

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


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

演示视频

视频地址1
视频地址2

相关文章

网友评论

  • 小紅紅:支持博主,文章都很有益,受益匪浅

本文标题:ESP8266 WIFI 模块与 Arduino 串口通信实现远

本文链接:https://www.haomeiwen.com/subject/xyfsdxtx.html