Alguém já precisou usar WiFi e e Bluetooth ao mesmo tempo e conseguiu?
Tentei testar um sketch onde é utilizado WiFi e e Bluetooth, com DOIT ESP32 DEVKIT V1 Board, e a IDE acusa erro por ser um sketch muito grande:
Sketch muito grande; veja http://www.arduino.cc/en/Guide/Troubleshooting#size para dicas de como reduzi-lo.
Erro compilando para a placa ESP32 Dev Module
O código:
Código: Selecionar todos
#include "WiFi.h"
#include <WiFiClientSecure.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
BLECharacteristic *characteristicTX; //através desse objeto iremos enviar dados para o client
bool deviceConnected = false; //controle de dispositivo conectado
#define SERVICE_UUID "ab0828b1-198e-4351-b779-901fa0e0371e" // UART service UUID
#define CHARACTERISTIC_UUID_RX "4ac8a682-9736-4e5d-932b-e9b31405049c"
#define CHARACTERISTIC_UUID_TX "0972EF8C-7613-4075-AD52-756F33D4DA91"
WiFiClientSecure client;//Cria um cliente seguro (para ter acesso ao HTTPS)
//callback para eventos das características
class CharacteristicCallbacks: public BLECharacteristicCallbacks {
void onWrite(BLECharacteristic *characteristic) {
//retorna ponteiro para o registrador contendo o valor atual da caracteristica
std::string rxValue = characteristic->getValue();
//verifica se existe dados (tamanho maior que zero)
if (rxValue.length() > 0) {
Serial.println("Recebido");//Mostra no monitor que foi enviado
Serial.println(rxValue.c_str());//Mostra no monitor que foi enviado
}
}//onWrite
};
//callback para receber os eventos de conexão de dispositivos
class ServerCallbacks: public BLEServerCallbacks {
void onConnect(BLEServer* pServer) {
deviceConnected = true;
};
void onDisconnect(BLEServer* pServer) {
deviceConnected = false;
}
};
void setup()
{
// Create the BLE Device
BLEDevice::init("Test-18510"); // nome do dispositivo bluetooth
// Create the BLE Server
BLEServer *server = BLEDevice::createServer(); //cria um BLE server
server->setCallbacks(new ServerCallbacks()); //seta o callback do server
// Create the BLE Service
BLEService *service = server->createService(SERVICE_UUID);
// Create a BLE Characteristic para envio de dados
characteristicTX = service->createCharacteristic(
CHARACTERISTIC_UUID_TX,
BLECharacteristic::PROPERTY_NOTIFY
);
characteristicTX->addDescriptor(new BLE2902());
// Create a BLE Characteristic para recebimento de dados
BLECharacteristic *characteristic = service->createCharacteristic(
CHARACTERISTIC_UUID_RX,
BLECharacteristic::PROPERTY_WRITE
);
characteristic->setCallbacks(new CharacteristicCallbacks());
// Start the service
service->start();
// Start advertising (descoberta do ESP32)
server->getAdvertising()->start();
}
void loop()
{
}
Visitando a página do arduino cc a dica é diminuir includes e trocar variáveis float por int, tudo no sentido de diminuir o código e fazer ele caber no espaço de memória reservada para programa, daí vem minha pergunta.
Alguém já precisou usar WiFi e e Bluetooth ao mesmo tempo e conseguiu?