Finalmente andiamo ad utilizzare la versione più piccola e comune della ESP8266, appunto la ESP-01 .
Collegamenti e primo utilizzo.
PINS:
Per prima cosa, vediamo i veri nomi dei pins:
Per non creare ambiguità, i numeri da mettere in Arduino per abilitare i pin sono quelli che iniziano per "GPIOn" dove n sta per il numero del pin.
I pin che si possono utilizzare sono :
- GPIO0
- GPIO2
- TX - GPIO1 - internal led
- RX - GPIO3
Mentre RST,CH_PD, VCC e GND hanno funioni ben specifiche. I primi due verranno discussi a breve.
Alimentazione:
Primo e fondamentale punto da tenere sempre ben presente:
La ESP-01 funziona con 3.3V , non 5V.
Ergo non è compatibile con i segnali e l'alimentazione d'Arduino.
Vorrei essere il più chiaro possibile:
Vorrei essere il più chiaro possibile:
- Arduino è alimentato, tipicamente, da USB = 5V . Alimentare la nostra ESP-01 a 5V la ucciderà!
- I pins d'uscita d'Arduino sono a 5V, quelli della nostra ESP-01 sono a 3.3V.
Questo significa, per esempio, che se dobbiamo controllare un servo motore tramite il pin di controllo, tipicamente a 5V, questo non sentirà il segnale.
Soluzioni? analizziamole:
- Logical level converter: http://goo.gl/reIhjC
Questo semplice dispositivo, attivo, vi permetterà di collegare un dispositivo con segnale 5V (TTL) ed avere in uscita lo stesso segnale ma a 3.3V. Essendo attivo, permette anche l'opposto!
- FTDI: http://goo.gl/yrpgfB
Completo e veramente multi uso, permette di convertire un segnale USB Seriale, in uno parallelo ad un determinato voltaggio. Esattamente quello che ci serve!
Consiglio caldamente, è molto molto utile per tantissime applicazioni.
Consiglio caldamente, è molto molto utile per tantissime applicazioni.
- Partitore di tensione: http://goo.gl/yjqemL
L'ultima spiaggia, se proprio avete solo delle resistenze!
Questa guida utilizzerà l'FTDI, essendo quello più completo e più facile da utilizzare.
Collegamenti e abilitazioni:
Facendo fede a questo semplice schematico, facciamo tutti i collegamenti e studiamone il funzionamento.
Ricordate, mettete il jumper sulla posizione 3.3 V sulla FTDI.
Analizziamo rapidamente i collegamenti più importanti.
Subito salta all'occhio la doppia alimentazione, cavo rosso, e la doppia massa, cavo nero.
Ma perchè?
L'ESP-01 ha due modalità di Boot da tener ben presenti:
NB: queste combinazioni sono richieste solo all'avvio della scheda.
- UART/Abilitazione alla scrittura, quando andiamo a riprogrammare la scheda, caricando il nostro codice su di essa.
Questa procedura si abilita collegando pin GPIO 0 -> LOW.
Insomma dobbiamo collegare il pin GPIO 0 a GND.
- Flash, andrà a caricare il programma che è stato scritto i modalità UART.
In pratica basta collegare il pin CH_PD -> High (VCC).
ALT, ma non sono due combinazioni che devo effettuare per inserire le due modalità di Boot?
Si è vero, ( se non vi interessa saltate direttamente al capitolo successivo):
In UART basta forzare GPIO0 a GND, l'altro flotterà a HIGH.
In Flash se collegate CH_PD -> HIGH ( avvio effettivo della scheda ) GPI0e2 flotteranno HIGH.
Altre combinazioni intermedie non danno origine a nulla, quindi non possono capitare in Boot.
Esempio con l'Arduino IDE:
Dopo aver correttamente configurato l'Arduino IDE per ogni tipo di ESP8266, selezioniamo seguendo l'immagine.
Successivamente andiamo a caricare l'esempio:
Questo primo esempio farà accedere un led interno alla scheda, di colore blu. Un po' come il led 13 sulla scheda Arduino.
Carichiamo il nostro programma sulla ESP - 01, ricordando d'abilitare la scheda con il pin CH_PD -> High ( VCC ) & per l'abilitazione alla scrittura GPIO 0 -> Down ( GND ).
Una volta terminato il caricamento, scolleghiamo il nostro FTDI dal PC, rimuoviamo il collegamento GPIO 0 -> Down ( GND ) e ricolleghiamo l'FTDI.
Dopo qualche secondo il led inizierà a lampeggiare.
ESP01 programmer:
Perchè dover collegare ogni volta i fili manualmente al nostro FTDI?
Spesso ci si sbaglia o si dimenticano i collegamenti, meglio costruirsi un programmer DIY.
Schematico DIY programmer per ESP01 |
Nella foto sottostante vediamo il programmer ultimato.
Ovviamente non ho collegato CH_PD -> High e la scheda non è accesa.
Ora colleghiamo CH_PD -> High ( VCC ) con un jumper. La scheda è ora accesa.
Nel caso ci fosse già caricato un programma, questo verrà eseguito.
Per inserire la modalità scrittura colleghiamo GPIO 0 -> Down ( GND ) & l'accensione CH_PD -> High ( VCC ) .
Nessun commento:
Posta un commento