Vi chiedo aiuto... Sketch troppo grande

Buonasera a tutti, mi scuso se l'argomento è stato già trattato ma non ho trovato nulla di risolutivo, sto cercando di fare un programma che si interfacci con arduinoiot e bluetoothserial... ma anche solo importando le librerie vado oltre il limite disponibile.
Al momento uso una esp32 d1 mini, ma anche senza istruzioni questo è quello che mi esce

Lo sketch usa 1810533 byte (138%) dello spazio disponibile per i programmi. Il massimo è 1310720 byte.
Le variabili globali usano 70448 byte (21%) di memoria dinamica, lasciando altri 257232 byte liberi per le variabili locali. Il massimo è 327680 byte.
Sketch troppo grande; guarda https://support.arduino.cc/hc/en-us/articles/360013825179 per consigli su come ridurne la dimensione
la sezione del testo supera lo spazio disponibile nella scheda

Compilation error: la sezione del testo supera lo spazio disponibile nella scheda

ho già limato tutto il possibile, praticamente sono rimaste solo le connessioni e la lettura delle variabili... non so proprio cosa fare..
Grazie a tutti per l'aiuto.
Saluti Emanuele

Se vuoi usare contemporaneamente lo stack WiFi e quello BLE dell'ESP32 devi cambiare il "partition scheme" che viene impostato di default perché lo spazio assegnato al programma come default non è sufficiente.

Tra le opzioni della board ci dovrebbe essere qualcosa come "Partition Scheme" e li puoi selezionare delle configurazioni preimpostate (è possibile anche farle custom, ma se non sai quello che fai te lo sconsiglio).

Di solito c'è qualcosa tipo "Large APP" o simile.
Se l'opzione manca, seleziona come scheda la più generica "ESP32 Dev Module" cosi da averle tutte disponibili.

Grazie mille... semplice e risolutivo... almeno per le dimensioni dello Sketch ... putroppo l'utlizzo delle due librerie mi da problemi, si connettono alternativamente, quando si connette il bluetooth mi sgancia la wifi.... e li si pianta... proverò altri sistemi di comunicazione
Grazie mille

... se cerchi ci deve essere una vecchia discussione in merito ...purtroppo non ho salvato il link :confused:, ma, per promemoria, mi ero salvato il contenuto ...

In realtà BT e wifi insieme è possibile, bisogna stare attenti all'ordine di connessione e a scrivere bene lo sketch. È vero che condividono la stessa antenna, ma ho uno sketch dove coesistono tranquillamente.

Ho visto che è più semplice attivare la wifi dopo aver stabilito la connessione bt.

Nel mio sketch il controllo wifi gira in un task e il bt in un'altro, ma devo scollegare il wifi quando mi collego bt, poi riattivo il wifi e girano assieme, senza conflitti.

Quindi riesco tranquillamente a 'passare' comandi bt che giro con post ad un server immediatamente e rimanendo connesso ad entrambi.

Ho dovuto usare un po' di bool per conferme varie, ma considera:

Il ble rimane sempre attivo, pronto a connettersi;

un task verifica , se un bool lo consente, di attivare il wifi e cercare la connessione;

se mi collego ble , disattivo il Wi-Fi, una volta connesso, do un comando bt per attivare la connessione ( oppure puoi farlo in automatico).

Da lì è tutta discesa, considera anche che gli giro direttamente delle stringhe json che vengono passate al task che le usa nei POST.

Imposto le credenziali wifi e tutto quello che voglio.

All'inizio stavo impazzendo perché andava in crash, poi ho invertito la sequenza e ora è stabile!

BLE e WiFi vanno assieme.

anch'io mi sono imbattuto nella stessa problematica e nei vari post dove si diceva che era impossibile. Quello che ho scoperto è che l'iter di attivazione ti fa andare in crash se attivi il BLE mentre sei connesso alla WiFi. Il contrario no.

Il problema non è avere il bt acceso e la wifi accesa contemporaneamente, condividendo la stessa radio sono già assieme.

Non è semplice da gestire, devi scriverti bene lo sketch e fare delle prove.

Ho perso quasi 6 mesi a capire come gestirla in modo ottimale!

Adesso va che è uno spettacolo!

... quindi ... c'è chi ci è risucito :slight_smile:

Guglielmo

Ho ritrovato la discussione ... QUI :grin:

Guglielmo

Avevo provato anche io ad invertire la sequenza, ma senza grandi risultati... adesso che so che è possibile, riproverò a gestire le due connessioni.... sei stato gentilissimo, ma ti chiedo un'ultima cortesia... diciamo che C non è proprio il mio linguaggio, potresti passarmi il tuo codice così capisco meglio l'ordine delle cose... ovviamente se vuoi anche in privato se preferisci...
Comunque ancora grazie per l'aiuto.
Saluti Emanuele

... come detto, io ho salvato la discussione (perché mi sembrava importante e, magari, un giorno potrebbe servire), ma NON ho poi mai usato la cosa (non ne ho avuto necessità), quindi ... niente codice :roll_eyes:

Guglielmo

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