Modulo WiFi ESP8266 per manichini

Panoramica del modulo WiFi ESP8266

ESP8266 è un modulo WiFi davvero utile ed economico per il controllo di dispositivi su Internet. Può funzionare con un microcontrollore come Arduino o può essere programmato per funzionare da solo.

L'Internet of Things (IoT) è appena stato reso molto più economico e semplice!

ESP8266 viene fornito con un firmware installato in fabbrica che consente di controllarlo con "comandi AT" standard. Puoi anche creare e caricare facilmente il tuo codice e questo lo rende estremamente potente e flessibile.

L'ESP8266 è stato lanciato sul mercato nel 2014 e sta rapidamente crescendo in popolarità. Esiste un solo processore ESP8266 ma si trova su molte schede breakout diverse. Tutti questi differiscono per quanto riguarda i pin esposti e le dimensioni della memoria flash, ecc. Queste schede breakout si sono evolute rapidamente nel corso degli anni e ci sono molte informazioni disponibili sul web. Questa è sia una benedizione che una maledizione poiché alcuni dei consigli sono obsoleti o semplicemente sbagliati.

Di conseguenza mi ci sono voluti 3 giorni prima che potessi farlo fare qualsiasi cosa! Alcune persone sono fortunate ma per me è stata una battaglia per far funzionare qualsiasi cosa. A volte pensavo di averlo rotto, ma con una certa perseveranza è tornato sempre in vita!

Finalmente riesco a cantare e ballare e risulta essere più facile di quanto pensassi!

Ho consolidato tutte le informazioni utili che ho trovato in un unico posto e ho pensato di condividerle in maniera istruibile. Si spera che questo ti renda rapidamente operativo con tutte le funzionalità di base di cui avrai bisogno.

In questo istruttivo stavano guardando la scheda di breakout ESP-01.

Questo stesso approccio dovrebbe tuttavia applicarsi alla maggior parte (se non a tutte) delle varianti dell'ESP in circolazione.

Step 1: L'ESP-01 in breve

  1. Supporta il protocollo 802.11 b / g / n
  2. Può connettersi al router e funzionare come client oppure può essere un punto di accesso stesso o entrambi!
  3. È indirizzabile IP e può essere un server Web
  4. La versione "standard" ha 2 pin digitali che possono essere utilizzati per l'ingresso o l'uscita. Ad esempio: per pilotare LED o relè. Questi pin possono essere utilizzati anche per PWM. Altre versioni hanno più pin esposti. Ad esempio ESP-12, che è una buona opzione se hai bisogno di più pin. In entrambi i casi la programmazione è sempre la stessa.
  5. L'ingresso analogico è disponibile anche sul chip ESP8266 (ADC / TOUT) ma non è collegato all'ESP-01.
  6. Può essere combinato con un Arduino o può essere programmato per funzionare da solo
  7. Esistono vari strumenti e ambienti di sviluppo (IDE) per programmarlo.
  8. E ha molto di più…

In questa demo ESP8266 funge da server Web che ospita una pagina Web con la quale è possibile interagire tramite WiFi.

Con questa demo puoi avviare il tuo progetto di automazione domestica e controllarlo dal web!

Passaggio 2: cosa ti servirà

Innanzitutto vediamo se riusciamo a metterlo in funzione.

Molti siti consigliano di eseguire nuovamente il flashing del firmware e di utilizzare vari strumenti. Non è necessario farlo ancora.

Sostituiremo il firmware con il nostro codice. In un altro istruibile: la semplice guida al flashing del firmware ESP8266 vi mostro come ripristinare una versione di fabbrica aggiornata. Se programmerai ESP8266 solo con il tuo codice, come faremo in questa demo, non avrai bisogno del firmware di fabbrica. Il tuo codice è il firmware.

Useremo l'IDE di Arduino come strumento di programmazione ma non abbiamo bisogno di un Arduino stesso. ESP8266 ha tutte le funzionalità di cui abbiamo bisogno.

Nota: dopo aver caricato il proprio codice, ESP8266 non risponderà più ai comandi AT. Il tuo codice ha sostituito il firmware. Usando il tuo codice e la libreria ESP8266 nell'IDE di Arduino avrai accesso a una serie più ricca di comandi. Vedere la documentazione qui: //www.arduino.cc/en/Reference/WiFi

