ESP32 (13) – Inviare SMS

Durante lo sviluppo di una applicazione embedded, è spesso necessario implementare qualche forma di notifica a fronte di eventi o di particolari condizioni. Pensiamo ad esempio ad un sistema di allarme che deve informare il proprietario in caso la porta di casa venga aperta in sua assenza… Nel tutorial di oggi vedremo come inviare SMS utilizzando il chip esp32.…

ESP32 (12) – I/O e interrupts

In un precedente articolo ho iniziato a spiegarvi come utilizzare i pin del chip esp32 per attività di Input/Output. Oggi vediamo come utilizzare gli interrupts che tali pin ci offrono. Interrupts In informatica, un interrupt è un segnale che indica l’accadere di un evento che richiede immediata attenzione. Il segnale di interrupt interrompe quindi la normale esecuzione del programma e manda in esecuzione una particolare…

ESP32 (11) – Candela led

Dopo aver pubblicato il precedente articolo, ho ricevuto alcuni commenti che mi chiedevano a cosa potesse servire un generatore di numeri random come quello incluso nel chip esp32. I numeri random sono molto utilizzati in crittografia e la bontà di un generatore di numeri random è fondamentale per garantire elevati livelli di sicurezza, come ben spiegato in questo articolo di…

ESP32 (10) – Generatore numeri random

Il breve tutorial di oggi vi mostrerà come utilizzare il generatore numeri random, periferica hardware inclusa nel chip esp32. Sarà anche l’occasione per capire come interagire con tali periferiche e per vedere qualche dettaglio in più relativo alla struttura del framework. Address space Entrambe le CPU (PRO e APP) del chip esp32 condividono (a parte piccole eccezioni) uno spazio indirizzi (address space),…

ESP32 (9) – Basic I/O

Iniziamo, con il tutorial di oggi, ad utilizzare i pin di I/O del chip esp32. Il chip mette a disposizione 40 General Purpose I/O pads (GPIO), ovvero 40 “contatti” che possono essere utilizzati per diverse funzionalità di ingresso (input) e uscita (output). La gestione di tali pads è abbastanza complessa: il chip esp32 consente infatti di “mappare” le diverse…

ESP32 (8) – connessione tcp

Dopo aver imparato come collegare il chip esp32 alla nostra rete wifi, oggi vediamo come inviare e ricevere dati. lwIP Il framework esp-idf utilizza la libreria lwIP per implementare lo stack di protocolli TCP/IP. Questa libreria, inizialmente sviluppata da Adam Dunkels e ora mantenuta da una community di sviluppatori con licenza opensource, è molto utilizzata in ambito embedded per le sue ridotte dimensioni e per le numerose features:…

ESP32 (7) – menuconfig

Come abbiamo visto nei precedenti tutorials, la configurazione di diversi aspetti del framework esp-idf avviene tramite un menu di configurazione: E’ possibile utilizzare lo stesso menu per configurare opzioni/parametri relativi al programama che stiamo sviluppando: nel tutorial di oggi vedremo come fare! Kconfig Il menu di configurazione del framework viene configurato tramite alcuni files di testo. La sintassi di questi files…

ESP32 (6) – Collegamento ad una rete wifi

In questo post vi mostrerò come effettuare il collegamento ad una rete wifi. Il framework esp-idf include un driver wifi che si occupa della gestione dell’interfaccia wifi del modulo esp32. Tale driver mette a disposizione delle API che il programma può utilizzare; alcune di queste API le abbiamo già viste nel precedente tutorial: ESP_ERROR_CHECK(esp_wifi_init(&wifi_config)); ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); ESP_ERROR_CHECK(esp_wifi_start());ESP_ERROR_CHECK(esp_wifi_init(&wifi_config)); ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); ESP_ERROR_CHECK(esp_wifi_start()); Il driver wifi viene…

ESP32 (5) – Wifi scanner

La caratteristica principale del chip esp32, come per il predecessore esp8266, è sicuramente la possibilità di collegarsi a reti wifi. Come abbiamo visto nel primo articolo di questa serie, il chip esp32 supporta diversi standard (802.11 b/g/n) e diverse modalità di sicurezza (WEP, WPA-PSK…). Oggi vedremo come scrivere un programma per effettuare lo scan delle reti wifi disponibili. Il…