¿ESP8266 puede reemplazar a Arduino?


15

Soy aficionado y he usado Arduino hasta ahora para proyectos simples. Ahora quiero construir un proyecto que incluya LED direccionables, quiero escribir varios programas en el Arduino para los LED y en mi teléfono selecciono cuáles ejecutar.

Encontré ESP8266 como una solución buena y barata para hablar con mi Arduino. ¡Buscando en la web para aprender cómo hacerlo funcionar, descubrí que tiene su propio mcu y puedo escribir y cargar mi código en Arduino IDE! 20kB de RAM, CPU de 80MHz y 4MB de flash por 3 USD (¡Sin embargo, no estoy seguro de estos números, pero incluso un cuarto es genial!) Si solo necesito algunos GPIO, ¿por qué debería usar un Arduino UNO? ¿Es confiable este módulo?


No, no voy a buscar qué es un ESP8266 para responder una pregunta aquí. Además, desde el título, esta es claramente una pregunta basada en la opinión, y parece que se trata del uso de dispositivos electrónicos en lugar de su diseño. No solo eso, sino que para borrar cualquier duda, mencionas "arduino".

1
El procesador interno ESP8266 puede ejecutar programas de usuario. El idioma utilizado depende de a qué tiene acceso. LOA se usa comúnmente.
Russell McMahon

10
@OlinLathrop Si las personas usan términos como "LM324", "BC337", 1N4148, generalmente se acepta que se sabe que la inclusión de un transistor NPN opaco, bipolar de baja potencia y un diodo de señal pequeña de silicio, respectivamente, no es necesaria para la comprensión. El | La familia ESP8266 es una gama de módulos con procesador WiFi + en un solo IC y una memoria complementaria para el programa. Estos son muy, muy conocidos y algo extremadamente digno de saber si no los ha conocido. Si bien (todavía) no es tan omnipresente como, por ejemplo, un LM324, posiblemente sea la interfaz WiFi "IOT" más común en general.
Russell McMahon

3
Realmente no creo que esta pregunta merezca una negativa
Malachi

3
@ linhartr22 Citando de www.lua.org/about.html : "Lua" (pronunciado LOO-ah) significa "Luna" en portugués. Como tal, no es un acrónimo ni una abreviatura, sino un sustantivo. Más específicamente, "Lua" es un nombre, el nombre de la luna de la Tierra y el nombre del idioma. Como la mayoría de los nombres, debe escribirse en minúsculas con mayúscula inicial, es decir, "Lua". No lo escriba como "LUA", que es feo y confuso, porque se convierte en un acrónimo con diferentes significados para diferentes personas. Entonces, por favor, escribe "Lua", ¡bien!
desaparecido el

Respuestas:


11

Bueno, la respuesta a la pregunta "¿Puede reemplazar a Arduino"? Sí, en muchos casos puede.
Si sería "el asesino de Arduino", lo dudo.
Hay varios arduinos y ESP en mi hogar y 1 ESP en mi oficina que funciona las 24 horas del día, los 7 días de la semana, como parte de mi solución para el hogar inteligente de fabricación propia (y en constante desarrollo), junto con 1-2 PC. Además de eso, tengo varios experimentos / proyectos inacabados que involucran al ESP.
Entonces, desde mi experiencia no tan limitada, aquí están los pros y los contras de ESP en comparación con Arduino: ¡

conectividad a Internet ++++ incorporada!
++ Reloj más rápido y más memoria.
+ Se ejecuta en 3V3 (la mayoría, pero no todos los Arduinos son de 5V), por lo que puede interconectar dispositivos 3v3 (como la mayoría de los módulos de visualización) directamente, sin cambios de nivel.
+ El ESP-12E "básico" cuesta casi tanto como un Arduino nano o pro micro.

- El ESP-12E "básico" tiene un paso de 2.0 mm, no 2.54 mm, por lo que es un fastidio trabajar con él.
- Hay desgloses que facilitan la creación de prototipos, pero aumentan el costo y ocupan demasiado espacio en una placa de pruebas / protoboard.
- La ruptura más común - NodeMCU - es más costosa y tiene pasadores reasignados, una gran molestia, a menos que lo programes en Lua, lo cual solo está bien para proyectos muy simples. En mi opinión, debe usarse solo para la creación de prototipos.
- Se ejecutan en 3v3, lo que dificulta la interfaz de los módulos de 5V, enciende por completo la mayoría de los MOSFET, etc.
- Son extremadamente exigentes con su fuente de alimentación.
- Consumen mucha más potencia que el Arduino cuando no transmiten y mucho más cuando transmiten.
- Casi siempre son peores para proyectos que funcionan con baterías: necesita un regulador 3v3 (que tiene corriente de reposo), necesita dormir mucho (y necesita GPIO16 roto para eso) y al final del día un arduino + un nivel bajo La radio de alta potencia hará el mismo trabajo y durará mucho más con la batería.
- Tienen menos pines GPIO y algunos de ellos deben haber establecido voltajes al inicio (GPIO0 - alto, GPIO2 - alto o flotante, GPIO15 - bajo), también "mueven" algunos de sus pines IO en el inicio, a menudo haciéndolos inutilizables para muchos dispositivos
- Solo tienen un ADC, y que yo sepa, es más lento que los ADC Arduino ya lentos, además, solo puede usarlo con 0-1.1V (referencia interna).
- Muchas de las bibliotecas Arduino funcionan de fábrica o ya están portadas, pero muchas no lo hacen. Tienes que portarlos tú mismo o esperar a que alguien lo haga. En general, la comunidad Arduino es mucho más grande y madura, por lo que la mayoría de los tutoriales, bibliotecas, etc. amigables para los novatos se proporcionan para Arduino.