È possibile ripristinare il firmware su ESP8266 per tornare ai comandi AT, se lo si desidera. Guarda le altre mie istruzioni: La semplice guida al flashing del tuo firmware ESP8266.

NB : è un modulo 3.3V e non 5V. L'ESP-01 è più robusto di quanto pensassi, ma dovresti installarlo correttamente, specialmente se lo stai usando con un USB da 5V a programmatore seriale o microcontrollore, altrimenti potresti friggerlo!

Di cosa hai bisogno:

  1. Ovviamente un ESP8266 (usa la variante ESP-01 o adatta il tuo cablaggio di conseguenza)
  2. breadboard
  3. Programmatore da USB a seriale 3.3V come FTDI Basic (a volte noto come UART: ricevitore / trasmettitore asincrono universale). Alcuni sono dotati di un ponticello per passare da 5 V a 3, 3 V.
  4. Cavi per ponticelli breadboard
  5. Un alimentatore separato da 3, 3 V. Ne hai bisogno perché l'ESP8266 può masticare molti mA (> 250mA a volte). L'uscita 3.3V dal programmatore seriale o Arduino non è sufficiente. Senza un alimentatore separato, l'ESP potrebbe essere irregolare e perdere tempo nel tentativo di caricare il codice.
  6. Led, pulsante, resistenza da 330 ohm, resistenza da 10k ohm, condensatore da 0, 1 μF sull'alimentatore (come da prassi standard).
  7. Aggiungi un convertitore di livello logico nel circuito se stai utilizzando un microcontrollore o un programmatore FTDI a 5V

Se si dispone di un ESP8266 con una porta USB incorporata, non è necessario passare attraverso questa seccatura. Il Wemos D1 Mini è una buona alternativa. Vedi questo: //www.wemos.cc/product/d1-mini.html

Passaggio 3: I componenti in modo più dettagliato

ESP-01

Ho ricevuto il mio ESP-01 da: //netram.co.za/2720-wifi-serial-transceiver-module-esp8266.html

Puoi dare un'occhiata alle varie versioni qui: //www.esp8266.com/wiki/doku.php?id=esp8266-module-family


Alimentatore per breadboard

Un buon alimentatore sembra essere un aspetto cruciale per ESP8266. Un alimentatore da breadboard è davvero utile, soprattutto quando si ha a che fare con tensioni miste. Quello mostrato qui fornisce 3.3V e 5.5V e si collega direttamente alla breadboard. Avrei dovuto averne uno molto tempo fa! L'ESP8266 può masticare molti mA (> 300mA a volte). Se l'ESP si riavvia o sembra inaffidabile, è necessario un alimentatore separato per l'ESP (mantenere comunque un terreno comune). Collegare anche un condensatore su 3, 3 V e terra per ridurre al minimo i picchi e fornire un piccolo serbatoio di potenza.

//netram.co.za/938-breadboard-power-supply-5v33v.html


Programmatore da USB a seriale

Prendi uno che supporti 3.3V o abbia un ponticello 3.3V / 5V altrimenti, se hai solo 5V, dovresti usare un convertitore di livello logico bidirezionale tra il programmatore e l'ESP8266. FTDI Basic ha un ponticello 3.3V / 5V sul retro:

//netram.co.za/2842-ftdi-basic-usb-to-ttl-programmer.html

//netram.co.za/2679-logic-level-converter-bi-directional.html


Logic Level Converter

5V e 3.3V bidirezionali. Ciò è necessario solo se si utilizza un programmatore seriale 5V.


Ponticelli per breadboard

Includi alcuni jumper JST in quanto sono utili per collegare i moduli con i pin e quindi unirli alla breadboard. A tale scopo, includere alcuni cavi maschio-femmina. L'ESP-01 non è compatibile con la breadboard, quindi ne avrai bisogno.

Passaggio 4: il layout della breadboard

Guardando la breadboard, il programmatore FTDI è la lavagna rossa in alto e l'ESP8266-01 in basso. Il programmatore FTDI necessita solo di 3 fili collegati: il filo di terra e da RX a TX e da TX a RX sull'ESP. Sulla sinistra c'è l'alimentatore della breadboard (normalmente si collega alla breadboard).

