Tenho um ESP32 DEV Kit v1 e consegui parear com um leitor de códigos de barras bluetooth

Continuar a discussão de Esp32 wemos d1r32 bluetooth:

@Brazilino gostaria de aproveitar esse tópico ou criar outro se achar mais adequado, pois estou enfrentando uma dificuldade que lembra muito a descrita neste tópico. Tenho um ESP32 DEV Kit v1 e consegui parear com um leitor de códigos de barras bluetooth. Porém não consigo obter as leituras no monitor serial. Sou novato neste mundo e busco ajuda para uma solução. Agradeceria muito se pudesse fazer suas considerações.
Segue o código que estou usando.

#include "BluetoothSerial.h"

// Check if Bluetooth is available
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

// Check Serial Port Profile
#if !defined(CONFIG_BT_SPP_ENABLED)
#error Serial Port Profile for Bluetooth is not available or not enabled. It is only available for the ESP32 chip.
#endif
BluetoothSerial SerialBT;

String MACadd = "e4:86:50:39:9b:fd"; // This only for printing
uint8_t address[6] = {0xe4, 0x86, 0x50, 0x39, 0x9b, 0xfd};  // Change this to reflect real MAC address of your slave BT device e4:86:50:39:9b:fd

String myName = "ESP32-BT-Master";

void setup() {
  bool connected;
  Serial.begin(9600);

  SerialBT.begin(myName, true);
  SerialBT.deleteAllBondedDevices(); // Uncomment this to delete paired devices; Must be called after begin
  Serial.printf("The device \"%s\" started in master mode, make sure slave BT device is on!\n", myName.c_str());

  connected = SerialBT.connect(address);
  Serial.print("Connecting to slave BT device with MAC ");
  Serial.println(MACadd);

  if (connected) {
    Serial.println("Connected Successfully!");
  } else {
    while (!SerialBT.connected(10000)) {
      Serial.println("Failed to connect. Make sure remote device is available and in range, then restart app.");
    }
  }

  //SerialBT.connect();

}



void loop() {
  // Check for incoming data from both Serial and Bluetooth without delay


  if (Serial.available()<0) {
    char incoming = Serial.read();
    // You can add logic here to process the data before sending it over Bluetooth
    SerialBT.write(incoming);

  }
  if (SerialBT.available()<0) {
    char incoming = SerialBT.read();
    // You can add logic here to decode or process the data before printing it to the serial monitor
    Serial.write(incoming);

  }
}

Olá! O ideal ao trazer uma dúvida nova é criar seu próprio tópico e, se achar pertinente, citar o(s) outro(s) tópico(s) que você acha que possuem relação. Essa é uma das instruções do tópico Como Obter o Melhor Desse Forum. Recomendo a leitura, caso ainda não tenha feito.

Vou pedir aos moderadores que separem o tópico :wink:

Você tem a especificação do leitor de código de barras? Sabe se ele trabalha com Bluetooth normal ou com Bluetooth de Baixa Energia (BLE)?

Muitos equipamentos possuem protocolos de comunicação específicos, alguns até criptografados, o que torna bem difícil obter os dados.

Aqui não deveria ser > 0?

Muito obrigado pelo rápido retorno. Desculpe por não conhecer as melhores práticas do fórum. Vou me adequar.

Sobre ser > 0, já havia corrigido o código e mesmo assim não obtive retorno.
Sobre o modo de trabalho BLE não sei te dizer. Confesso que comprei esse leitor usado na expectativa de ter uma leitura que eu pudesse usar para um projeto do meu trabalho. É algo grande e depende dessa leitura para o programa tomar decisões em outras etapas.

Originalmente ele mandaria os dados pra onde? Para um aplicativo no celular?

Então, a minha sugestão seria ler o manual do aparelho e tentar identificar se ele descreve como funciona o protocolo de comunicação. Isso deve fornecer uma pista de qual direção seguir depois.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.