MicroPython

ESP32

In fase di sviluppo Stesura preliminare In fase di sviluppo

Questa pagina mostra come utilizzare MicroPython per programmare ESP32. La stessa pagina è disponibile anche per ESP8266.

Il sistema operativo di riferimento è Debian Trixie.

Cosa serve prima di iniziare

Configurare ESP32

Scaricare il firmware MicroPython

Nella pagina https://micropython.org/download sono mostrate le schede supportate. Selezionare l'ultima versione stabile del firmware adatto alla scheda in uso. Per esempio:

Di seguito si farà riferimento alla versione 1.29.0 dell'agosto 2026 per ESP32-C3. Per altre schede o altre versioni del firmware si rimanda alla pagina specifica per il modello per i dettagli.

Installare esptool

esptool è il programma ufficiale che permette di comunicare con ESP32 e caricare il firmware. Prima di procedere è vivamente consigliato creare un ambiente virtuale in cui installare le librerie. Da terminale:

vv@vv-i7:~$ mkdir python
vv@vv-i7:~$ cd python/
vv@vv-i7:~$ mkdir ESP32-C3
vv@vv-i7:~$ cd ESP32-C3
vv@vv-i7:~$ python3 -m venv .venv
vv@vv-i7:~$ source .venv/bin/activate

(.venv) vv@vv-i7:~/python/ESP32-C3$ pip install esptool

Scaricare il firmware:

(.venv) vv@vv-i7:~/python/ESP32-C3$ wget https://micropython.org/resources/firmware/ESP32_GENERIC_C3-20260824-v1.29.0.bin

Identificare la porta

Questo passaggio, non strettamente necessario, è utile per risolvere eventuali problemi futuri.

Collegare ESP32 al computer tramite USB. Occorre scoprire quale porta è utilizzata, cercandola nella directory /dev/. Utile digitare ls -l /dev/tty seguito due volte dal tasto di tabulazione per il completamento automatico. Il nome è simile a ttyUSB0 oppure ttyACM0; nel dubbio staccare ESP32 dal cavo USB e riprovare.

Cercare la seriale

Installare il firmware

Le istruzioni dettagliate per installare il firmware sono disponibili nella pagina da cui si scarica il codice, ma se vate fretta potete leggere le righe seguenti:

Prima di installare MicroPython, è necessario cancellare la memoria Flash. Da terminale:

(.venv) vv@vv-i7:~/python/ESP32-C3$ esptool erase-flash

Ora installeremo su ESP32 il firmware scaricato in uno dei passi presedenti. Occorre usare il seguente comando (nota 1), assicurandosi di inserire percorso esatto del file .bin:

(.venv) vv@vv-i7:~/python/ESP32-C3$ esptool write-flash 0 ./ESP32_GENERIC_C3-20260824-v1.29.0.bin

Scrivere il codice

Ora MicroPython è installato su ESP32! Per scrivere il primo codice (come far lampeggiare un LED o connetterti al Wi-Fi), il modo più semplice è usare Thonny IDE:

Esempio 1: LED che lampeggia

from machine import Pin
import time
# Configura il Pin 8 (dove è collegato il LED integrato sull'ESP32-C3)
led = Pin(2, Pin.OUT)
while True:
    led.value(0) # Accende il LED
    time.sleep(0.1) # Attende 100 ms
    led.value(1) # Spegne il LED
    time.sleep(1) # Attende 1 secondo

Se si desidera che il programma sia eseguito anche staccando ESP32 dal PC occorre salvare il programma con il nome boot.py sul dispositivo.

Esempio 2: WiFi

Nel seguente esempio ESP32 si collega come client alla rete WiFi:

import network
import time
SSID = 'IL_TUO_NOME_WIFI'
PASSWORD = 'LA_TUA_PASSWORD_WIFI'
def connect_wifi():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('Connessione alla rete', SSID, 'in corso...')
        wlan.connect(SSID, PASSWORD)
        while not wlan.isconnected():
            time.sleep(0.5)
            print('.', end='')
    print('\nConnessione stabilita con successo!')
    ip_address = wlan.ifconfig()[0]
    print('Il tuo Indirizzo IP è:', ip_address)
connect_wifi()

Test WiFi

Come ulteriore verifica, ESP32 risponde al ping.

Note

  1. Per altri modelli è consigliato specificare la velocità di scrittura del firmware. Inoltre per la versione WROOM è  necessario indicare l'indirizzo iniziale in cui scrivere il firmware. Leggere la pagine da cui si è scaricato il firmware!


Pagina creata nel settembre 2026
Ultima modifica: 26 settembre 2026


Pagina principale  Accessibilità  Note legali  Posta elettronica  XHTML 1.0 Strict  CSS 3

Vai in cima