从Arduino发送串口到ESP8266-01

问题描述 投票:0回答:1

我想在Arduino Uno R3和Esp8266 Esp-01之间进行通信。在这种情况下,我想传达或想要从esp8266 esp-01向arduino uno发送数据(使用串行软件的字符串)。

问题是,如何在软件序列设置中插入RX和TX引脚,我尝试使用已提供的示例代码,但它不能。

我的代码如下

适用于ESP8266 ESP-01

#include <SoftwareSerial.h>
SoftwareSerial mhaUno(12, 12, false, 256);

void setup() {
  Serial.begin(9600);
  pinMode(0, OUTPUT);
}

void loop() {
  Serial.write("hello from esp");
  delay(1000);

  String IncomingString = "";
  boolean StringReady = false;

  while(mhaUno.available()){
    IncomingString = mhaUno.readString();
    StringReady = true;
  }

  if(StringReady) {
    if(IncomingString == "hello from uno") {
      digitalWrite(0, HIGH);
    } else {
      digitalWrite(0, LOW);
    }
  }
}

对于ARDUINO UNO R3

#include <SoftwareSerial.h>
SoftwareSerial esp8266(2,3); //RX, TX

void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);
}

void loop() {
  Serial.write("hello from uno");
  delay(1000);

  String IncomingString = "";
  boolean StringReady = false;

  while(esp8266.available()){
    IncomingString = esp8266.readString();
    StringReady = true;
  }

  if(StringReady) {
    if(IncomingString == "hello from esp") {
      digitalWrite(13, HIGH);
    } else {
      digitalWrite(13, LOW);
    }
  }
}

你可以帮我找一个问题吗?

谢谢^ _ ^

arduino esp8266 arduino-esp8266
1个回答
0
投票

该代码看起来像this Instructable,虽然有很多片段。在讨论具体细节之前,先做一些修正:

  1. 物理连接:你应该有一个分压器,从Uno的软件定义的TX到ESP的软件定义的RX(Uno具有5V高逻辑电平,而ESP是3.3V,当它的引脚驱动不高于它时,效果更好) 。
  2. 变量名称通常都是小写的 - upper标识类,如Serial,SoftwareSerial,String。

除此之外,我会尝试复制该示例的配置:

  1. 使用mhaUno.write()esp8266.write(),因为每个设备的软件定义引脚可能连接到另一个软件定义的引脚,而不是其他的默认引脚。目前,自定义TX引脚未使用。
  2. 如果情况并非如此,并且您确实打算从ESP的默认串行发送到Uno的SoftwareSerial,那么请尝试匹配两个库的波特率(如示例所示)。
  3. 否则,从3继续,在Uno上为TX和RX使用不同的引脚。
  4. SoftwareSerial constructor的文档没有提到构造函数的第四个参数,只是SoftwareSerial(rxPin, txPin, inverse_logic)。这个例子也没有;尝试没有它
  5. 串行线路上的单个意外字符将禁用通知LED;考虑要求一个特定的字符串将其关闭,以便像esp8266.write("hello from esp\n")(或println())这样无害的命令将其打开。更好的是,使用Serial将SoftwareSerial接收的内容打印到计算机终端,而不是依赖于闪烁。

你可以找到similar questions on the Arduino StackExchange

© www.soinside.com 2019 - 2024. All rights reserved.