ESP32 S2: piedinatura, specifiche e configurazione dell’Arduino IDE – 1
Dettagli esp32 s2
In quest’articolo presenterò la famiglia di dispositivi esp32 s2, questi dispositivi sono in fase di sviluppo e alcune parti potrebbero essere modificate in futuro.
Nel passato 2019 è nata la nuova scheda ESP32, la famiglia s2. All’inizio era supportata solo la piattaforma ESP-IDF, ma ora anche la versione per l’ecosistema Arduino è abbastanza matura, sebbene la versione ufficiale per l’IDE Arduino non sia ancora stata rilasciata in veste ufficiale.
Sull’ESP32-S2 non sono presenti Bluetooth o Ethernet MAC, ma include nuove interessanti funzionalità in maniera da essere più appetibile dal mercato dei dispositivi IoT.
Ha un costo inferiore rispetto all’ESP32 ha un USB-OTG , supporto LCD e per fotocamera .
L’ESP32-S2 è anche in grado di spegnere dinamicamente il ricevitore Wi-Fi quando non è in uso per risparmiare energia.
Inoltre ora monta un potente single core , quindi molti problemi di programmazione come la gestione delle risorse della CPU vengono risolti.
Qui trovi i moduli esp32 s2 di sviluppo ESP32 S2 Saola 1 - Ai-thinke ESP-12K - ESP32 S2 Mini
Specifiche
Ricorda che esistono molte varianti di questo dispositivo, alcune hanno funzioni specializzati, ma qui mettiamo una descrizione base delle specifiche.
- CPU e memoria
- Microprocessore Xtensa® single-core a 32 bit LX7, fino a 240 MHz
- ROM da 128 KB
- 320 KB SRAM
- 16 KB SRAM in RTC
- Flash incorporato (Nessuno, 2 Mb o 4 Mb)
- SPI / QSPI / OSPI supporta più flash e chip RAM esterni
- Wi-Fi
- Conforme a IEEE 802.11 b / g / n
- Supporta una larghezza di banda di 20 MHz, 40 MHz all’interno della banda di 2,4 GHz
- Modalità 1T1R a banda singola con velocità dati fino a 150 Mbps
- WMM
- TX / RX A-MPDU, RX A-MSDU
- Blocco immediato ACK
- Frammentazione e deframmentazione
- Interfacce periferiche avanzate
- 43 × GPIO programmabili
- 2 × ADC SAR a 12 bit, fino a 20 canali
- DAC 2 × 8 bit
- 14 IO con rilevamento del tocco
- 4 × SPI
- 1 × I2S
- 2 × I2C
- 2 × UART
- RMT (TX / RX)
- LED_PWM, fino a 8 canali
- 1 × USB OTG ad alta velocità
- 1 × sensore di temperatura
- 1 × interfaccia telecamera DVP 8/16, implementata utilizzando le risorse hardware dell’I2S
- 1 × interfaccia LCD (RGB seriale a 8 bit / 8080/6800), implementata utilizzando le risorse hardware dell’SPI2
- 1 × interfaccia LCD (8/16/24 bit parallela), implementata utilizzando le risorse hardware dell’I2S
- Sicurezza
- Avvio sicuro
- Crittografia Flash
- OTP a 4096 bit, fino a 1792 bit per gli utenti
- Accelerazione hardware crittografica:
- AES-128/192/256 (FIPS PUB 197)
- Hash (FIPS PUB 180-4)
- RSA
- Generatore di numeri casuali (RNG)
- HMAC
- Firma digitale
Piedinatura
Questo dispositivo è molto potente, puoi vedere che ci sono touch pins capacitivi, più di una UART e vari pin analogici.
ESP32 S2 Saola 1MI
Equipaggiato con l’ESP32-S2-WROVER-I , ci sono 2 versioni di questa scheda, 1M e 1MI, l’unica differenza è che l’1MI ha l’antenna IPEX.
Questa scheda ha 3 componenti aggiuntivi rispetto alla configurazione di base: 4 MB SPI flash, 2 MB PSRAM e un LED RGB indirizzabile (WS2812).
Dettaglio ESP32 S2 Saola 1MI con mmagine ad alta risoluzione del pinout
Ai-thinker ESP-12K
Ai-thinker usa un SoC di Ensink Technology che ha le stesse specifiche di ESP32-S2-WROVER, questa scheda ha un semplice led di stato.
Ci sono 2 versioni di questa scheda:
- ESP-12K (00) senza PSRAM
- ESP-12K (08) con 8MByte PSRAM
Immagine ad alta risoluzione del pinout dell’Ai-thinker ESP 12K ESP32 S2
Configurazione IDE Arduino (Utilizzo del json dev aggiornato)
Aggiungere le boards all’Arduino IDE
Per prima cosa devi aggiungere il descrittore url esp32 al tuo IDE
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
Vai su File --> Preferences
ed aggiungi la url su “Additional Boards Manager URLs
“
Poi devi aggiungere la nuova board sul Board Manager
La scheda da selezionare è la esp32
E’ importante che scegliate una versione del core esp32 >=2.
Configurazione IDE Arduino (installazione manuale del ramo esp32s2) (Deprecato)
Come si può capire dal titolo, non esiste ancora una procedura semplificata, quindi dovremo compiere diversi passaggi per poter utilizzare la nostra esp32 s2 sull’IDE di Arduino.
Installa dal gestore schede dell’IDE le schede ESP32 standard
Il branch è stato spostato in esp32c3 o master non più esp32s2.
Per prima cosa devi aggiungere il descrittore dell’URL esp32 al tuo IDE
http://arduino.esp8266.com/stable/package_esp8266com_index.json
https://dl.espressif.com/dl/package_esp32_index.json
Vai a File --> Preferences
e aggiungi l’URL su “Url aggiuntive gel gestore di schede”.
Quindi è necessario aggiungere una nuova libreria dal Boards Manager
Le schede da selezionare sono le esp32
Scaricare il gestore dal branch ESP32s2
Il branch è stato spostato in esp32c3 o master non più esp32s2.
Ma ora abbiamo installato il ramo stabile del master sull’IDE e non c’è l’implementazione esp32 s2.
Quindi devi scaricare questo branch
Branch GitHub ESP32s2 o Master
poi devi aprire la path dove l’IDE di Arduino memorizza le sue preferenze:
Ora trova l’implementazione esp32, nel mio caso è la cartella
<Arduino IDE preferences path>\packages\esp32\hardware\esp32\1.0.4
nel mio caso sarà
C:\Users\renzo\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4
Per prima cosa crea una copia della cartella packages\esp32 se vuoi ripristinare la situazione iniziale in futuro.
Quindi apri lo zip del branch e copia lo stesso file e cartella nel percorso esp32
Ora puoi trovare l’implementazione del kit di sviluppo ESP32s2 sul tuo IDE Arduino:
Ma non puoi compilare e caricare nulla perché hai bisogno di altri 2 strumenti aggiornati.
Download xtensa-esp32s2-elf
Ma niente può funzionare, questo perché questa scheda non usa xtensa-esp32-elf ma l’xtensa-esp32s2-elf, devi scaricarla da qui:
La versione per il mio sistema operativo Windows 10 è win64.
Download ESPTools
E hai bisogno dell’ultima versione di esptool, puoi controllare l’ultima versione da qui.
La prima versione che supporta ESP32 s2 è la 3.0.0 e la scaricheremo da questo link.
Metti tutto insieme
Ora devi copiare nella cartella
<Arduino IDE preferences folder>\packages\esp32\hardware\esp32\1.0.4\tools
questi 2 tools.
Ora il tuo IDE funziona correttamente Sono commosso.
Il tuo primo sketch ESP32 s2
ESP32 S2 Saola 1MI
Adesso andremo a gestire il led RGB indirizzabile (LED RGB indirizzabile (WS2812), pilotato dal GPIO18) installato sulla scheda.
È necessario installare la libreria Adafruit_NeoPixel.h
dal gestore delle librerie.
Ecco il semplice sketch:
/*
* Here a simple sketch to test the upload of ESP32 S2 Saola 1MI.
* The addressable RGB LED (WS2812), driven by GPIO18 need
* Adafruit NeoPixel library
* by Mischianti Renzo <https://mischianti.org>
*
* https://mischianti.org/
*
*/
#include <Adafruit_NeoPixel.h>
#define PIN 18
#define NUMPIXELS 1
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
enum {NONE, RED, GREEN, BLUE};
int ledColor = NONE;
void setup()
{
pixels.begin();
}
void loop()
{
switch (ledColor) {
case NONE:
pixels.setPixelColor(0, pixels.Color(0, 0, 0));
pixels.show();
break;
case RED:
pixels.setPixelColor(0, pixels.Color(20, 0, 0));
pixels.show();
break;
case GREEN:
pixels.setPixelColor(0, pixels.Color(0, 20, 0));
pixels.show();
break;
case BLUE:
pixels.setPixelColor(0, pixels.Color(0, 0, 20));
pixels.show();
break;
default:
break;
}
ledColor++;
if (ledColor == 4) {
ledColor = NONE;
}
delay(1000);
}
Ai-thinker ESP-12K
Ora uno sketch per questo microcontrollore:
/*
* Here a simple sketch to test the upload of Ai-thinker ESP-12K.
* by Mischianti Renzo <https://mischianti.org>
*
* https://mischianti.org/
*
*/
#define LED_BUILTIN 2
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Entrambe le installazioni, personalizzata e standard, funzionanti sul tuo IDE Arduino
Molte persone mi chiedono come switchare dalla nuova e vecchia installazione in maniera agevole, qui una piccola guida.
Rinomina la nuova installazione esp32s2 all’interno della cartella <Arduino IDE preferences folder>/preferences
da esp32
in esp32s2
e la “vecchia” standard directory in esp32
.
Ora avrai la precedente installazione esp32
(come è la normalità) e in esp32s2
l’installazione da github.
Su “Additional Boards Manager URLs” aggiungi una url fake come
https://dl.espressif.com/dl/package_esp32s2_index.json
Ora duplica da <Arduino IDE preferences folder>
il file package_esp32_index.json
e rinominalo in package_esp32s2_index.json
.
All’interno del nuovo file cambia name
in esp32s2
come segue:
{
"packages": [
{
"name": "esp32s2",
"maintainer": "Espressif Systems",
ora vai nella cartella
<Arduino IDE preferences folder>\packages\esp32s2\hardware\esp32\1.0.4
apri il file platform.txt
e cambia la prima linea da name=ESP32 Arduino
in name=ESP32s2 Arduino
. Riavvia l’IDE.