Hey guys!
I would like to make a code to receive and execute two different data from the bluetooth connection, but I can use an event. How can I work?
Follow code:
#include "BluetoothSerial.h"
//#define DEBUG_ESP_CORE_DISABLE_COREDUMP_TO_SERIAL
BluetoothSerial SerialBT;
#define botao1 14
#define led1 23
void setup() {
Serial.begin(115200);
initBT();
pinMode(botao1, INPUT);
pinMode(led1, OUTPUT);
}
void initBT(){
if(!SerialBT.begin("ESP32_0")){
Serial.println("Um erro aconteceu com dispositivo Bluetooth");
ESP.restart();
}else{
Serial.println("Bluetooth inicializado");
}
SerialBT.register_callback(btCallback);
Serial.println("Dispositivo iniciado, pode parear");
}
void btCallback(esp_spp_cb_event_t event, esp_spp_cb_param_t *param){
if(event == ESP_SPP_SRV_OPEN_EVT){
Serial.println("Cliente conectado!");
}else if(event == ESP_SPP_DATA_IND_EVT){
while(SerialBT.available()){
String received = SerialBT.readStringUntil('\n');
Serial.println(received);
SerialBT.println(received); // Return
processReceivedData(received); // Chama a função para processar os dados recebidos
}
}
}
void processReceivedData(String data){
// Realize as rotinas de teste com os dados recebidos
if(digitalRead(botao1) == HIGH) { // Verificar se o botão foi pressionado
digitalWrite(led1, HIGH); // Ligar o led1
Serial.println("Aprovado "+ data);
}
else if(digitalRead(botao1) == LOW){
digitalWrite(led1, LOW); // Ligar o led1
Serial.println("Reprovado "+ data);
}
// ... outras rotinas de teste aqui
}
void loop() {
}