我的手机的蓝牙输出未在 ESP32 上正确评估

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

此代码应该使 ESP32 的内部 LED 打开/关闭,而不是 LED 只闪烁(这可能只是确认 ESP 收到输出或代码)。 ESP32 和我的智能手机之间的连接是通过“串行蓝牙终端”(在 Google Playstore 中找到的应用程序)完成的。

#include "BluetoothSerial.h"
 
BluetoothSerial SerialBT;
 
void setup() {
  Serial.begin(115200);
 
  if(!SerialBT.begin("ESP32")){
    Serial.println("An error occurred initializing Bluetooth");
  }
}
 
void loop() {

 while(SerialBT.available()){
    Serial.println(SerialBT.read()); 
  }
  delay(50);
  
  if (Serial.available()) { // if there is data coming
    String command = Serial.readStringUntil('\n'); // read string until newline character

    if (command == "ON") {
      digitalWrite(LED_BUILTIN, HIGH); // turn on LED
      Serial.println("Turn LED ON");
    } else if (command == "OFF") {
      digitalWrite(LED_BUILTIN, LOW);  // turn off LED
      Serial.println("Turn LED OFF");
    }
  }
}

我已通过应用程序向 ESP32 写入了正确的命令(开/关),我希望内部 LED 会通过“ON”命令打开并保持这种状态,直到我输入“OFF”命令。

arduino bluetooth esp32
1个回答
0
投票

您是否确认收到了您所期望的文本?错误的串行设置是很常见的。例如,您确定应用程序以 115,200 波特率写入吗?我通常建议从 9600 波特率(这是非常普遍支持的)开始并逐步提高。如果您有有线 UART 连接,您应该记录您获得的信息,以确保它符合您的预期。有时我也会将其写入外部存储(如果有的话),以用于调试目的。

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