NB: la qualità dell'alimentazione dell'ESP è uno dei fattori più importanti. C'è un piccolo condensatore (.1uF) su 3, 3 V e terra per ridurre al minimo i picchi. In caso di problemi con la programmazione dell'ESP, potrebbe trattarsi dell'alimentazione. Ciò che aiuterà sarà l'aggiunta di un altro condensatore più grande su 3, 3 V e terra. ad es .: 10uF.

Passaggio 5: Pinouts ESP-01

L'immagine sopra delle piedinature ESP8266 si trova in tutta la rete. Penso che potrebbe aver avuto origine da Neil "Il libro di Kolban su ESP8266". Questa è una risorsa fantastica ed è disponibile come download pdf da: //leanpub.com/ESP8266_ESP32. È lungo 400 pagine, è stato aggiornato a novembre 2016 e se sei in grave sviluppo ESP8266, questo è il libro da prendere. È gratuito ma fai una donazione se puoi.

Note sul cablaggio della breadboard:

  • I fili sono mostrati collegandosi alla parte anteriore dell'ESP-01 per chiarezza. Attaccali agli stessi perni da dietro. L'ESP-01 non è compatibile con la breadboard e i jumper maschio-femmina con connettore JST sono utili per il collegamento.
  • GPIO 0 deve essere tenuto basso per la programmazione. Questo dovrebbe essere rimosso se si rimuove FTDI e si utilizza ESP8266 sul proprio alimentatore.
  • CH_PD dovrebbe essere tenuto alto in ogni momento.
  • Il pin RESET è tenuto alto con una resistenza da 10k ohm e portato a terra dal pulsante RESET che riavvierà il chip. Premi RESET ogni volta prima di caricare il codice e ogni volta che ti connetti o disconnetti GPIO 0. Il pulsante di ripristino ti farà risparmiare molta seccatura.

Quando si accende il circuito, il LED rosso sull'ESP-01 dovrebbe accendersi e il LED blu dovrebbe lampeggiare brevemente. Successivamente, durante il caricamento del codice su ESP, il LED blu dovrebbe lampeggiare continuamente durante il processo. Qualsiasi altra combinazione di LED suggerisce che c'è un problema.

NB : Se si desidera rimuovere il programmatore seriale ed eseguire ESP da solo, assicurarsi di scollegare GPIO 0 da terra e premere il pulsante RESET altrimenti l'ESP potrebbe non funzionare correttamente.

Passaggio 6: schema

Passaggio 7: utilizzo di Arduino anziché di un programmatore seriale

Puoi anche usare un Arduino invece del tuo programmatore da USB a seriale.

Alcune cose da notare:

  1. Su un Arduino da 5 V l'uscita digitale sarà a 5 V e questo potrebbe far esplodere il tuo ESP2866. Quindi usa un Arduino 3.3V o un chip Logic Converter
  2. Il Vout 3.3V su Arduino non è sufficiente per guidare il tuo ESP8266 e potresti ottenere risultati inaffidabili. Utilizzare preferibilmente un'altra alimentazione a 3, 3 V.
  3. Come pratica consigliata, carica sempre uno schizzo vuoto sul tuo Arduino prima di collegare qualsiasi altro dispositivo per evitare risultati imprevedibili. Uno schizzo vuoto ha funzioni setup () e loop () vuote.
  4. Se stai usando un Arduino Uno ha solo una coppia TX&RX hardware. Per comunicare contemporaneamente con ESP8266 e Serial Monitor, è necessario utilizzare anche il file di inclusione SoftwareSerial. Aveva una limitazione della velocità di trasmissione, ma ora può teoricamente supportare una velocità di trasmissione fino a 115200. Un Mega 2560 ha più pin TX e RX hardware, quindi questo potrebbe essere un modo migliore di procedere.
  5. E, infine, e importante : guarda da vicino i pin TX e RX su Arduino. Noterai che hanno delle frecce accanto a loro. Il perno TX ha una freccia che punta lontano da esso. Ciò che dice è TX IN! Ciò significa che il pin TX è in realtà il pin RX! E allo stesso modo il pin RX è in realtà il pin TX! Pertanto, quando si utilizza Arduino come adattatore seriale con un altro dispositivo, è necessario collegare RX a RX e TX a TX. Ho scoperto questa sfumatura solo dopo diverse ore di dolore! Perché-oh-perché l'hanno etichettato in questo modo?

