Arduino与ESP8266-01s模块通讯点灯

前言

           网上方法繁多,各有各的不同,本文章为方便新手上手直接用最简单的点灯展示,关于ESP8266-01s的AT指令类就上网搜有很多这就不多讲了。新的模块是自带出厂固件,若是需要刷固件可参考上一篇文章51接ESP8266-01s模块通讯点灯

接线

ESP-01SArduino
VCC3.3V
GNDGND
EN3.3V
TXRX
RXTX

二、ESP8266-01S接Arduino

         注意Arduino烧录文件的时候需要拔掉TX和RX,不然会冲突无法烧录,烧录完成后插回去,然后按下复位键即可。

三、所用到AT指令

AT+CWMODE=2

AT+CWSAP="8266","123456789",1,3

AT+CIPMUX=1

AT+CIPSERVER=1,8080

四、具体流程

AT指令部分

方法一

可像51单片机一样用USB转TTL接ESP82660-01s在用串口助手发送

AT+CWMODE=2

AT+CWSAP="8266","123456789",1,3 

这两条即可,因前两条可不会被ESP82660-01s断电重置掉后两条会被重置所以代码发即可。

方法二

上传完代码后可直接在Arduino串口这输入前两条代码,后两条按下复位键自动发送

因NL和CR模式的格式,所以会看到些乱码但是不影响正常发送出去的指令。

 

烧录

切记上传时需要吧RX和TX拔掉,上传成功后插回按下复位键即可。

 代码

#include <SoftwareSerial.h>

SoftwareSerial mySerial(13,12); //(13(RX),12(TX))接ESP8266的(TX,RX)
String comdata;

void setup() {
  pinMode(11,OUTPUT);

  Serial.begin(9600);
  while (!Serial) {
      
  }
  
  Serial.println("Hello World");
  mySerial.begin(115200);

 
  mySerial.println("AT+CIPMUX=1");//向8266发送的指令
  delay(1000);
  mySerial.println("AT+CIPSERVER=1,8080");
}

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串口这边可以看到信息,网络中的无线设备发送到ESP-01S的数据信息固定格式+IPD,<客户ID>,<信息长度>:<信息内容>。切记Arduino串口这边右下角要改为NL和CR模式,和波特率9600。

  • 2
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值