Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro ao embarcar o codigo em um esp32

Ao tentar embarcar o codigo a seguir no meu ESP32 aparece a seguinte mensagem: "O sketch usa 1468590 bytes (112%) de espaço de armazenamento para programas. O máximo são 1310720 bytes.

Variáveis globais usam 60652 bytes (18%) de memória dinâmica, deixando 267028 bytes para variáveis locais. O máximo são 327680 bytes. 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 é o projeto da aula que foi disponibilizado pela Alura, acredito que não tenha erros, mas segue ele tbm:

/*
   Based on Neil Kolban example for IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleScan.cpp
   Ported to Arduino ESP32 by Evandro Copercini
*/

// --- WIFI ---
#include <WiFi.h>

const char* ssid     = "predio_72";
const char* password = "passpass";

// --- Bluetooth ---
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEScan.h>
#include <BLEAdvertisedDevice.h>

int scanTime = 5; //In seconds
int nivelRSSI = -78;
String dispositivosAutorizados = "58:e4:c0:41:2e:b3";


// --- Setup ---
void setup() {
  Serial.begin(115200);
  conectaWifi();
  Serial.println("Scanning...");
  BLEDevice::init("");

}

// -- Funções Auxiliares ---

class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
    void onResult(BLEAdvertisedDevice advertisedDevice) {
      String dispositivosEncontrados = advertisedDevice.getAddress().toString().c_str();
      if ( dispositivosEncontrados == dispositivosAutorizados  && advertisedDevice.getRSSI() > nivelRSSI) {
        Serial.println("Identificador DETECTADO!");
        Serial.print("RSSI: ");
        Serial.println(advertisedDevice.getRSSI());
      }


      //Serial.printf("Advertised Device: %s \n", advertisedDevice.getAddress().toString().c_str());
    }
};

// --- Scan Bluetooth LE ---
void scanBLE() {
  BLEScan* pBLEScan = BLEDevice::getScan(); //create new scan
  pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
  pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster
  BLEScanResults foundDevices = pBLEScan->start(scanTime);
}

// --- Conecta ao WIFI ---

void conectaWifi() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  scanBLE();
  delay(2000);
}
1 resposta
solução!

Já achei é só ir em "Ferramentas" -> "Partition Scheme" -> Selecionar "No OTA (Large App)"

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software