ESP8266 può sostituire Arduino?


15

Sono un hobbista e finora ho usato Arduino per progetti semplici. Ora voglio costruire un progetto che coinvolga LED indirizzabili, voglio scrivere diversi programmi su Arduino per i LED e sul mio telefono seleziono quali devono essere eseguiti.

Ho trovato ESP8266 come una soluzione buona ed economica per parlare con il mio Arduino. Cercando sul Web per imparare a farlo funzionare ho scoperto che ha il suo mcu e posso scrivere e caricare il mio codice in Arduino IDE! 20kB di RAM, CPU 80MHz e 4MB di flash per 3 USD (tuttavia non sono sicuro di questi numeri, ma anche un quarto è fantastico) !! Se ho solo bisogno di alcuni GPIO perché dovrei usare un Arduino UNO? Questo modulo è affidabile?


No, non cercherò quale ESP8266 risponda a una domanda qui. Inoltre, dal titolo questa è chiaramente una domanda basata sull'opinione, e sembra riguardare l'uso del dispositivo elettronico piuttosto che il loro design. Non solo, ma per cancellare ogni dubbio, menzioni "arduino".

1
Il processore ESP8266 interno è in grado di eseguire programmi utente. La lingua utilizzata dipende da ciò a cui hai accesso. LOA è comunemente usato.
Russell McMahon,

10
@OlinLathrop Se le persone usano termini come "LM324", "BC337", 1N4148, è generalmente riconosciuto che sono abbastanza conosciuti che l'inclusione di opamp, transistor NPN a bassa potenza bipolare e diodo a segnale piccolo di silicio, non è necessaria per la comprensione. | La famiglia ESP8266 è una gamma di moduli con processore WiFi + in un singolo IC e una memoria complementare per il programma. Questi sono molto ben noti e qualcosa di estremamente importante sapere se non li hai incontrati. Sebbene non (ancora) onnipresenti come ad esempio un LM324, sono probabilmente l'interfaccia WiFi "IOT" più comune in assoluto.
Russell McMahon,

3
Non credo proprio che questa domanda meriti un aspetto negativo
Malachi il

3
@ linhartr22 Citando da www.lua.org/about.html : "Lua" (pronunciato LOO-ah) significa "Luna" in portoghese. In quanto tale, non è né un acronimo né un'abbreviazione, ma un sostantivo. Più specificamente, "Lua" è un nome, il nome della luna terrestre e il nome della lingua. Come la maggior parte dei nomi, dovrebbe essere scritto in minuscolo con la maiuscola iniziale, cioè "Lua". Per favore, non scriverlo come "LUA", che è sia brutto che confuso, perché diventa un acronimo con significati diversi per persone diverse. Quindi, per favore, scrivi "Lua" giusto!
andato il

Risposte:


11

Bene, la risposta alla domanda "Può sostituire Arduino" - sì, in molti casi può.
Se sarebbe "il killer di Arduino" - ne dubito.
Ci sono più Arduinos ed ESP nella mia casa e 1 ESP nel mio ufficio in esecuzione 24/7 come parte della mia soluzione di casa intelligente fatta da me (e costantemente in fase di sviluppo), insieme a 1-2 PC. Inoltre ho diversi esperimenti / progetti incompiuti che coinvolgono l'ESP.
Quindi, dalla mia esperienza non così limitata, ecco i pro e i contro di ESP rispetto ad Arduino:

++++ Connettività Internet integrata!
++ Orologio più veloce e più memoria.
+ Funziona su 3V3 (la maggior parte, ma non tutti gli Arduinos sono 5V), quindi può interfacciare direttamente i dispositivi 3v3 (come la maggior parte dei moduli di visualizzazione), senza cambi di livello.
+ L'ESP-12E "base" costa circa quanto un Arduino nano o un pro micro.

- L'ESP-12E "base" ha un passo di 2,0 mm, non di 2,54 mm, il che rende doloroso lavorare con il culo.
- Esistono sblocchi che semplificano la prototipazione, ma aumentano i costi e occupano troppo spazio su una breadboard / protoboard.
- Il breakout più comune - NodeMCU - è più costoso e ha i pin rimappati, un grande fastidio, a meno che non lo programmiate in Lua, il che è ok solo per progetti molto semplici. IMO, dovrebbe essere usato solo per la prototipazione.
- Funzionano con 3v3, il che rende difficile interfacciare i moduli 5V, accendere completamente la maggior parte dei MOSFET, ecc.
- Sono estremamente esigenti per l'alimentazione.
- Assumono significativamente più potenza dell'Arduino quando non trasmettono e molto di più quando trasmettono.
- Sono quasi sempre peggiori per i progetti a batteria - hai bisogno del regolatore 3v3 (che ha corrente di riposo), devi dormire molto (e hai bisogno di GPIO16 scoppiato per quello) e alla fine della giornata un arduino + un basso - la radio di potenza farà lo stesso lavoro e durerà molto più a lungo della batteria.
- Hanno meno pin GPIO e alcuni di essi devono aver impostato tensioni all'avvio (GPIO0 - alto, GPIO2 - alto o mobile, GPIO15 - basso), inoltre "muovono" alcuni dei loro pin IO all'avvio, rendendoli spesso inutilizzabili per molti dispositivi.
- Hanno solo un ADC e, per quanto ne sappia, è più lento dei già lenti ADC Arduino, inoltre puoi usarlo solo con 0-1.1V (riferimento interno).
- Molte delle librerie di Arduino funzionano immediatamente o sono già state trasferite, ma molte non lo fanno. Devi portarli tu stesso o aspettare che qualcuno lo faccia. In generale, la community di Arduino è molto più grande e più matura, quindi la maggior parte dei tutorial, librerie, ecc. "Noob-friendly" sono forniti per Arduino.

