Uno dei miei produttori preferiti è WeMos, ecco una scheda di sviluppo entry-level basata su ESP32-C3-WROOM-02, un modulo generico con flash SPI da 4 MB. Questa scheda integra funzioni Wi-Fi e Bluetooth LE complete.
Qui la mia selezione di microcontrollori LuatOS esp32c3 Core - ESP32-C3-DevKitC-02 - ESP32-C3-MINI-1 - WeMos LOLIN C3 PICO - WeMos LOLIN C3 Mini v2.1 - WeMos LOLIN C3 Mini v1.0 - ESP32 S3 Purlple AI-S3
Componente chiave | Descrizione |
---|---|
ESP32-C3 | ESP32-C3-WROOM-02 di Espressif è un modulo potente e multiuso che offre la coesistenza di Wi-Fi e Bluetooth LE. Ha 4 MB di flash SPI. |
LDO da 5 V a 3,3 V | Regolatore di tensione che converte un’alimentazione di 5 V in un’uscita di 3,3 V. |
LED di accensione a 5 V | Si accende quando l’alimentazione USB è collegata alla scheda. |
Header a pin | Tutti i pin GPIO disponibili (ad eccezione del bus SPI per la memoria flash) sono collegati agli header a pin sulla scheda. |
Pulsante Boot | Pulsante di scaricamento. Tenendo premuto Boot e poi premendo Reset si avvia la modalità di download del firmware per il trasferimento del firmware tramite la porta seriale. |
Porta Micro-USB | Interfaccia USB. Alimentazione per la scheda e interfaccia di comunicazione tra un computer e il chip ESP32-C3. |
Pulsante Reset | Premere questo pulsante per riavviare il sistema. |
Ponte USB-UART | Un singolo chip ponte USB-UART fornisce velocità di trasferimento fino a 3 Mbps. |
LED | LED, pilotato dal GPIO7 |
PINs
UART (Universal Asynchronous Receiver-Transmitter) pin:
- U0RXD (GPIO20): Questo pin funge da pin di ricezione (RX) UART0, utilizzato per ricevere dati seriali.
- U0TXD (GPIO21): Questo pin funge da pin di trasmissione (TX) UART0, utilizzato per trasmettere dati seriali.
I2C (Inter-Integrated Circuit) pin: L’ESP32-C3 non ha pin I2C dedicati. Tuttavia, è possibile implementare I2C basato su software (bit-banging) utilizzando qualsiasi pin GPIO disponibile.
Specifiche
CPU e memoria
- Processore RISC-V single-core a 32 bit, fino a 160 MHz
- Punteggio CoreMark®:
- 1 core a 160 MHz: 407,22 CoreMark; 2,55 CoreMark/MHz
- 384 KB di ROM
- 400 KB di SRAM (16 KB per la cache)
- 8 KB di SRAM in RTC
- Memoria flash integrata (vedi dettagli nel Capitolo 1 Confronto tra serie ESP32-C3)
- Interfacce SPI, Dual SPI, Quad SPI e QPI che consentono il collegamento a più flash esterne
- Accesso alla flash accelerato dalla cache
- Supporta la programmazione in-Circuit (ICP) della flash
Codice d’ordine | Flash integrata | Temperatura ambiente (°C) | Package (mm) | Numero di GPIO |
---|---|---|---|---|
ESP32-C3 | No | –40 ∼ 105 | QFN32 (5*5) | 22 |
ESP32-C3FN4 | 4 MB | –40 ∼ 85 | QFN32 (5*5) | 22 |
ESP32-C3FH4 | 4 MB | –40 ∼ 105 | QFN32 (5*5) | 22 |
ESP32-C3FH4AZ | 4 MB | –40 ∼ 105 | QFN32 (5*5) | 16 |
Interfacce periferiche avanzate
- 22 o 16 GPIO programmabili
- Interfacce digitali:
- 3 × SPI
- 2 × UART
- 1 × I2C
- 1 × I2S
- Periferica di controllo remoto, con 2 canali di trasmissione e 2 canali di ricezione
- Controller LED PWM, con fino a 6 canali
- Controller USB seriale/JTAG a piena velocità
- Controller DMA generale (GDMA), con 3 canali di trasmissione e 3 canali di ricezione
- 1 × controller TWAI® compatibile con ISO 11898-1 (Specifiche CAN 2.0)
- Interfacce analogiche:
- 2 × ADC SAR a 12 bit, fino a 6 canali
- 1 × sensore di temperatura
- Timer:
- 2 × timer general-purpose a 54 bit
- 3 × timer watchdog digitali
- 1 × timer watchdog analogico
- 1 × timer di sistema a 52 bit
Wi-Fi
- Conforme a IEEE 802.11 b/g/n
- Supporta banda da 20 MHz, 40 MHz nella banda 2,4 GHz
- Modalità 1T1R con velocità dati fino a 150 Mbps
- 4 × interfacce Wi-Fi virtuali
- 802.11mc FTM
A proposito di Wi-Fi
È necessario impostare WIFI Tx Power su 8,5 dBm per utilizzare il WIFI.
Usa WiFi.setTxPower(WIFI_POWER_8_5dBm) dopo WiFi.begin() o WiFi.softAP()
WiFi.begin(ssid, password);
WiFi.setTxPower(WIFI_POWER_8_5dBm);
WiFi.softAP(ssid, password);
WiFi.setTxPower(WIFI_POWER_8_5dBm);
Codice completo:
#include <WiFi.h>
const char* ssid = "yourssid";
const char* password = "yourpasswd";
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("Connecting...");
WiFi.mode(WIFI_STA);
WiFi.disconnect();
WiFi.begin(ssid, password);
WiFi.setTxPower(WIFI_POWER_8_5dBm);
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("Connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
}
Bluetooth
- Bluetooth LE: Bluetooth 5, Bluetooth mesh
- Modalità ad alta potenza (21 dBm)
- Velocità: 125 Kbps, 500 Kbps, 1 Mbps, 2 Mbps
- Estensioni pubblicitarie
- Molti set di annunci
- Algoritmo di selezione del canale n. 2
- Motore di coesistenza interno tra Wi-Fi e Bluetooth per condividere la stessa antenna
Sicurezza
- Avvio sicuro
- Crittografia della memoria flash
- OTP da 4096 bit, fino a 1792 bit utilizzabili
- Accelerazione hardware crittografica:
- AES-128/256 (FIPS PUB 197)
- Controllo dei permessi
- Acceleratore SHA (FIPS PUB 180-4)
- Acceleratore RSA
- Generatore di numeri casuali (RNG)
- HMAC
- Firma digitale
Gestione dell’energia a basso consumo
- Unità di gestione dell’energia con quattro modalità di alimentazione
How To
- ESP32: piedinatura, specifiche e configurazione dell’Arduino IDE
- ESP32: fileSystem integrato SPIFFS
- ESP32: gestire più seriali e logging per il debug
- ESP32 risparmio energetico pratico
- ESP32 risparmio energetico pratico: gestire WiFi e CPU
- ESP32 risparmio energetico pratico: modem e light sleep
- ESP32 risparmio energetico pratico: deep sleep e ibernazione
- ESP32 risparmio energetico pratico: preservare dati al riavvio, sveglia a tempo e tramite tocco
- ESP32 risparmio energetico pratico: sveglia esterna e da ULP
- ESP32 risparmio energetico pratico: sveglia da UART e GPIO
- ESP32: filesystem integrato LittleFS
- ESP32: filesystem integrato FFat (Fat/exFAT)
- ESP32-wroom-32
- ESP32-CAM
- ESP32: ethernet w5500 con chiamate standard (HTTP) e SSL (HTTPS)
- ESP32: ethernet enc28j60 con chiamate standard (HTTP) e SSL (HTTPS)
- Come usare la scheda SD con l’esp32
- esp32 e esp8266: file system FAT su memoria SPI flash esterna
- Gestione aggiornamenti firmware e OTA
- Gestione del firmware
- Aggiornamento OTA con Arduino IDE
- Aggiornamento OTA con browser web
- Aggiornamenti automatici OTA da un server HTTP
- Aggiornamento del firmware non standard
- Integrare LAN8720 con ESP32 per la connettività Ethernet con plain (HTTP) e SSL (HTTPS)
- Collegare l’EByte E70 (CC1310) ai dispositivi ESP32 c3/s3 ed un semplice sketch di esempio
- ESP32-C3: piedinatura, specifiche e configurazione dell’IDE Arduino
- Integrazione del modulo W5500 su ESP32 con Core 3: supporto nativo ai protocolli Ethernet con SSL e altre funzionalità
- Integrazione del modulo LAN8720 su ESP32 con Core 3: supporto nativo del protocollo Ethernet con SSL e altre funzionalità.
Scheda tecnica
Scheda tecnica ESP32c3
Board Schematic
Dimensioni del circuito stampato
Grazie
- Arduino
- esp8285
- esp8266
- esp12 E
- esp07
- NodeMCU v2.x
- NodeMCU v3.x
- ESP-01
- ESP-01S
- ESP32
- ESP32c3
- ESP32 s2
- ESP32s3
- VCC-GND Studio YD-ESP32-S3
- ESP32-S3 DevKitC 1
- WeAct ESP32 S3 A
- WeMos LOLIN S3
- WeMos LOLIN S3 Pro
- Arduino SAMD
- STM32
- Raspberry Pi