- Cos'è ESP8266?
- Nozioni di base sulla teoria WiFi:
- Tipi di programmazione con ESP8266:
- Hardware per programmare il modulo ESP8266:
- Materiali richiesti:
- Spiegazione del circuito:
- Scheda di costruzione per programmare ESP8266:
L'Internet delle cose e la domotica è stato un argomento molto pubblicizzato negli ultimi giorni. Costruire qualcosa da soli in grado di comunicare con il World Wide Web ed essere accessibile da qualsiasi parte del mondo, suona davvero bello non è vero?
Ma aspetta!!! Suona anche complicato ???….
Così ha fatto per me, ho pensato che ci sarebbero voluti immensi tempo e abilità per costruire cose che possono interagire con Internet. NO, mi sbagliavo completamente, grazie a questo fantastico modulo chiamato ESP8266 di Espressif Systems. Ora puoi facilmente aprire le tue porte ai progetti IoT con l'aiuto di questo modulo. Questo modulo a basso costo e di piccole dimensioni potrebbe fare miracoli ed è davvero semplice e facile da usare, a condizione che seguiamo i passaggi giusti.
Questo tutorial ha lo scopo di presentarti questo modulo ESP8266-01 e aiutarti a iniziare con esso. Forse hai già portato il tuo modulo e sei rimasto bloccato mentre cercavi di usarlo. Quindi, non sei il solo, non preoccuparti, molte persone trovano molto difficile iniziare con il modulo perché non esiste una guida o documentazione adeguata per questo modulo. Questo è il motivo per realizzare questo tutorial. Segui le istruzioni qui e dovresti essere in grado di far funzionare il tuo modulo ESP8266-01 in pochissimo tempo, qui useremo il modulo adattatore seriale FTDI da USB a TTL per programmare ESP8266. Guarda il video dettagliato alla fine del tutorial.
Prima di entrare nell'argomento, copriamo alcune nozioni di base sul modulo ESP8266-01.
Cos'è ESP8266?
La maggior parte delle persone chiama ESP8266 come modulo WIFI, ma in realtà è un microcontrollore. ESP8266 è il nome del microcontrollore sviluppato da Espressif Systems, un'azienda con sede a Shanghai. Questo microcontrollore ha la capacità di eseguire attività relative al WIFI, quindi è ampiamente utilizzato come modulo WIFI.
Sono disponibili molti tipi di moduli ESP8266 che vanno da ESP8266-01 a ESP8266-12. Quello che stiamo usando nel tutorial è l'ESP8266-01 perché è il più economico e facilmente reperibile. Tuttavia tutti i moduli ESP hanno un solo tipo di processore ESP, ciò che differisce è solo il tipo di breakout bard utilizzato. La scheda breakout di ESP8266-01 avrà solo 2 pin GPIO mentre in altre schede sarà più alta.
Le specifiche complete del modulo sono fornite nella tabella sottostante
Voltaggio |
3,3V |
Consumo attuale |
10uA-170mA |
Consumo di corrente massimo durante il lampeggiamento |
800mA |
Memoria flash |
16 MB (512 KB normale) |
Processore |
Tensilica L106 32 bit |
Velocità del processore |
80-160 MHz |
RAM |
32K + 80K |
GPIO |
17 (ma la maggior parte è multiplexata) |
Convertitore da analogico a digitale |
1 (10 bit) |
Numero massimo di connessioni TCP |
5 |
Ok, alcune cose che potrebbero averti sorpreso delle specifiche sono che, SÌ, il modulo ESP8266 viene fornito con un convertitore ADC e consuma una corrente molto elevata di 0,8 A durante il flashing del dispositivo.
Controlla anche i nostri vari progetti IoT interessanti basati su ESP8266.
Nozioni di base sulla teoria WiFi:
Transfer Control Protocol (TCP), Internet Protocol (IP), User Datagram Protocol (UDP), Access Point (AP), Station (Sta), Service Set Identifier (SSID), Application Programming Interface (API), Webserver…..
Tutti i termini di cui sopra hanno senso per te?
Se si. Quindi, BINGO puoi saltare questa parte e passare alla sezione successiva.
Se no. Allora devi essere uno tra i tanti studenti di elettrotecnica che hanno semplicemente sbattuto le palpebre attraverso la maggior parte di questi termini, proprio come ho fatto io quando sono stato presentato per la prima volta a tutte queste cose. Quindi, esaminiamo rapidamente tutti questi termini perché solo così potremmo fare il nostro ingresso nel mondo dell'IOT.
Transfer Control Protocol (TCP):
La maggior parte di noi saprebbe cosa significa. Sì, queste sono le regole in base alle quali funziona Internet. Poiché ESP8266 ha la capacità di configurare connessioni WIFI. Ad un livello elevato Wi-Fi è la capacità di partecipare alle connessioni TCP / IP tramite un collegamento wireless. Puoi fare in modo che il tuo ESP funzioni sul protocollo TCP / IP o sul protocollo UDP.
User Datagram Protocol (UDP):
UDP è anche un altro tipo di protocollo Internet. Questo tipo di comunicazione è più veloce del TCP ma è meno preciso. Il motivo è che TCP utilizza un riconoscimento durante la sua comunicazione, ma UDP no. Il protocollo TCP viene utilizzato principalmente nelle reti in cui è richiesta un'elevata affidabilità. UDP viene utilizzato in luoghi in cui la velocità ha la massima priorità rispetto all'affidabilità. Ad esempio UDP viene utilizzato nelle videoconferenze, perché anche se alcuni pixel non vengono trasmessi non influirà più di tanto sulla qualità del video ma la velocità è molto importante.
La maggior parte dei progetti e dei codici ESP8266 funzionano attorno al TCP / IP, UDP sarà il meno infastidito.
Punto di accesso (AP) e stazione (STA):
Una volta che inizi a lavorare con il modulo ESP, incontrerai spesso questi due termini. Supponiamo che tu e il tuo amico desideriate navigare in Internet sui vostri smartphone ma poiché non dispone di una connessione Internet attiva, decidete di attivare il vostro hotspot e il vostro amico si connette ad esso. Qui il tuo telefono che sta ottenendo la connessione Internet è l'Access Point (AP) e il telefono del tuo amico che sta usando Internet si chiama Stazione (STA).
Il modulo ESP8266 può essere utilizzato in tre modalità, modalità AP, modalità STA o entrambe le modalità STA e AP (combinate).
Service Set Identifier (SSID):
Questo è un termine abbastanza semplice. Quasi tutti noi abbiamo utilizzato il WIFI. Il nome della rete Wi-Fi è chiamato SSID. Quando abbiamo più punti di accesso per una stazione a cui connettersi, la stazione dovrebbe sapere a quale punto di accesso dovrebbe connettersi, quindi a ogni punto di accesso (AP) viene assegnata un'identità chiamata SSID.
Interfaccia di programmazione dell'applicazione (API):
Per semplificare, un'API è un messenger che accetta le tue richieste, le elabora e restituisce al tuo sistema il risultato desiderato. La maggior parte delle attività che svolgiamo su Internet utilizza le API, come quando prenoti un volo, effettui un acquisto online, ecc. Ogni sito web ti collega a un'API in cui parte del lavoro come la registrazione, il pagamento, ecc. Là.
ESP8266 utilizza l'API per parlare al mondo di Internet. Ad esempio, se vuole conoscere l'ora, il clima o qualsiasi cosa debba richiedere sotto forma di API al sito Web corrispondente. Quel sito Web riceverà la richiesta e restituirà il risultato desiderato al nostro modulo ESP.
Server web:
Un server web è qualcosa che è responsabile della visualizzazione dei contenuti di un sito web. Tutti i contenuti di quel particolare sito web verranno caricati nel suo server web. Ci sono computer dedicati il cui compito è quello di agire solo come server web. Possiamo anche programmare il nostro ESP8266 in modo che funzioni come un server web e connetterci da qualsiasi parte del mondo.
Ok, questo è sufficiente per iniziare. Ora, mettiamo le mani sull'hardware.
Tipi di programmazione con ESP8266:
Esistono due modi per lavorare con il modulo ESP8266. Questo tutorial ti aiuterà a iniziare con entrambi. Un modo è usare i comandi AT. L'altro modo è usare l'IDE di Arduino. Cerchiamo di capire cosa significa.
Tutti i moduli ESP8266 spediti dalla fabbrica avranno un firmware predefinito (SDK + API) caricato in esso. Questo firmware ti aiuterà a programmare il modulo ESP8266 tramite i comandi AT.
L'altro modo è programmare direttamente il modulo ESP8266 utilizzando l'IDE di Arduino (scheda non necessaria) e le sue librerie. Tutti i progetti possono essere eseguiti in entrambi i metodi. Tuttavia, se inizi a utilizzare l'IDE di Arduino per programmare il tuo ESP8266, potresti non essere in grado di utilizzare i comandi AT perché l'SDK predefinito potrebbe essere danneggiato. In tal caso, devi eseguire il flashing dell'ESP con le impostazioni predefinite. Ne parleremo in un altro tutorial.
Hardware per programmare il modulo ESP8266:
ESP8266 è un modulo a 8 terminali. Il pin out dello stesso è mostrato di seguito.
Sfortunatamente, questo modulo non è adatto alla breadboard e quindi non possiamo montarlo direttamente sulla nostra breadboard. Inoltre, a differenza di Arduino, non ha un driver da USB a seriale integrato; quindi dobbiamo usare "FTDI USB to TTL Serial Adapter Module" per comunicare con esso. Assicurarsi che la scheda FTDI possa funzionare anche a 3,3 V; quello che stiamo usando in questo tutorial è mostrato di seguito.
Ora, come sappiamo, dovremmo accendere ESP8266 con 3,3 V. Ma il consumo attuale è di 0,8 A, quindi potrebbe non funzionare come previsto se alimentato dalla nostra scheda di sblocco FTDI. Quindi dobbiamo costruire il nostro circuito di alimentazione. Qui abbiamo usato LM317 per lo scopo di alimentazione; i dettagli per realizzare l'hardware completo sono forniti nelle sezioni successive.
Materiali richiesti:
- Scheda Perf
- ESP8266-01
- Scheda di sblocco FTDI
- LM317
- Condensatore 0.1uf
- Condensatore 10uf
- Barrel Jack
- Bergstik maschio e femmina
- Premi il bottone
- Cavi di collegamento
- Adattatore 12V per alimentare la scheda.
Spiegazione del circuito:
Gli schemi del tabellone sono mostrati di seguito
Alcuni potrebbero aver provato ad alimentare il tuo ESP direttamente dal tuo FTDI e farlo funzionare, ma i seguenti sono i motivi per costruire la tua scheda con pochi componenti aggiuntivi:
- Solo poche schede FTDI possono fornire corrente sufficiente per il modulo ESP. Pochi moduli ESP potrebbero consumare corrente elevata rispetto agli altri durante il lampeggiamento. Quindi è sempre sicuro avere la propria fonte di alimentazione e sarà più facile integrare il circuito di alimentazione su Dot Board anziché sulla breadboard.
- Dovremmo sempre resettare il modulo ESP prima di caricare il codice, costruire la nostra scheda ci aiuterà a resettare facilmente il modulo. Abbiamo utilizzato il pulsante per ripristinare ESP8266.
- Il pin GPIO0 deve essere messo a terra durante la programmazione usando Arduino e deve essere lasciato libero quando si usano i comandi AT, questo può essere facilmente attivato se costruiamo la nostra scheda. Abbiamo utilizzato un jumper per passare dalla modalità comandi AT alla modalità di programmazione IDE di Arduino.
- Tutta la programmazione viene eseguita utilizzando la comunicazione Seriale , se si utilizza una breadboard alcuni terminali allentati potrebbero causare un errore a metà e costringerci a eseguire il flashing del modulo con cui lavorare nuovamente.
Detto questo, puoi scegliere tra l'utilizzo di una breadboard e la creazione della tua scheda per la programmazione del modulo. Se vuoi ancora usare la breadboard, lo stesso circuito mostrato sopra può essere costruito usando la breadboard. Solo l'aspetto sarà diverso, tutte le altre istruzioni in questo tutorial si applicheranno allo stesso modo.
Scheda di costruzione per programmare ESP8266:
Quindi qui stiamo costruendo la scheda per programmare il modulo ESP8266 che ha il proprio circuito di alimentazione per accendere ESP8266.
Come detto il nostro modulo richiederà circa 800mA durante la sua programmazione. Quindi abbiamo costruito il nostro modulo di alimentazione utilizzando un regolatore di tensione variabile LM317 poiché la corrente sorgente di LM317 è quasi 1.2A. La tensione di ingresso dell'LM317 sarà di 12V che verrà fornita utilizzando un adattatore per montaggio a parete da 12V 2A. L'uscita dell'LM317 sarà regolata a 3,3V costantemente utilizzando le resistenze da 220ohm e 360ohm. Controlla anche il nostro circuito del caricabatteria utilizzando LM317 per saperne di più su LM317.
Di seguito sono riportate le formule per calcolare la tensione di uscita dell'LM317:
Vout = 1,25 * (1+ (R2 / R1))
Dove, R1 è 220 ohm e R2 è 360 ohm.
Il modulo ESP8266 è collegato secondo i pin mostrati nella tabella sottostante.
N. pin |
Nome del pin ESP |
Collegato a |
1 |
Terra |
Massa del modulo FTDI |
2 |
GPIO2 |
Lasciato libero o collegato al berg stick per un uso futuro |
3 |
GPIO0 |
Passa per passare da una modalità di programmazione all'altra |
4 |
Rx |
Tx del modulo FTDI |
5 |
Tx |
Rx del modulo FTDI |
6 |
CH_PH |
3,3 V dall'LM317 |
7 |
Ripristina |
Pulsante per resettare il modulo |
8 |
Vcc |
3,3 V dall'LM317 |
Per passare facilmente dalla modalità di comando AT alla modalità di programmazione Arduino ho posizionato un interruttore (jumper) che tirerà a terra il GPIO 0 quando si utilizza l'IDE di Arduino e lo lascerà fluttuante quando si utilizzano i comandi AT.
È presente un pulsante che, se premuto, ripristina il modulo ESP. Questo viene fatto collegando semplicemente il pin RST del modulo ESP alla guida di terra tramite il pulsante. Ogni volta prima di programmare il nostro modulo ESP dovremmo resettarlo.
Una volta assemblato il circuito, dovrebbe assomigliare a questo sotto.
Ho usato una scheda Perf ma puoi anche usare una breadboard se sei interessato (come discusso sopra). La build completa e la spiegazione sono mostrate nel video qui sotto.
Una volta terminate le connessioni. Alimentare la scheda senza le schede ESP e FTDI e controllare se si ottengono 3,3 V correttamente sui terminali Vcc e Terra della posizione dei moduli ESP. Ora assicurati che la tua scheda FTDI sia in modalità 3.3V e collega i tuoi moduli FTDI ed ESP alla tua scheda.
Accendi l'adattatore e collegalo alla tua scheda, il modulo ESP dovrebbe illuminarsi di un colore rosso.
Quindi collega la tua scheda FTDI al tuo computer usando un cavo da mini-USB a USB e vai a Gestione dispositivi sul tuo computer e dovresti trovare la tua scheda FTDI collegata alla tua porta COM, come mostrato di seguito:
Ora è il momento di mettere le mani sulla programmazione del nostro modulo ESP8266. Puoi iniziare utilizzando i comandi AT e quindi passare a utilizzare l'IDE di Arduino. Non dimenticare di controllare i nostri altri progetti basati su ESP8266.