ESP-01 è un modulo esp8266 a basso costo, con WIFI integrato.
È stato creato come modulo WIFI per Arduino, ma in realtà ha più potenza di un Arduino stesso, ottimo per chi deve fare un piccolo modulo per controllare relè o qualche semplice data-logger digitale.
Specifiche
Ecco l'esp esp01 - esp01 programmer
Esiste qualche variante di questo modulo, ma tutti hanno un processore L106 32-bit RISC basato sul TENSILICA Xtensa Diamond standard 106Micro con frequenza a 80 MHz, quando se ne acquista uno si deve prestare attenzione solo alla dimensione della memoria Flash, alcuni hanno 512 KiB, altri 1MiB
Pinout
Definizione dei pin
Nome | Tipo | Funzione |
VCC | P | Power 3,0 ~ 3.6 V |
Gnd | P | Ground |
Reset | Ho | Segnale di reset esterno (bassa tensione: attivo) |
CH_PD | Ho | Chip Enable. Alta tensione: attivo, ed il chip funziona correttamente; Bassa: disattivo |
GPIO0 (FLASH) | I/O | IO uso generale, se in bassa tensione mentre si resetta o si accende passa in modalità di programmazione seriale |
GPIO1 (TX) | I/O | Uso generale IO e Serial TXd |
GPIO3 (RX) | I/O | Uso generale IO e Serial RXd |
GPIO2 | I/O | Uso generale IO e Serial1 TXd |
Nota: TX1 e TX GPIO1 sono collegati internamente, ed al LED blu
Come descritto per entrare in modalità programmazione è necessario impostare su bassa tensione il GPIO0 e resettare il modulo, che è possibile caricare lo sketch.
Programmazione
Come si può vedere questo modulo non ha USB perciò per programmarlo dovremo utilizzare un convertitore USB a TTL, lo si può trovare a 1€.
Ho qualche problema con i modelli più costosi che montano FT232RL o FT232, invece con i CH340G o CH340 lavoro molto bene.
Qui il convertitore USB to TTL CH340G - USB to TTL FT232RL
Lo schema di connessione di base è abbastanza semplice, è necessario mettere 3,3 v su VCC e CH_PD (per alimentare e attivare), quindi mettere su GND il GND e GPIO0 (l’ultimo per mettere il modulo in modalità programmazione), e poi collegare RX a TX e TX a RX.
Configurare l’IDE
Poi dovete configurare il vostro IDE Arduino
In primo luogo devi aggiungere il descrittore dell’esp8266 al tuo IDE:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Vai a File –> Preferences e aggiungi l’URL nel campo “Additional Boards Manager URLs”
Poi è necessario aggiungere nuova scheda in Boards Manager
I moduli da selezionare naturalmente sono gli esp8266
Poi sarà possibile selezionare la scheda esp8266 generica dalla lista
Ora puoi caricare il tuo sketch.
Scheda di programmazione
Questo processo è noioso, è necessario collegare poi rimuovere le connessione e così via, inoltre utilizzare tutti i pins può essere frustrante.
La mia soluzione per semplificare questo problema è quello di creare una scheda di programmazione.
Le funzionalità saranno:
- Aggiungere un’alimentazione esterna per dare più ampere al circuito;
- un interruttore per selezionare la modalità di programmazione e poi rilasciare il pin GPIO0;
- 2 interruttori per attivare RX e TX e per garantire l’uso di quel pin per l’eventuale circuito;
- un pulsante di reset per iniziare la programmazione.
Qui la breadboard, lo schema e un prototipo PCB:
Creare la scheda
Componenti
- 2 condensatori da 10uF
- 2 resistenze da 10Kohom
- Un bottone
- 3 switch SMD
- 1 LM1117T-3.3
- 1 connettore a barile da 5.5
Ordina il PCB a pochi euro
Puoi avere il PCB per programmare l'esp01 senza costi qui PCBWay
PCB fresatura
Aggiungo il file gcode che ho usato con il mio CNC, in modo da poter replicare il mio processo di fresatura.
File Gerber
Se si desidera reinterpretare la scheda è possibile utilizzare i file Gerber.
Etching
Io non uso questa tecnica, ma molte persone preferisce questo tipo di processo.
Risultato del processo di fresatura
Aggiungo il risultato ottenuto con il mio vecchio glorioso CNC (creato con uno scanner e stampante Epson), abbastanza grezzo ma OK.
C’è anche un bug fixato con un filo (nel file che ti do non è più presente).
In pochi giorni spero di aggiungere il tutorial per creare il mio nuovo CNC, e il tutorial per creare un PCB ed il relativo gcode. Ricordo che allo stato di questa pubblicazione questo sito è un lavoro in corso.
Assemblaggio del PCB
Ora passiamo all’assemblaggio
Come utilizzare la scheda di programmazione
L’utilizzo è abbastanza semplice:
Prima inserire il nostro esp01 nella scheda, collegare GND a GND, TX a RX e RX a TX del convertitore TTL a USB.
Ora siete pronti a programmare, aggiungo alcuni esempi di utilizzo.
Caricare un file Blink
- Sulla scheda devi posizionare lo switch in modalità programmazione e poi cliccare il bottone di reset. Controlla che gli switch TX e RX siano posizionati in modalità trasferimento.
- Avvia l’upload dello schetch.
- Quando hai finito metti in stato di “utilizzo” lo switch di programmazione così da liberare il relativo pin, alla stessa maniera metti anche il pin TX in modalità “utilizzo”.
- Così puoi vedere il blink anche del led esterno collegato al pin di TX, nell’esp01 il pin TX e il BUILTIN_LED sono collegati insieme.
Utilizzare tutti i 4 pin della scheda
- Sulla scheda devi posizionare lo switch in modalità programmazione e poi cliccare il bottone di reset. Controlla che gli switch TX e RX siano posizionati in modalità trasferimento.
- Avvia l’upload dello schetch.
- Quando hai finito metti in stato di “utilizzo” lo switch di programmazione così da liberare il relativo pin, alla stessa maniera metti anche i pin TX e RX in modalità “utilizzo”.
- Così puoi vedere al lavoro tutti i 4 pins attivare i relativi led.
Utilizzare 3 pin per controllare LED e uno a serial debug
- Sulla scheda devi posizionare lo switch in modalità programmazione e poi cliccare il bottone di reset. Controlla che gli switch TX e RX siano posizionati in modalità trasferimento.
- Avvia l’upload dello schetch.
- Collega il monitor seriale alla specifica porta.
- Quando hai finito metti in stato di “utilizzo” lo switch di programmazione così da liberare il relativo pin, alla stessa maniera metti anche il pin RX in modalità “utilizzo”.
- Così puoi vedere al lavoro i 3 pins che attivano i relativi led e fare debug del programma.
Grazie
Se avete problemi o altri commenti scrivere o aprire un argomento al forum.