Mentre faccio domande: perché l'ESP-01 è stato prodotto con così poche delle utili piedinature esposte mi confonde! È ancora un ottimo punto di partenza, ma se hai bisogno di qualcosa di più, scegli ESP-12.

Per rendere le cose davvero semplici, prova un ESP-12 con una USB integrata come:

//www.wemos.cc/product/d1-mini.html

Passaggio 8: Programmazione mediante l'IDE Arduino

Esistono vari strumenti per programmare ESP8266, ma l'IDE Arduino (Integrated Development Environment) è di gran lunga il più semplice per la maggior parte delle persone.

Per programmare ESP8266 con l'IDE Arduino dovrai scaricare l'ultima versione se non l'hai già installata e quindi installare il supporto ESP8266. Si noti che si utilizza solo l'ambiente di programmazione Arduino e non è necessario alcun hardware Arduino stesso.

Per scaricare l'IDE di Arduino, visitare: //www.arduino.cc/en/Main/Software

Avvia l'IDE Arduino e seleziona il Board Manager ...

Passaggio 9: installare il Board Manager ESP2866

Avvia l'IDE di Arduino e seleziona Gestione schede in Strumenti / Scheda.

Passaggio 10: installare il Board Manager ESP2866

Trova esp8266, selezionalo e fai clic su Installa.

Passaggio 11: Impostazione delle preferenze di Arduino

Vai a File / Preferenze

Passaggio 12: URL di Board Manager

Nel campo URL Gestione schede aggiuntive inserisci l'URL per il pacchetto ESP8266 che è:

//arduino.esp8266.com/stable/package_esp8266com_index.json

Passaggio 13: Installazione di ESP8266 in IDE

Selezionare il "Modulo ESP8266 generico" e tornare nuovamente a Board Manager

Passaggio 14: Opzioni ESP8266

Configura le tue opzioni ESP-01. Selezionare la porta COM appropriata in base al PC.

Passaggio 15: parlare con ESP8266

Se hai ancora il firmware originale sul tuo ESP8266, puoi provare a parlarci con il monitor seriale.

  1. Apri il monitor seriale Arduino:
  2. Selezionare la velocità di trasmissione appropriata che di solito è 115200 ma potrebbe essere qualsiasi fino a 9600 a seconda del firmware sull'ESP.
  3. Seleziona anche "Entrambi NL e CR". Vale a dire: Nuova riga e ritorno a capo caratteri dopo ogni "Invia".
  4. Digitare AT e premere Invio. L'ESP dovrebbe tornare con OK. In caso contrario, premere il pulsante RESET o provare a scollegare il cavo USB e ricominciare. Assicurarsi inoltre che sia selezionata la porta COM corretta. Inoltre, se non si dispone del firmware "standard" sul proprio ESP, potrebbe non comprendere il set di comandi AT. Questo non è necessariamente un problema, dato che lo sovrascriverai con il codice Arduino più avanti in questo manuale.
  5. Digitare AT + GMR. Questo dovrebbe tornare con i numeri di versione del firmware sul tuo ESP. In un altro istruttore ti mostro come è possibile ripristinare l'ultima versione del firmware "di fabbrica" ​​(se lo si desidera).

Passaggio 16: Codice Arduino ESP8266

Scarica il file di codice (ESP8266_LED_Control.zip), decomprimilo e aprilo nell'IDE di Arduino.

Cambia l'impostazione del router in tuo. ovvero: modifica dei campi SSID e PASSWORD.

Assicurarsi che la breadboard sia configurata correttamente e collegare il cavo USB al programmatore seriale.

NB: quando si indirizzano i pin GPIO nel proprio codice, è necessario utilizzare il numero GPIO. ad es .: 2 per GPIO 2 e non il numero di pin fisico che sarà diverso.

allegati

  • Download ESP8266_LED_Control.zip

Passaggio 17: caricamento del codice su ESP8266

Assicurati di aver chiuso TUTTI i monitor della porta seriale sulla stessa porta, se li stai usando. Ad esempio: strumenti come CoolTerm. Apri di nuovo Arduino Serial Monitor, poiché dopo il caricamento sarà necessario visualizzare l'indirizzo IP dell'ESP.

