我想将 esp32 连接到蓝牙手持式条码扫描仪(我们在杂货店看到的那种)。扫描仪可以轻松连接到我的智能手机,但无法与 esp32 建立连接。我每次都可以看到可用连接列表中列出的条形码扫描仪。但配对时输出始终是“无法连接到条形码扫描仪”。
我可以对扫描仪地址进行硬编码,并尝试这样做,但每次连接都会失败。我认为我不需要为 BLE 编码,因为扫描仪可以轻松连接到我的智能手机。
#include <BluetoothSerial.h>
BluetoothSerial SerialBT;
#define BT_DISCOVER_TIME 5000
static bool btScanSync = true;
void setup() {
Serial.begin(115200);
SerialBT.begin("ESP32test"); // Bluetooth device name
Serial.println("The device started, now you can pair it with Bluetooth!");
if (btScanSync) {
Serial.println("Starting discover...");
BTScanResults *pResults = SerialBT.discover(BT_DISCOVER_TIME);
if (pResults) {
pResults->dump(&Serial);
delay(1000); // Introduce a delay after discovery (adjust as needed)
} else {
Serial.println("Error on BT Scan, no result!");
}
}
String barcodeScannerAddress = "aa:fe:45:2e:0e:39";
if (SerialBT.connect(barcodeScannerAddress)) {
Serial.println("Connected to the barcode scanner!");
} else {
Serial.println("Failed to connect to the barcode scanner.");
}
}
void loop() {
delay(100);
}```
首先,aa:fe:45:2e:0e:39 有点令人惊讶,因为 OUI 尚未分配,但我假设您对此很确定。
connect()
版本采用的是姓名,而不是地址。地址形式连接如下:
uint8_t address[6] = {0xAA, 0xFE, 0x45, 0x2E, 0x0E, 0x39}
bool connected = SerialBT.connect(address);