Detto questo, l'ESP8266 è ancora eccezionale ed estremamente utile. Anche Lua è utile per piccoli progetti rapidi. Nella maggior parte dei casi in cui è richiesta la connettività Internet, sembrano essere la soluzione migliore. In molti altri casi, se utilizzerai ESP o Arduino in realtà non importa. E a volte l'Arduino (o il piccolo ATTiny85) è la scelta migliore.
Come sempre, "lo strumento giusto per il lavoro" è la strada da percorrere.
O combinazione di strumenti.


2
Non sono assolutamente d'accordo sul fatto che sia "semplicemente sbagliato" utilizzare un ESP come dispositivo secondario su un Arduino con un'interfaccia UART. Indichi i motivi per questo - se vuoi usare librerie che non sono ancora state trasferite su ESP, perché non avere Arduino come dispositivo principale e usare ESP per fare bene un lavoro? O se hai più familiarità con i dispositivi AVR a 8 bit e puoi permetterti $ 5 per un componente aggiuntivo WiFi molto capace, perché non farlo? In ingegneria, esclusa la stupidità, non esiste un modo giusto o sbagliato, a condizione che funzioni - solo più o meno appropriato per una particolare sfida.
Stefandz,

2
Non c'è nulla di sbagliato nell'avere un arduino (o attiny) collegato con ESP tramite UART. Ciò che sembra "sbagliato" è usare i comandi AT e fare in modo che Arduino analizzi le richieste e le risposte HTML, ecc. Funziona sicuramente (l'ho fatto), ma suona male - il modo "logico" sarebbe per il chip più potente (il ESP) di agire come un master e scaricare compiti specifici sul chip meno potente, non viceversa. Il più delle volte, è anche il modo più semplice: armeggiare con i comandi AT che analizzano su Arduino non è né divertente né efficiente. Sì, è necessario programmare entrambi i chip in questo modo, il che è scomodo.
Mishony,

1
Potrebbe valere la pena modificare la risposta per includere questo chiarimento.
Stefandz,

1
Perché il resto della risposta è buono, ma quest'ultima frase non è chiara e fuorviante imho. Chiarire chi cerca risposte aiuterebbe coloro che non capiscono perché questa potrebbe essere una cattiva idea e li allontanerebbe dall'idea che esiste qualcosa come "solo sbagliato" senza un chiaro ragionamento. Ma la risposta è tua - ovviamente sei libero di fare ciò che ritieni opportuno.
Stefandz,

1
Se hai davvero bisogno di usare un Arduino E un ESP (anziché solo ESP), puoi comunque utilizzare la comunicazione seriale, ma a un livello superiore - ad esempio Arduino invia "temp = 26.5" all'ESP, il tuo codice sull'ESP lo riconosce e invia una richiesta HTTP a thingspeak.com o altro. Perché questo funzioni, è necessario programmare sia Arduino che ESP, il che è un po 'scomodo, ma non molto più difficile che armeggiare con i comandi AT. In molte situazioni puoi semplicemente abbandonare Arduino e usare solo ESP.
Mishony,

1

Sì, ci sono alcuni pin I / O, quindi in teoria potresti guidare uno o pochi led o usare ad esempio un I / O port expander (I2C).

E sì, puoi sviluppare software e scaricarlo anche nei moduli a basso costo. L'angolo simile ad Arduino è solo un modo per farlo. Non è un ARM come si potrebbe far credere. Ma c'è una toolchain gnu per esp8266, ecc. Sì 80 o 160 MHz, RISC a 32 bit, alcuni flash, alcuni ram.


1

Se puoi programmarlo, ovviamente è possibile controllare direttamente le tue luci. Non ha un gran numero di pin I / O come Arduino, ma finché hai abbastanza per fare il lavoro, sicuramente riduce i costi, le dimensioni e i requisiti di alimentazione.


1
@Dow puoi trovare un prezzo ancora migliore su ebay / aliexpress.
Darko,

1
Per la mia applicazione è sufficiente un IO, tuttavia ESP-12 fornisce diversi IO, 10 bit ADC e molto altro. In realtà ho comprato un ESP-01 per 1,78 USD (da Aliexpress)! Controlla github.com/esp8266/Arduino per l'utilizzo dell'ESP in Arduino IDE. hai solo bisogno di un convertitore da USB a seriale. O google NodeMCU per ottenere tutto in un'unica scheda.

1

La scheda Arduino Uno e il modulo ESP non sono gli stessi, ma fintanto che il GPIO dell'ESP8266 fornisce l'hardware necessario per l'applicazione funzionerà.

Una delle mie preoccupazioni è la certificazione. Il prodotto ha ricevuto diverse certificazioni, devi verificare se anche la tua versione è certificata. Puoi cercare le certificazioni del produttore (e alcuni documenti) dalla pagina di ricerca FCC inserendo 2AC7Z come codice del beneficiario. La scheda utilizzata può dipendere da questi o richiedere la propria certificazione.

Come hai notato, può essere aggiunto come tipo di scheda allo strumento Arduino, il che rende molto più facile giocarci gli hobiest.

Ho appena controllato le sovvenzioni e tutte e tre richiedono che l'antenna WiFi sia mantenuta ad almeno 20 cm da tutte le persone.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.