NB : per caricare il tuo codice devi avere GPIO 0 collegato a terra. Puoi lasciarlo lì mentre esegui il tuo codice nel browser. Premere il tasto RESET prima di ogni carico. Se il caricamento non riesce, controlla le tue impostazioni e prova a scollegare e ricollegare il cavo USB. Prova Ctrl e U un paio di volte. Se tutto il resto fallisce, prova a riavviare il PC. A volte le porte COM sono un po 'incasinate.

Il LED blu sull'ESP dovrebbe lampeggiare se il codice viene caricato correttamente. L'avanzamento del caricamento dovrebbe apparire come nelle immagini sopra.

NB : Se si desidera rimuovere il programmatore seriale ed eseguire ESP da solo, assicurarsi di scollegare GPIO 0 da terra e premere il pulsante RESET altrimenti l'ESP potrebbe non funzionare correttamente.

Se i tuoi caricamenti ESP8266 si comportano in modo irregolare, migliora l'alimentazione.

Step 18: Vediamo cosa sta facendo

Passa al monitor seriale Arduino e dovresti vedere l'indirizzo IP dell'ESP. Puoi anche accedere al tuo router e controllare cosa è collegato lì. Il dispositivo verrà visualizzato nell'elenco degli IP collegati con un nome come: ESP_1A6C4A.

Mentre sei nel router, puoi sempre prenotare l'indirizzo IP dell'ESP e impostare un Port Forwarding in modo da poterti connettere all'ESP dall'esterno della tua rete - come l'ufficio ...

Dovresti vedere qualcosa di simile a quanto sopra. Usa quell'indirizzo IP nel tuo browser.

Passaggio 19: proviamolo

Dopo aver cliccato su alcuni link, si spera che il LED si accenda e si spenga!

Vedi anche che può fare PWM e oscurare il LED.

L'ESP8266 può anche gestire interrupt sui pin digitali e ha anche un ingresso analogico. Il pin dell'ingresso analogico non è esposto sull'ESP-01,

Internet Explorer funziona bene ma per qualche motivo FireFox sembra molto lento con ESP. Ciò può avere a che fare con l'installazione dell'intestazione HTTP.

Nota: dopo aver caricato il proprio codice, ESP8266 non risponderà più ai comandi AT. Il tuo codice ha sostituito il firmware. Usando il tuo codice e la libreria ESP8266 nell'IDE di Arduino avrai accesso a una serie più ricca di comandi. Vedere la documentazione qui: //www.arduino.cc/en/Reference/WiFi.

È possibile ripristinare il firmware su ESP8266 per tornare ai comandi AT, se lo si desidera. Guarda le altre mie istruzioni: La semplice guida al flashing del tuo firmware ESP8266.

Passaggio 20: risorse ESP

"Il libro di Kolban su ESP8266" aggiornato a novembre 2016 è per gli appassionati seri.

È lungo oltre 470 pagine e ha un'incredibile quantità di dettagli. Puoi ottenerlo gratuitamente ma fai una donazione se puoi.

//leanpub.com/ESP8266_ESP32

Ora ha separato ESP32 e pubblicato un nuovo libro:

//leanpub.com/kolban-ESP32

ESP32

"Come ESP8266, ESP32 è un microcontrollore compatibile WiFi, inoltre aggiunge il supporto per Bluetooth a basso consumo energetico (ovvero BLE, BT4.0, Bluetooth Smart) e quasi 30 pin I / O."

Vedi: //www.sparkfun.com/products/13907

Siti ESP

//www.esp8266.com/wiki/doku.php?id=esp8266-module-family

//www.esp8266.com/

//iotbytes.wordpress.com/esp8266-pinouts/

//espressif.com/en/products/hardware/esp8266ex/resources


Comandi AT

//www.itead.cc/wiki/ESP8266_Serial_WIFI_Module#AT_Commands

//espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf


Responsabile schede Arduino

//randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/

//github.com/esp8266/Arduino


Note sul flashing del firmware:

Ho pubblicato un manuale che mostra come eseguire il flashing del firmware di fabbrica sul tuo ESP8266.

Vedi: //www.instructables.com/id/The-Simple-Guide-to-Flashing-Your-ESP8266-Firmware/

Articoli Correlati