Dicho esto, el ESP8266 sigue siendo excelente y extremadamente útil. Incluso Lua es útil para pequeños proyectos rápidos. En la mayoría de los casos donde se requiere conectividad a Internet, parecen ser la mejor solución. En muchos otros casos, si usarás ESP o Arduino en realidad no importa. Y a veces el Arduino (o el pequeño ATTiny85) es la mejor opción.
Como siempre, "la herramienta adecuada para el trabajo" es el camino a seguir.
O combinación de herramientas.


2
Totalmente en desacuerdo de que es "simplemente incorrecto" usar un ESP como dispositivo secundario para un Arduino con una interfaz UART. Usted mismo señala las razones de esto: si desea utilizar bibliotecas que aún no se han portado al ESP, ¿por qué no tener el Arduino como dispositivo principal y utilizar el ESP para hacer bien un trabajo? O si está más familiarizado con los dispositivos AVR de 8 bits y puede pagar $ 5 por un complemento WiFi muy capaz, ¿por qué no hacer eso? En ingeniería, excluyendo la estupidez, no hay una manera correcta o incorrecta, siempre que funcione, solo más o menos apropiado para un desafío particular.
stefandz 05 de

2
No hay nada de malo en tener un arduino (o attiny) conectado con ESP a través de UART. Lo que se siente "mal" es usar comandos AT y hacer que Arduino analice las solicitudes y respuestas HTML, etc. Seguro que funciona (lo he hecho), pero suena mal, la forma "lógica" sería para el chip más potente (el ESP) para actuar como maestro y descargar tareas específicas al chip menos potente, y no al revés. La mayoría de las veces, también es la forma más fácil: jugar con los comandos AT que se analizan en el Arduino no es divertido ni eficiente. Sí, debe programar ambos chips de esta manera, lo cual es inconveniente.
Mishony

1
Puede valer la pena editar su respuesta para incluir esta aclaración.
stefandz

1
Porque el resto de la respuesta es buena, pero esa última oración no está clara y es engañosa. Aclarar a aquellos que buscan respuestas ayudaría a aquellos que no entienden por qué esto podría ser una mala idea, y los alejaría de la idea de que existe algo así como "simplemente incorrecto" sin un razonamiento claro. Pero la respuesta es suya: obviamente, usted es libre de hacer lo que le parezca.
stefandz

1
Si realmente necesita usar un Arduino Y un ESP (en lugar de solo el ESP), aún puede usar la comunicación en serie, pero en un nivel superior, por ejemplo, Arduino envía "temp = 26.5" al ESP, su código en el ESP reconoce eso y envía una solicitud HTTP a thingspeak.com o lo que sea. Para que esto funcione, debe programar tanto el Arduino como el ESP, lo cual es un poco incómodo, pero no es realmente más difícil que jugar con los comandos AT. En muchas situaciones, simplemente puede deshacerse del Arduino y solo usar el ESP.
Mishony

1

Sí, hay algunos pines de E / S, por lo que, en teoría, podría manejar uno o varios leds o utilizar un expansor de puerto de E / S (I2C), por ejemplo.

Y sí, puede desarrollar software y descargarlo incluso en los módulos de bajo costo. El ángulo similar a Arduino es solo una forma de hacer esto. No es un BRAZO como se puede hacer creer. Pero hay una cadena de herramientas GNU para el ESP8266, etc. Sí, 80 o 160 MHz, RISC de 32 bits, algunos flash, algunos ram.


1

Si puede programarlo, entonces, por supuesto, es viable controlar directamente sus luces. No tiene una gran cantidad de pines de E / S como el Arduino, pero siempre y cuando tenga suficiente para hacer el trabajo, ciertamente reduce el costo, el tamaño y los requisitos de energía.


1
@Dow puedes encontrar un precio aún mejor en ebay / aliexpress.
Darko

1
Para mi aplicación, un IO es suficiente, sin embargo, ESP-12 proporciona varios IO, ADC de 10 bits y mucho más. ¡En realidad compré un ESP-01 por 1,78 USD (de Aliexpress)! Visite github.com/esp8266/Arduino para usar su ESP en Arduino IDE. solo necesita un convertidor de USB a serie. O google NodeMCU para obtener todo en una placa.

1

La placa Arduino Uno y el módulo ESP no son lo mismo, pero mientras el GPIO del ESP8266 proporcione el hardware que necesita para su aplicación, funcionará.

Una de mis preocupaciones es la certificación. El producto ha recibido varias certificaciones, deberá verificar si su versión también está certificada. Puede buscar las certificaciones del fabricante (y alguna documentación) en la página de búsqueda de la FCC ingresando 2AC7Z como código del concesionario. El tablero que use puede depender de ellos o requerir su propia certificación.

Como notó, se puede agregar como un tipo de tablero a la herramienta Arduino, lo que hace que sea mucho más fácil para los aficionados jugar con ella.

Acabo de comprobar las subvenciones y las tres requieren que la antena WiFi se mantenga al menos a 20 cm de todas las personas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.