Scheda di programmazione per modulo ESP-01

Spread the love

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

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

esp01_pinout
esp01 piedinatura

Definizione dei pin

NomeTipo
Funzione
VCCPPower 3,0 ~ 3.6 V
GndPGround
ResetHoSegnale di reset esterno (bassa tensione: attivo)
CH_PDHoChip Enable. Alta tensione: attivo, ed il chip funziona correttamente; Bassa: disattivo
GPIO0 (FLASH)I/OIO uso generale, se in bassa tensione mentre si resetta o si accende passa in modalità di programmazione seriale
GPIO1 (TX)I/OUso generale IO e Serial TXd
GPIO3 (RX)I/OUso generale IO e Serial RXd
GPIO2I/OUso 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.

Modulo CH340G è la mia scelta forzata
Modulo 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”

Aggiungi l’URL a “Additional Boards Manager URLs”

Poi è necessario aggiungere nuova scheda in Boards Manager

Seleziona Gestione Board

I moduli da selezionare naturalmente sono gli esp8266

Seleziona esp8266 Board

Poi sarà possibile selezionare la scheda esp8266 generica dalla lista

Selezionare il modulo esp8266

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

PCB fresatura

Aggiungo il file gcode che ho usato con il mio CNC, in modo da poter replicare il mio processo di fresatura.

Rame fondo gcode

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.

Il mio vecchio router sul lavoro

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

  1. 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.
  2. Avvia l’upload dello schetch.
  3. 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”.
  4. 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.
Carica il file Blink

Utilizzare tutti i 4 pin della scheda

  1. 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.
  2. Avvia l’upload dello schetch.
  3. 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”.
  4. Così puoi vedere al lavoro tutti i 4 pins attivare i relativi led.
Carica schetch per controllare tutti i 4 pin

Utilizzare 3 pin per controllare LED e uno a serial debug

  1. 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.
  2. Avvia l’upload dello schetch.
  3. Collega il monitor seriale alla specifica porta.
  4. 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”.
  5. Così puoi vedere al lavoro i 3 pins che attivano i relativi led e fare debug del programma.
Carica schetch per controllare 3 LED e un PIN per ottenere il debug seriale

Grazie

Se avete problemi o altri commenti scrivere o aprire un argomento al forum.

Potrebbero interessarti anche...