- Introduzione a ESP8285
- Schema del circuito della scheda di sviluppo ESP
- Fabbricazione della nostra scheda di sviluppo ESP8285
- Ordinazione di PCB da PCBWay
- Assemblaggio e programmazione della scheda ESP8285
- Test con un semplice schizzo di lampeggiamento LED
- Test di Webserver Sketch su ESP8285
I controller ESP di Espressif stanno diventando una scelta molto popolare per i progetti basati su IoT. Esistono molti tipi di moduli ESP e schede di sviluppo già disponibili sul mercato, tra cui NodeMCU è il più popolare. Oltre a questo, anche ESP-12E, ESP01 sono scelte popolari. Ma se vuoi rendere il tuo progetto più flessibile e compatto, è probabile che dobbiamo progettare il nostro modulo ESP a livello di chip, invece di utilizzare direttamente un modulo immediatamente disponibile. In questo articolo impareremo come progettare un circuito e un PCB per l'utilizzo diretto dei controller ESP (ESP8285) senza l'utilizzo di un modulo.
In questo progetto abbiamo utilizzato ESP8285 perché è un piccolo chip molto interessante. È un piccolo SoC (System on Chip), con IoT (Internet of Things) e funzionalità di deep sleep. Ha la stessa potenza del fratello maggiore ESP8266 e, come bonus, viene fornito con una memoria flash da 1 MB incorporata con molti GPIO. Puoi anche usare ESP8266 come alternativa e la maggior parte delle cose discusse in questo articolo sarà sempre la stessa.
In un precedente articolo, ti ho mostrato come puoi progettare la tua antenna PCB per 2.4GHz, usando lo stesso chip ESP8285 come esempio. Puoi leggere questo articolo per conoscere il design dell'antenna per ESP8266 / ESP8285.
Quindi in questo articolo parlerò di come funzionano tutti i circuiti e finalmente ci sarà un video che spiega tutto. Ho anche coperto in dettaglio la procedura completa per progettare e ordinare le schede PCB da PCBWay per la progettazione del nostro modulo ESP.
Introduzione a ESP8285
Se non conosci questo versatile chip ESP8285, ecco una rapida spiegazione con un elenco di funzionalità. ESP8285 è un piccolo chip con flash e ram da 1M incorporati, è abbastanza simile all'ESP8286, modulo ESP-01 ma la memoria flash interna lo rende molto più compatto ed economico.
Questo chip ospita il processore core L106 Diamond a 32 bit di Tensilica e lo stesso vale anche per ESP8266, ecco perché tutto il codice per ESP8266 può essere installato direttamente su questo chip senza alcuna modifica e ha lo stesso stack di rete della dose ESp8266.
L'ESP8285 integra interruttori di antenna, balun RF, amplificatore di potenza, amplificatore di ricezione a basso rumore, filtri e moduli di gestione dell'alimentazione. Il design compatto riduce al minimo le dimensioni del PCB e richiede circuiti esterni minimi. Se vuoi saperne di più su questo IC, puoi sempre controllare la scheda tecnica di ESP8285 del dispositivo presso Espressif Systems.
Schema del circuito della scheda di sviluppo ESP
Il circuito è molto semplice e l'ho scomposto per una migliore comprensione. Lo schema ESP sottostante mostra l'intero circuito, come puoi vedere ci sono otto blocchi funzionali, li esaminerò e spiegherò ogni blocco.
SOC ESP8285:
Al centro del progetto c'è il SoC ESP8285, tutti i GPIO e le altre connessioni necessarie sono definite qui.
Filtro di alimentazione: ci sono 7 pin di alimentazione su questo IC, il primo è il pin di alimentazione per ADC e IO. Li ho cortocircuitati insieme e uso un condensatore di filtro di potenza da 47uF e un condensatore di disaccoppiamento da 0,1uF per filtrare l'ingresso a 3,3 V CC.
Filtro PI: il filtro PI è uno dei blocchi più importanti di questo progetto perché è responsabile dell'alimentazione dell'amplificatore RF e dell'LNA, qualsiasi rumore interno o esterno può essere descrittivo per questa sezione, quindi per questo, la sezione RF non funzionerà. Ecco perché il filtro passa basso per la sezione LNA è molto cruciale. Puoi saperne di più sui filtri PI seguendo il link.
Oscillatore a cristallo: l'oscillatore a cristallo da 40 MHz funge da sorgente di clock per il SoC ESP8285 e i condensatori di disaccoppiamento da 10pF sono stati aggiunti come raccomandato dalla scheda tecnica.
Sezione LNA: Un'altra sezione più importante di questo circuito è la sezione LNA; qui è dove l'antenna PCB viene collegata al pin fisico dell'ESP. Come raccomandato dalla scheda tecnica, viene utilizzato un condensatore 5.6pF e dovrebbe funzionare bene come circuito di abbinamento. Ma ho aggiunto due segnaposto per due induttori come se nel caso in cui il dissenso del circuito di accoppiamento funzioni, posso sempre inserire degli induttori, per modificare i valori in modo che corrispondano all'impedenza dell'antenna.
La sezione LNA ha anche due ponticelli PCB con un connettore UFL. L'antenna PCB è impostata di default, ma se la tua applicazione richiede un po 'più di portata, puoi dissaldare il jumper PCB e mettere in corto il jumper per il connettore UFL, e puoi collegare un'antenna esterna proprio così.
Connettore di ingresso batteria:
Come puoi vedere sopra, ho messo in parallelo tre tipi di connettori per batteria perché se non sei riuscito a trovarne uno, puoi sempre metterne un altro.
Intestazioni GPIO e intestazioni di programmazione:
Le intestazioni GPIO sono lì per accedere ai pin GPIO e l'intestazione di programmazione è lì per far lampeggiare il Soc principale.
Circuito di ripristino automatico:
In questo blocco, due transistor NPN, MMBT2222A formano il circuito di ripristino automatico quando si preme il pulsante di caricamento nell'IDE di Arduino, lo strumento python riceve una chiamata, questo strumento python è lo strumento flash per i dispositivi ESP, questo strumento pi dà il segnale al convertitore UART per ripristinare la scheda tenendo il pin GPIO a terra. Successivamente, inizia il processo di caricamento e verifica.
LED di alimentazione, LED integrato e divisore di tensione:
LED di alimentazione: il LED di alimentazione ha un ponticello PCB Se si utilizza questa scheda come per applicazioni alimentate a batteria, è possibile saldare DE questo ponticello per risparmiare un po 'di energia.
LED integrato : molte schede di sviluppo sul mercato hanno un LED integrato e questa scheda non fa eccezione; la GPIO16 dell'IC è collegata a un led di bordo. Accanto a questo, c'è un segnaposto per un resistore da 0 OHM popolando il resistore da 0 Ohm, stai collegando GPIO16 al ripristino e, come forse saprai, questo è un passaggio molto importante per mettere un ESP in modalità di sospensione profonda.
Divisore di tensione: come forse saprai, la tensione di ingresso massima dell'ADC è 1V. Quindi, per modificare l'intervallo dell'ingresso a 3,3 V, viene utilizzato il partitore di tensione. La configurazione è fatta in modo da poter sempre aggiungere una resistenza in serie con il pin per cambiare la gamma a 5V.
HT7333 LDO:
Un LDO o regolatore di tensione a bassa caduta viene utilizzato per regolare la tensione a ESP8285 da una batteria con una perdita di potenza minima.
La massima tensione di ingresso dell'HT7333 LDO è 12V e viene utilizzata per convertire la tensione della batteria a 3,3V, ho scelto questo HT7333 LDO perché è un dispositivo con una corrente di riposo molto bassa. I condensatori di disaccoppiamento 4.7uF vengono utilizzati per stabilizzare l'LDO.
Pulsante per la modalità di programmazione:
Il pulsante è collegato a GPIO0, se il tuo convertitore UART non ha un pin RTS o DTR, puoi utilizzare questo pulsante per tirare manualmente il GPIO0 a terra.
Resistori pullup e pulldown:
Le resistenze pullup e pulldown sono lì come raccomandato dalla scheda tecnica.
Oltre a ciò, durante la progettazione del PCB sono state seguite molte norme e linee guida di progettazione. Se vuoi saperne di più, puoi trovarlo nella guida alla progettazione dell'hardware per ESP8266.
Fabbricazione della nostra scheda di sviluppo ESP8285
Lo schema è fatto e possiamo procedere con la disposizione del PCB. Abbiamo utilizzato il software di progettazione PCB Eagle per realizzare il PCB, ma puoi progettare il PCB con il tuo software preferito. Il nostro design PCB appare così quando è completato.
I file BOM e Gerber possono essere scaricati dai seguenti collegamenti:
- File Gerber ESP8282 Dev-Board
- ESP8282 Dev-Board BOM
Ora che il nostro progetto è pronto, è tempo di produrre i PCB utilizzando. Per farlo, segui semplicemente i passaggi seguenti:
Ordinazione di PCB da PCBWay
Passaggio 1: accedi a https://www.pcbway.com/, registrati se è la prima volta. Quindi, nella scheda Prototipo PCB, inserisci le dimensioni del tuo PCB, il numero di strati e il numero di PCB richiesto.
Passaggio 2: procedi facendo clic sul pulsante "Cita ora". Verrai indirizzato a una pagina in cui impostare alcuni parametri aggiuntivi come Tipo di scheda, Livelli, Materiale per PCB, Spessore e Altro, la maggior parte di essi è selezionata per impostazione predefinita, se stai optando per parametri specifici, puoi selezionare in ascolto.
Come puoi vedere, avevamo bisogno dei nostri PCB neri! quindi, ho selezionato il nero nella sezione dei colori della maschera di saldatura.
Passaggio 3: il passaggio finale è caricare il file Gerber e procedere con il pagamento. Per assicurarsi che il processo sia fluido, PCBWAY verifica se il file Gerber è valido prima di procedere con il pagamento. In questo modo, puoi essere certo che il tuo PCB è facile da fabbricare e ti raggiungerà come impegnato.
Assemblaggio e programmazione della scheda ESP8285
Dopo alcuni giorni, abbiamo ricevuto il nostro PCB in una confezione ordinata e la qualità del PCB era buona come sempre. Lo strato superiore e lo strato inferiore del tabellone sono mostrati di seguito:
Dopo aver ricevuto la scheda, ho immediatamente iniziato a saldare la scheda. Ho usato una stazione di saldatura ad aria calda e molto flusso di saldatura per saldare la CPU principale, e altri componenti sul PCB sono saldati tramite un saldatore. Il modulo assemblato è mostrato di seguito.
Una volta fatto, ho collegato il mio fidato modulo FTDI per testare la scheda caricando uno schizzo, i pin collegati e un'immagine della scheda mostrata di seguito:
Modulo FTDI della scheda di sviluppo ESP8285
3,3 V -> 3,3 V.
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Una volta, tutti i collegamenti necessari sono stati completati, ho installato l'IDE Arduino selezionando l'ESP8285 consiglio generico da Strumenti > Consiglio > Generico ESP8285 modulo .
Test con un semplice schizzo di lampeggiamento LED
Successivamente, è il momento di testare la scheda facendo lampeggiare un LED, per questo, ho usato il seguente codice:
/ * ESP8285 Blink Lampeggia il LED blu sul modulo ESP828285 * / #define LED_PIN 16 // Definisce il LED lampeggiante pin void setup () {pinMode (LED_PIN, OUTPUT); // Inizializza il pin LED come uscita} // la funzione loop viene eseguita più e più volte per sempre void loop () {digitalWrite (LED_PIN, LOW); // Accende il LED (nota che LOW è il livello di tensione) delay (1000); // Attendi un secondo digitalWrite (LED_PIN, HIGH); // Spegne il LED impostando il ritardo di tensione HIGH (1000); // Attendi due secondi}
Il codice è molto semplice, prima ho definito il pin del LED per questa scheda, ed è su GPIO 16. Successivamente, ho impostato quel pin come output nella sezione setup. E infine, nella sezione loop, ho attivato e disattivato il pin con un secondo di ritardo nel mezzo.
Test di Webserver Sketch su ESP8285
Una volta che ha funzionato correttamente, è tempo di testare lo sketch HelloServer dall'esempio di ESP8266WebServer. Sto usando un esempio ESP8266 perché la maggior parte del codice è compatibile con il chip esp8285. Il codice di esempio può essere trovato anche in fondo a questa pagina.
Anche questo codice è molto semplice, per prima cosa dobbiamo definire tutte le librerie necessarie, #includere
successivamente, dobbiamo inserire il nome e la password dell'hotspot.
#ifndef STASSID #define STASSID "tuo-ssid" #define STAPSK "tua-password" #endif const char * ssid = STASSID; const char * password = STAPSK;
Successivamente, dobbiamo definire l'oggetto ESP8266WebServer. L'esempio qui lo definisce come un server (80) il (80) è il numero di porta.
Successivamente, dobbiamo definire un pin per un LED nel mio caso era il pin n. 16.
const int led = 16;
Successivamente, viene definita la funzione handleRoot () . Questa funzione verrà richiamata al momento della chiamata sull'indirizzo IP dal nostro browser.
void handleRoot () {digitalWrite (led, 1); server.send (200, "text / plain", "ciao da esp8266!"); digitalWrite (led, 0); }
La prossima è la funzione di configurazione, senti che dobbiamo definire tutti i parametri necessari come-
pinMode (led, OUTPUT); // abbiamo definito il pin del led come output Serial.begin (115200); // abbiamo avviato una connessione seriale con WiFi.mode a 115200 baud (WIFI_STA); // abbiamo impostato la modalità wifi come station WiFi.begin (ssid, password); quindi iniziamo la connessione wifi Serial.println (""); // questa riga fornisce uno spazio aggiuntivo while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } / * nel ciclo while stiamo testando lo stato della connessione quando l'ESP è in grado di connettersi all'hotspot il loop frena * / Serial.println (""); Serial.print ("Connesso a"); Serial.println (ssid); Serial.print ("Indirizzo IP:"); Serial.println (WiFi.localIP ());
Successivamente, stampiamo il nome e l'indirizzo IP dell'SSID connesso nella finestra del monitor seriale.
server.on ("/", handleRoot); // il metodo on dell'oggetto server viene chiamato per gestire la funzione di root server.on ("/ inline", () {server.send (200, "text / plain", "funziona anche questo");}); // di nuovo abbiamo chiamato il metodo on per l'esempio / inline server.begin (); // successivamente avviamo il server con il metodo iniziale Serial.println ("HTTP server avviato"); // e infine stampiamo un'istruzione nel monitor seriale. } // che segna la fine della funzione di configurazione void loop (void) {server.handleClient (); }
Nella funzione loop, abbiamo chiamato i metodi handleClient () per far funzionare correttamente l'esp.
Una volta fatto ciò, la scheda ESP8285 ha impiegato del tempo per connettersi al server web e ha funzionato con successo come previsto, il che ha segnato la fine di questo progetto.
Il funzionamento completo della scheda si trova anche nel video linkato di seguito. Spero che questo articolo ti sia piaciuto e che abbia imparato qualcosa di nuovo da esso. Se hai qualche dubbio, puoi chiedere nei commenti qui sotto o puoi usare i nostri forum per una discussione dettagliata.