Sicuramente avrete già sentito parlare del chip wifi esp8266, prodotto da Espressif. Apparso sugli store cinesi a metà 2014, inizialmente ha avuto successo come “ponte” per collegare i diversi microcontrollori (in primis Arduino) alle reti wifi grazie al costo molto più basso (circa 5$ a modulo) rispetto alle soluzioni precedenti.
Visto che il firmware di base non era molto ben documentato, conteneva diversi bugs e offriva soltanto funzionalità standard (tramite comandi AT), la community ha sviluppato diversi firmware alternativi (il più famoso dei quali è sicuramente NodeMCU), utilizzando appieno le potenzialità del chip per realizzare sistemi completi, senza bisogno di microcontrollori esterni:
ESPToy, di Rayshobby
A Settembre 2016, dopo una fase di beta testing durata alcuni mesi, Espressif ha annunciato e reso disponibile il successore del chip esp8266, chiamato ESP32.
Le caratteristiche principali di questo nuovo chip sono le seguenti:
[checklist]
- Processore Tensilica LX6 dual core a 240 MHz
- 520Kb di memoria SRAM
- Connettività wifi 802.11 b/g/n (supporto per WEP, WPA/WPA2 PSK/Enterprise)
- Connettività Bluetooth (classica e LE)
- 32 PIN di I/O con diverse periferiche disponibili
- accelerazione hardware per algoritmi di sicurezza (AES, SHA2, RSA-4096)
[/checklist]
Inizio con questo post una serie di tutorial che andranno ad esplorare l’utilizzo di questo nuovo chip per realizzare sistemi e progetti IoT.
Per poter funzionare, il chip ESP32 ha bisogno di alcuni componenti esterni: una memoria flash (dove memorizzare il firmware e i dati), un quarzo (per il RTC), una antenna ed alcuni componenti passivi. Per questo si trovano in vendita dei moduli già pronti:
A sinistra il modulo ufficiale, rilasciato da Espressif (ESP-WROOM-32) mentre a destra il modulo di Ai-Thinker (ESP-32S).
Sui vari siti di componenti elettronici si trovano inoltre delle development boards complete di modulo ESP32, circuito di alimentazione, connettore USB… insomma pronte per iniziare a sviluppare i nostri progetti!
Il sito esp32.net mantiene una lista aggiornata di tali board; per i miei tutorial ho deciso di utilizzare la board ufficiale di Espressif, chiamata ESP32-DevKit3 o ESP32-CoreBoard. Ho acquistato la mia da Olimex:
Osservando lo schema della scheda, vediamo come essa contenga il modulo ESP32, un regolatore di tensione (NCP1117) per abbassare i 5V – forniti via USB – ai 3.3V necessari per il funzionamento del chip, un adattatore USB-seriale CP2102 e un paio di pulsanti. Inoltre tutti i PIN più importanti sono disponibili sui due connettori esterni:
Nel prossimo articolo vedremo come installare l’ambiente di sviluppo e scrivere il primo programma!