La ESP32-C3 Super Mini è una delle ESP32 più piccole in commercio, ideale per progetti di piccole dimensioni
La ESP32 è la dev-board più apprezzata per i progetti DIY, soprattutto per la Smart Home. Spesso diventa però difficile ridurre le dimensioni dei proprio progetti, anche per le dimensioni di alcune schede molto diffuse. La ESP32-C3 Super Mini è una soluzione eccellente per chi ha poco spazio e vuole realizzare progetti DIY di ridotte dimensioni, senza rinunciare alle features offerte dalla ESP32.
- Acquistala su Amazon: https://amzn.to/3PAYAM4
- Acquistala su Aliexpress: https://s.click.aliexpress.com/e/_DBNOTtj
Specifiche
La ESP32-C3 Super Mini è una dev-board di 18 mm x 22,52 mm, molto piccola e compatta. Possiamo trovarla in due versioni: una con SoC ESP32-C3FH4 ed una con SoC ESP32-C3FN4. Entrambi i modelli si basano comunque su un chip a 32bit da 160MHz, con 4MB di memoria flash e 400KB di RAM, mentre la ROM ha disponibili solo 384KB.
Troviamo ben 16 pin, di cui ben 13 sono GPIO e di questi 3 sono analogici. La tensione di lavoro di questa dev-board è di 3,3V, tuttavia possiamo alimentare la scheda con i 5V direttamente dal connettore USB Type-C o da pin 5V presente sulla ESP32-C3 Super Mini.
Come ogni ESP32 che si rispetti, anche la ESP32-C3 Super Mini possiede una connettività Wi-Fi da 2,4GHz IEEE 802.11 b/g/n ed una connettività Bluetooth 5. Le interfacce integrate sono UART, SPI, I2C e I2S. Troviamo un Led blu, collegato al pin 8 e un Led rosso che indica che la scheda riceve alimentazione.
Oltre al già citato connettore USB Type-C, sulla scheda, troviamo anche un pulsante di Boot, utile per il caricamento dello sketch, e uno di Reset.
Fase preliminare
La nostra ESP32-C3 Super Mini è programmabile con la IDE di Arduino. Passiamo a predisporre la IDE di Arduino per programmare la nostra ESP32 inserendo il link https://dl.espressif.com/dl/package_esp32_index.json nel percorso File -> Impostazioni e aggiungerlo alla voce URL aggiuntive per il gestore schede.
Una volta confermato tutto, muoviamoci sul menu Strumenti->Schede->Gestore schede.
Quando la finestra sarà aperta, cerchiamo ESP32 e installiamo il pacchetto che ci appare.
A questo punto muoviamoci per collegare la ESP32-C3 Super Mini al computer; teniamo premuto il pulsante BOOT mentre la dev-board non è ancora collegata, quindi connettiamola al computer tramite cavo USB e infine rilasciamo il pulsante BOOT. La dev-board entrerà in modalità di programmazione e apparirà nel menu Strumenti->Porta la COM per caricare lo sketch. Per caricare lo sketch selezioniamo dalla barra dei menu Strumenti->Scheda->esp32->ESP32C3 Dev Module.
Codice
Il primo sketch di esempio che andiamo ad usare è lo WiFiScan , raggiungibile al percorso File -> Esempi -> WiFi. Colleghiamo la ESP32 Super Mini tenendo premuto il tasto Boot, selezioniamo la scheda e la porta, come descritto prima, poi andiamo su Strumenti -> USB CDC On Boot e selezioniamo Enable per poter usare la porta USB per leggere i dati da monitor seriale.
#include "WiFi.h"
void setup()
{
Serial.begin(115200);
// Set WiFi to station mode and disconnect from an AP if it was previously connected.
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup done");
}
void loop()
{
Serial.println("Scan start");
// WiFi.scanNetworks will return the number of networks found.
int n = WiFi.scanNetworks();
Serial.println("Scan done");
if (n == 0) {
Serial.println("no networks found");
} else {
Serial.print(n);
Serial.println(" networks found");
Serial.println("Nr | SSID | RSSI | CH | Encryption");
for (int i = 0; i < n; ++i) {
// Print SSID and RSSI for each network found
Serial.printf("%2d",i + 1);
Serial.print(" | ");
Serial.printf("%-32.32s", WiFi.SSID(i).c_str());
Serial.print(" | ");
Serial.printf("%4d", WiFi.RSSI(i));
Serial.print(" | ");
Serial.printf("%2d", WiFi.channel(i));
Serial.print(" | ");
switch (WiFi.encryptionType(i))
{
case WIFI_AUTH_OPEN:
Serial.print("open");
break;
case WIFI_AUTH_WEP:
Serial.print("WEP");
break;
case WIFI_AUTH_WPA_PSK:
Serial.print("WPA");
break;
case WIFI_AUTH_WPA2_PSK:
Serial.print("WPA2");
break;
case WIFI_AUTH_WPA_WPA2_PSK:
Serial.print("WPA+WPA2");
break;
case WIFI_AUTH_WPA2_ENTERPRISE:
Serial.print("WPA2-EAP");
break;
case WIFI_AUTH_WPA3_PSK:
Serial.print("WPA3");
break;
case WIFI_AUTH_WPA2_WPA3_PSK:
Serial.print("WPA2+WPA3");
break;
case WIFI_AUTH_WAPI_PSK:
Serial.print("WAPI");
break;
default:
Serial.print("unknown");
}
Serial.println();
delay(10);
}
}
Serial.println("");
// Delete the scan result to free memory for code below.
WiFi.scanDelete();
// Wait a bit before scanning again.
delay(5000);
}
Attendiamo il caricamento dello sketch, alla fine del quale premiamo il tasto Reset sulla scheda per uscire dalla modalità di programmazione. Avviamo il monitor seriale e vedremo la lista delle reti Wi-Fi disponibili.
Proviamo adesso a far lampeggiare il led integrato nella scheda, connesso al pin 8. Come sempre, adoperiamo lo sketch Blink, presente al percorso File -> Esempi -> Basic e adoperiamo il pin 8 come in esempio.
void setup() {
pinMode(8, OUTPUT);
}
void loop() {
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
delay(1000);
}
Carichiamo lo sketch, resettiamo la scheda alla fine del caricamento e vedremo il led integrato lampeggiare ogni secondo.