Sommario:
- Passaggio 1: configura Rapberry Pi
- Passaggio 2: collega ESP-01 a Raspberry Pi
- Passaggio 3: installazione del software (Python per operare e Arduino IDE per programmare)
Video: Flash ESP-01 (ESP8266) senza adattatore da USB a seriale utilizzando Raspberry Pi: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Questo Instructable ti guida su come iniziare a programmare il tuo microcontrollore ESP8266 su un modulo WIFI ESP-01. Tutto ciò di cui hai bisogno per iniziare (oltre al modulo ESP-01, ovviamente) è
- Lampone Pi
- Ponticelli
- Resistenza da 10K
Volevo rinnovare una vecchia lampada da comodino in una moderna lampada da notte a LED controllata da Alexa. Niente di speciale, basta accenderlo/spegnerlo usando il comando vocale. Ho ordinato il modulo WIFI ESP-01 più semplice, il relè e il cavo con LED online e ho completamente dimenticato di ordinare l'adattatore da USB a seriale per programmare il microcontrollore ESP8266. Ma dal momento che avevo un Raspberry Pi e sia il Raspberry Pi che la scheda ESP-01 avevano pin UART, ho pensato di poter usare il mio RPi per programmare ESP8266 senza l'adattatore.
Passaggio 1: configura Rapberry Pi
Ho usato Raspberry Pi 3 Model B+, tuttavia, le istruzioni dovrebbero funzionare su altre versioni, specialmente sul modello B.
Quindi, per prima cosa: dobbiamo abilitare UART su Pi.
Vai alle impostazioni di configurazione di RPi. Nella finestra del terminale esegui
$ sudo raspi-config
Vai a 5 Opzioni di interfaccia, quindi seleziona Seriale P6. Quindi hai chiesto Vuoi che una shell di accesso sia accessibile tramite seriale? selezionare poiché non vogliamo utilizzare UART per eseguire il Pi senza testa, ma per comunicare con altri dispositivi, quindi nella schermata seguente quando richiesto Vuoi che l'hardware della porta seriale sia abilitato? Selezionare. Riavvia il Pi come richiesto. UART dovrebbe ora essere abilitato per la comunicazione seriale su pin RX e TX di Raspberry Pi 3. Nota: dopo questo dovrebbe apparire una nuova voce enable_uart=1 alla fine di /boot/config.txt.
Passaggio 2: collega ESP-01 a Raspberry Pi
Ora passiamo a collegare tutto insieme.
Innanzitutto, identifica sul tuo RPi 3.3V i pin di alimentazione e GND (massa) per alimentare il microcontrollore ESP8266, i pin TXD (trasmissione) e RXD (ricezione) per comunicare e due pin generici per far funzionare ESP8266 (pin che possono essere impostati in alto o basso). Cerca la disposizione dei pin su pinout.xyz o digita il terminale:
$ pinout
In secondo luogo, identifica i pin necessari su ESP-01. Ma all'inizio abbiamo bisogno di capire i pin ESP-01. Ho trovato una serie di risorse utili disponibili su Internet per aiutarti in questo senso. Questo è il più breve, mentre questo dà una spiegazione molto migliore. In breve: ci sono 8 pin, ne avremo bisogno 7, vale a dire i pin di alimentazione VCC e GND (massa) per l'alimentazione, i pin TXD e RXD per la comunicazione e RST (reset), CH_PD (Chip Power Down, a volte etichettato CH_EN o chip enable) e GPIO0 per far funzionare il modulo. Di solito ESP8266 funziona in modalità normale, ma quando si carica un codice su ESP8266 si presta a essere in modalità flash. Per la modalità di funzionamento normale o normale il modulo deve essere collegato all'alimentazione (ovviamente), ma anche il pin CH_PD deve essere collegato a VCC tramite un pull-up da 10K (questo valore varia in diversi ricorsi, ho trovato valori fino a 3K). resistenza all'avvio. dall'altro lato, per entrare in modalità lampeggiante o di programmazione è necessario mettere a terra il pin GPIO0 all'avvio. Per evitare un flusso di corrente illimitato tramite GPIO0 quando collegato a terra, si consiglia di collegare GPIO0 a terra tramite un resistore a bassa resistenza da 300 - 470 (maggiori informazioni qui). Il pin RST, come suggerisce il nome, ripristina (o riavvia) l'MCU. Durante il normale funzionamento può essere collegato a VCC tramite un resistore di pull-up da 10K, ma deve essere messo a terra per ripristinare il microcontrollore. Sebbene sia sempre possibile utilizzare i pulsanti fisici per mettere a terra i pin RST e GPIO0 (o anche unire manualmente i fili per simulare un pulsante), è un'esperienza molto più piacevole utilizzare i pin Raspberry Pi per impostare la tensione alta e bassa sull'RST e GPIO0 del modulo perni. Inoltre non sono necessarie resistenze da 10K e 470Ω.
Ora, essendo a conoscenza delle peculiarità dei pin ESP-01, possiamo iniziare a collegare tutto insieme. È possibile utilizzare la seguente tabella come riferimento insieme al disegno sopra:
ESP-01 Raspberry Pi
- VCC (3,3 V) pin n. 1 (3,3 V)
- GND pin #6 (GND)
- Pin TXD n. 10 (RXD / BCM 15)
- Pin RXD #8 (TXD / BCM 14)
- CH_PD pin n. 1 (3,3 V)
- Pin 3 RST (BCM 2)
- GPIO 0 pin #5 (BMC 5)
Collegare il pin VCC per ultimo. L'istanza in cui hai collegato il pin VCC al tuo modulo Wi-Fi si accenderà. Utilizzare screen o minicom per verificare se RPi ed ESP8266 possono comunicare tramite UART (nota: potrebbe essere necessario installare prima screen o minicom, poiché non sembrano essere installati su Raspbian per impostazione predefinita).
Usando l'esecuzione dello schermo:
$ sudo screen /dev/serial0 115200
Usando minicom esegui:
$ sudo minicom -b 115200 -o -D /dev/serial0
Nota: molte risorse online suggeriscono di connettersi a ESP8266 su /dev/ttyAMA0, ma questo non funziona con RPi 3 o successivo (incluso zero W) come da documentazione RPi. Connettiti tramite /dev/serial0 invece o /dev/ttyS0.
Dopo aver inserito screen o minicom, usa i comandi AT per comunicare con ESP8266. Digitare AT, quindi premere Invio e quindi premere Ctrl+J per inviare il comando. Dovresti ottenere OK in risposta. L'elenco dei comandi AT disponibili è disponibile su espressiff.com o semplicemente qui.
Quando i dispositivi sono fisicamente collegati e parlano tra loro, possiamo passare alla programmazione dei pin GPIO RPi e, infine, allo stesso ESP8266.
Passaggio 3: installazione del software (Python per operare e Arduino IDE per programmare)
PARTE 1. Usare Python per cambiare modalità ESP8266
Come accennato in precedenza, è conveniente utilizzare i pin GPIO di RPI per cambiare le modalità operative di ESP8266. Ho scritto due codici Python di base che mettono ESP8266 in modalità normale o di programmazione.
Modalità normale: per mettere il microcontrollore in modalità di funzionamento normale, dobbiamo solo alimentarlo e collegare CH_PD tramite resistore di pull-up a VCC, ma per far passare l'MCU dalla programmazione alla modalità normale dobbiamo ripristinarlo (si pensi al riavvio). Per farlo su RPi, abbasseremo brevemente il GPIO di RPi collegato al pin RST su ESP-01 (per impostazione predefinita il pin RPi che ho usato per il ripristino è impostato su HIGH). Quanto brevemente? Per me è una domanda speculativa. Puoi provare diversi intervalli di tempo, ma ho scoperto che 200 - 500 ms funzionano bene. Scrivi nei commenti se hai un'idea migliore. Salva il tuo codice come reset.py
#!/usr/bin/python
import RPi. GPIO as GPIO import time GPIO.setmode(GPIO. BOARD) # imposta l'identificazione GPIO tramite numeri di pin fisici resetPin = 3 # identifica il pin fisico RPi connesso al pin RST di ESP8266 GPIO.setup(resetPin, GPIO. OUT) # imposta reset pin come output GPIO.output(resetPin, GPIO. LOW) # abbassa la tensione sul pin RST time.sleep(.2) # aspetta.2 s GPIO.output(resetPin, GPIO. HIGH) # ripristina la tensione sul pin RST GPIO. cleanup() # ripristina i pin su RPI per evitare futuri avvisi di runtime
-
Modalità di programmazione: per mettere l'MCU in modalità di programmazione, dobbiamo alimentare ESP8266 con GPIO0 collegato a terra, o in alternativa ripristinarlo e mettere a terra GPIO0 durante l'avvio (di nuovo la durata esatta delle cadute di tensione non mi è del tutto nota, quindi non essere strettamente guidato dai valori utilizzati). Salva il codice come flash.py o scaricalo qui sotto. La successione delle azioni è la seguente:
- tira giù il perno RST
- tira giù il pin GPIO0
- tirare su il perno RST
- tirare su il pin GPIO0
#!/usr/bin/python
import RPi. GPIO as GPIO import time GPIO.setmode(GPIO. BOARD) # imposta l'identificazione GPIO tramite numeri di pin fisici resetPin = 3 # identifica il pin fisico RPi connesso al pin RST di ESP8266 flashPin = 5 # identifica il pin fisico RPi connesso al pin GPIO0 di ESP8266 GPIO.setup(resetPin, GPIO. OUT) # imposta il pin di reset come output GPIO.setup(flashPin, GPIO. OUT) # imposta il pin flash come output GPIO.output(resetPin, GPIO. LOW) # abbassa la tensione sul tempo del pin RST. sleep(.2) # la necessità di questa attesa è speculativa GPIO.output(flashPin, GPIO. LOW) # abbassa la tensione su GPIO0 time.sleep(.2) # la necessità di questa attesa è speculativa GPIO.output(resetPin, GPIO. HIGH) # avvia l'avvio di ESP8266 time.sleep(.5) # attendi l'avvio di ESP8266 GPIO.ouput(flashPin. GPIO. HIGH) # ripristina la tensione su GPIO pinGPIO.cleanup() # ripristina i pin su RPI per evitare futuri avvisi di runtime
Nei permessi di modifica del terminale:
$ sudo chmod +x flash.py
$ sudo chmod +x reset.py
D'ora in poi ogni volta che devi entrare in modalità di programmazione esegui nel terminale:
$ python /flash.py
dopo aver caricato il codice per accedere alla modalità di funzionamento normale, eseguire:
$ python /reset.py
A questo punto potresti anche voler aggiornare il firmware ESP8266. Ci sono molti tutorial online su come farlo, quindi non entrerò nei dettagli su come farlo.
PARTE 2. Configurazione dell'IDE Arduino
se hai già installato Arduino IDE, potresti comunque voler scorrere la sezione assicurandoti che il tuo IDE sia pronto per ESP8266.
Su Rapberry Pi puoi usare Arduino IDE per programmare il tuo ESP8266. Esistono due modi per installare l'IDE su RPi:
- tramite la riga di comando dai repository utilizzando apt-get install
- scarica e installa manualmente da arduino.cc.
Consiglio vivamente di seguire quest'ultima strada. La versione IDE dei repository sembra essere obsoleta e sicuramente dovrai fare di più prima di essere pronto per iniziare a programmare ESP8266. Per evitare il fastidio, vai alla pagina di download di Arduino.cc e scarica la versione Linux ARM. Quindi decomprimi e installa: se il nome del file scaricato assomiglia a questo arduino-X. Y. Z-linuxarm.tar.xz, nella cartella di download esegui:
$ tar -xvf arduino-X. Y. Z-linuxarm.tar.xz
Questo dovrebbe decomprimere il file nella cartella arduino-X. Y. Z. Correre:
$ sudo./arduino-X. Y. Z/install.sh
Questo dovrebbe installare l'IDE. Al termine dell'installazione, avviare l'IDE.
- Dall'IDE di Arduino vai su File > Preferenze. Cerca "Ulteriori URL di Board Manager" nella parte inferiore della finestra delle preferenze. Immettere https://arduino.esp8266.com/stable/package_esp8266com_index.json nel campo "Ulteriori URL di Board Manager", fare clic sul pulsante "OK".
- Vai su Strumenti > Bacheca: XXX > Gestore bacheche. Nella finestra utilizzare la ricerca o scorrere verso il basso, selezionare il menu della scheda ESP8266 e fare clic su Installa. Attendi il completamento dell'installazione e chiudi la finestra.
- Di nuovo vai su Strumenti> Scheda: XXX e cerca le schede ESP8266. Scegli il modulo ESP8266 generico.
Ora IDE è pronto per programmare ESP8266. Digita o incolla il codice desiderato nella finestra IDE e salvalo. Fare clic su Carica. Dal terminale esegui flash.py, questo dovrebbe mettere la tua scheda in modalità di programmazione. Attendi alcuni minuti affinché l'IDE termini la compilazione e il caricamento (nota: ESP-01 in genere viene fornito con 2 LED, il LED blu lampeggerà durante il caricamento del codice) ed esegui reset.py. Ora la tua scheda ESP-01 è pronta per svolgere i compiti.
Consigliato:
Configura Raspberry Pi 4 tramite laptop/pc utilizzando il cavo Ethernet (senza monitor, senza Wi-Fi): 8 passaggi
Configura Raspberry Pi 4 tramite laptop/pc utilizzando il cavo Ethernet (senza monitor, senza Wi-Fi): in questo lavoreremo con Raspberry Pi 4 Modello B di 1 Gb di RAM per la configurazione. Raspberry-Pi è un computer a scheda singola utilizzato per scopi didattici e progetti fai-da-te con un costo accessibile, richiede un'alimentazione di 5V 3A.Sistemi operativi come
Crea il tuo adattatore Ekit Rock Band (senza adattatore legacy), in modo non distruttivo!: 10 passaggi
Crea il tuo adattatore Ekit Rock Band (senza adattatore legacy), in modo non distruttivo!: Dopo aver sentito un famoso host di podcast menzionare la sua preoccupazione per la morte del suo adattatore legacy USB cablato, sono andato alla ricerca di una soluzione fai-da-te per collegare un eKit migliore / personalizzato a RB . Grazie a Mr DONINATOR su Youtube che ha realizzato un video che descrive in dettaglio il suo simile p
Adattatore da seriale a USB SpaceBall 4000: 4 passaggi
Adattatore da seriale a USB SpaceBall 4000: SpaceBall 4000 (equivalente al 5000FLX, ma non al 5000) è un mouse 3D seriale con 12 pulsanti che puoi acquistare su ebay per meno di $ 20. Questi sono utili per la progettazione grafica 3D, poiché puoi spostare i modelli lungo tre assi e ruotarli
Adattatore seriale da console Cisco a modem null: 4 passaggi
Adattatore seriale Cisco da console a null modem: al momento, sto portando con me il cavo da USB a seriale (poiché il mio laptop non ha una porta seriale), un cavo per console Cisco e un cavo null modem (per switch più vecchi e altre apparecchiature). Quando lavoro su apparecchiature meno recenti, devo scollegare il mio Cisco c
Dispositivo di raffreddamento/supporto per laptop a costo zero (senza colla, senza foratura, senza dadi e bulloni, senza viti): 3 passaggi
Dispositivo di raffreddamento/supporto per laptop a costo zero (senza colla, senza foratura, senza dadi e bulloni, senza viti): AGGIORNAMENTO: PER FAVORE, PER FAVORE, PER FAVORE, PER IL MIO ISTRUTTORE, GRAZIE ^_^ POTRESTI ANCHE VOTARE PER IL MIO ALTRO CONCORSO ISCRIZIONE A www.instructables.com/id/Zero-Cost-Aluminum-Furnace-No-Propane-No-Glue-/ O FORSE VOTA PER IL MIO MIGLIORE AMICO