esp32s2Stick

Una delle caratteristiche più interessanti del chip esp32-s2 di Espressif è la presenza di una interfaccia USB OTG (USB On-The-Go).  Grazie a questa interfaccia – e all’uso della libreria TinyUSB – è possibile programmare il chip perché si comporti come una periferica USB. In un video sul mio canale Youtube ho già mostrato come scrivere sketch Arduino per…

esp32 Arduino: SD card con pin custom

Il core Arduino per il chip esp32 include due librerie per la gestione di SD card: Questo perché – come indicato nel datasheet – il chip esp32 è dotato di un host controller dedicato per SD/SDIO/MMC, in aggiunta a quello “generico” SPI. Se adottiamo la libreria SD_MMC utilizzeremo quindi tale host controller, mentre se adottiamo la libreria SD utilizzeremo…

ESP32 (38) – Factory reset

Negli ultimi due articoli di questo tutorial, vi ho mostrato come aggiornare over the air il firmware in esecuzione nel chip esp32. A volte è però necessario ritornare al firmware di fabbrica, ovvero quello memorizzato nella flash al momento della programmazione del chip. Molti dispositivi elettronici dispongono di un pulsante o pin che, se premuto per qualche secondo, effettua questo…

ESP32 (37) – OTA via https

Nel precedente articolo di questo tutorial, vi ho mostrato come sia possibile effettuare un aggiornamento Over-The-Air grazie alle funzionalità della dashboard Freshen. Oggi vi spiegherò come aggiornare il firmware in esecuzione sul chip esp32 utilizzando solo il framework esp-idf, senza la necessità di dashboard esterne. OTA API Il framework esp-idf mette a disposizione una serie di funzioni native per implementare, in un nostro programma, la capacità…

ESP32 (36) – OTA con Freshen

In uno dei primi articoli di questo tutorial, vi ho parlato del bootloader e della struttura della memoria flash. Nell’articolo scrivevo: In questo modo è possibile implementare un meccanismo di aggiornamento over-the-air (OTA): si invia la nuova versione dell’applicazione al chip esp32 mentre è in funzione; tale versione viene memorizzata in una nuova partizione Esistono diversi modi per implementare…

ESP32, PlatformIO

PlatformIO è un ecosistema opensource (come è definito nella homepage ufficiale) per lo sviluppo di progetti IoT. Il cuore della piattaforma è un componente software chiamato PlatformIO Core. Questo componente integra: [checklist] un sistema di compilazione cross-platform un gestore di librerie e di dipendenze un monitor seriale [/checklist] PlatformIO Core è sviluppato in Python ed è quindi in grado…

ESP32 (35) – BLE, scan response

Nei precedenti articoli vi ho mostrato come ricevere e inviare pacchetti di advertising secondo lo standard Bluetooth LE. Il payload (ovvero la porzione di dati “utili”) di tali pacchetti è al massimo 31 bytes. Si tratta di una quantità di dati piuttosto limitata: se ad esempio vogliamo includere il nome del nostro dispositivo, rimane poco spazio per altri dati.…

ESP32 (34) – BLE, raw advertising

Nel precedente articolo abbiamo visto come è possibile inviare pacchetti di advertising con il chip esp32. Per definire il contenuto del pacchetto, abbiamo utilizzato una struct, di tipo esp_ble_adv_data_t: La definizione di tale struct è nel file esp_gap_ble_api.h: Sebbene i campi disponibili siano molti, a volte è necessario poter definire il contenuto del pacchetto di advertising in modo arbitrario. Per…

ESP32 (33) – BLE, advertising

Nei precedenti articoli abbiamo visto come utilizzare il chip esp32 per ricevere ed interpretare i pacchetti di advertising trasmessi da periferiche Bluetooth Low Energy. Come esempio pratico, abbiamo sviluppato un programma per rilevare la presenza di un particolare iBeacon e attivare di conseguenza una uscita. Nel tutorial di oggi vedremo invece come trasmettere pacchetti di advertising. Processo di advertising Abbiamo già scoperto che il driver…