O ESP8266 pode substituir o Arduino?

15

Sou um hobby e usei o Arduino até agora para projetos simples. Agora, quero criar um projeto envolvendo LEDs endereçáveis, escrever vários programas no Arduino para os LEDs e, no telefone, selecionar quais executar.

Encontrei o ESP8266 como uma solução boa e barata para conversar com meu Arduino. Pesquisando na Web para aprender a fazê-lo funcionar, descobri que ele possui seu próprio mcu e posso escrever e enviar meu código no Arduino IDE! 20kB de RAM, CPU de 80 MHz e 4 MB de flash por 3 USD (no entanto, não tenho certeza desses números, mas mesmo um quarto disso é ótimo) !! Se eu precisar de apenas alguns GPIOs, por que usar um Arduino UNO? Este módulo é confiável?

ahmadx87
fonte
Não, não vou procurar o que é um ESP8266 para responder uma pergunta aqui. Além disso, a partir do título, essa é claramente uma questão baseada em opiniões, e parece ser mais sobre o uso de dispositivos eletrônicos do que sobre seu design. Não apenas isso, mas para apagar qualquer dúvida, você menciona "arduino".
1
O processador interno do ESP8266 pode executar programas do usuário. O idioma usado depende do que você tem acesso. LOA é comumente usado.
Russell McMahon
10
@OlinLathrop Se as pessoas usam termos como "LM324", "BC337", 1N4148, é geralmente aceito que eles sabem que a inclusão de opamp, transistor NPN de baixa potência bipolar e diodo de sinal pequeno de silicone, respectivamente, não é necessária para a compreensão. | A família ESP8266 é uma variedade de módulos com processador WiFi + em um único IC e uma memória complementar para o programa. Estes são muito, muito conhecidos e algo extremamente valioso para saber se você não os conheceu. Embora não seja (ainda) tão onipresente quanto, por exemplo, um LM324, é possivelmente a interface WiFi "IOT" mais comum em geral.
Russell McMahon
3
Eu realmente não acho que esta questão merece uma negativa
Malaquias
3
@ linhartr22 Citando www.lua.org/about.html : "Lua" (pronuncia-se LOO-ah) significa "Lua" em português. Como tal, não é nem um acrônimo nem uma abreviação, mas um substantivo. Mais especificamente, "Lua" é um nome, o nome da lua da Terra e o nome do idioma. Como a maioria dos nomes, ele deve ser escrito em letras minúsculas com um capital inicial, ou seja, "Lua". Por favor, não o escreva como "LUA", que é feio e confuso, porque se torna um acrônimo com significados diferentes para pessoas diferentes. Então, por favor, escreva "Lua" certo!
ido

Respostas:

11

Bem, a resposta da pergunta "Ele pode substituir o Arduino" - sim, em muitos casos, pode.
Se seria "o assassino do Arduino" - duvido.
Existem vários arduinos e ESPs em minha casa e 1 ESP em meu escritório, funcionando 24 horas por dia, 7 dias por semana, como parte da minha solução doméstica inteligente criada por você (e constantemente em desenvolvimento), juntamente com 1-2 PCs. Além disso, tenho vários experimentos / projetos inacabados envolvendo o ESP.
Portanto, da minha experiência não tão limitada, eis os prós e os contras do ESP em comparação com o Arduino:

++++ conectividade com a Internet incorporada!
++ Relógio mais rápido e mais memória.
+ É executado em 3V3 (a maioria, mas nem todos os Arduinos são 5V), para que possa interagir com dispositivos 3v3 (como a maioria dos módulos de exibição) diretamente, sem deslocadores de nível.
+ O "básico" ESP-12E custa tanto quanto um Arduino nano ou pro micro.

- O ESP-12E "básico" é um passo de 2,0 mm, e não 2,54 mm, tornando difícil trabalhar com isso.
- Existem falhas que facilitam a criação de protótipos, mas aumentam o custo e ocupam muito espaço em uma placa de ensaio / placa de proteção.
- A fuga mais comum - NodeMCU - é mais cara e tem pinos remapeados, grande aborrecimento, a menos que você a programa em Lua, o que é aceitável apenas para projetos muito simples. IMO, ele deve ser usado apenas para prototipagem.
- Eles funcionam com 3v3, dificultando a interface dos módulos de 5V, ativando totalmente a maioria dos MOSFETs etc.
- Eles são extremamente exigentes em sua fonte de alimentação.
- Eles consomem significativamente mais energia que o Arduino quando não estão transmitindo e muito mais quando estão transmitindo.
- Eles são quase sempre piores para projetos com bateria - você precisa de um regulador 3v3 (que possui corrente quieta), precisa dormir muito (e precisa do GPIO16 dividido por isso) e no final do dia um arduino + um baixo rádio de potência fará o mesmo trabalho enquanto durar significativamente mais tempo na bateria.
- Eles têm menos pinos GPIO e alguns deles devem ter voltagens definidas na inicialização (GPIO0 - alto, GPIO2 - alto ou flutuante, GPIO15 - baixo); também "agitam" alguns de seus pinos de E / S na inicialização, geralmente tornando-os inutilizáveis muitos dispositivos.
- Eles têm apenas um ADC e, pelo que sei, é mais lento que os ADCs do Arduino, já lentos, e você só pode usá-lo com 0-1.1V (referência interna).
- Muitas das bibliotecas do Arduino funcionam imediatamente ou já estão portadas, mas muitas não. Você precisa portá-los sozinho ou esperar alguém fazer isso. Em geral, a comunidade do Arduino é muito maior e mais madura, portanto, a maioria dos tutoriais, bibliotecas, etc. "amigáveis ​​para noob" são fornecidos para o Arduino.

Dito isto, o ESP8266 ainda é ótimo e extremamente útil. Até Lua é útil para pequenos projetos rápidos. Na maioria dos casos em que a conectividade com a Internet é necessária, elas parecem ser a melhor solução. Em muitos outros casos, se você usará ESP ou Arduino, na verdade, não importa. E às vezes o Arduino (ou o pequeno ATTiny85) é a melhor escolha.
Como sempre, "a ferramenta certa para o trabalho" é o caminho a percorrer.
Ou combinação de ferramentas.

Mishony
fonte
2
Discordo totalmente de que é "errado" usar um ESP como dispositivo secundário para um Arduino com uma interface UART. Você aponta razões para isso - se você deseja usar bibliotecas que ainda não foram portadas para o ESP, por que não ter o Arduino como o dispositivo principal e usar o ESP para fazer um bom trabalho? Ou se você está mais familiarizado com os dispositivos AVR de 8 bits e pode pagar US $ 5 por um complemento WiFi muito capaz, por que não fazer isso? Na engenharia, excluindo a estupidez, não há caminho certo ou errado, desde que funcione - apenas mais ou menos apropriado para um desafio específico.
stefandz
2
Não há nada errado em ter um arduino (ou attiny) conectado ao ESP via UART. O que parece "errado" é usar os comandos AT e fazer com que o Arduino analise solicitações e respostas HTML etc. Isso certamente funciona (eu fiz isso), mas parece errado - a maneira "lógica" seria para o chip mais poderoso (o ESP) para atuar como mestre e descarregar tarefas específicas para o chip menos poderoso, e não o contrário. Na maioria das vezes, também é a maneira mais fácil - mexer nos comandos AT que analisam o Arduino não é divertido nem eficiente. Sim, você precisa programar os dois chips dessa maneira, o que é inconveniente.
Mishony 06/06
1
Pode valer a pena editar sua resposta para incluir esse esclarecimento.
stefandz
1
Porque o resto da resposta é boa, mas essa última frase não é clara e é enganosa. Esclarecer quem procura respostas ajudaria aqueles que não entendem por que essa pode ser uma péssima idéia - e afastá-los da ideia de que existe algo como "simplesmente errado" sem raciocínio claro. Mas a resposta é sua - obviamente você é livre para fazer o que achar melhor.
stefandz
1
Se você realmente precisar usar um Arduino AND um ESP (em vez de apenas o ESP), ainda poderá usar a comunicação serial, mas em um nível superior - por exemplo, o Arduino envia "temp = 26.5" ao ESP, seu código no ESP reconhece isso e envia uma solicitação HTTP para thingspeak.com ou o que quer. Para que isso funcione, é necessário programar o Arduino e o ESP, o que é um pouco inconveniente, mas não muito mais difícil do que mexer nos comandos AT. Em muitas situações, você pode simplesmente abandonar o Arduino e usar apenas o ESP.
Mishony 6/06/16
1

Sim, existem alguns pinos de E / S; portanto, em teoria, você pode dirigir um ou alguns leds ou usar um expansor de porta de E / S (I2C), por exemplo.

E sim, você pode desenvolver software e baixá-lo até nos módulos de baixo custo. O ângulo do Arduino é apenas uma maneira de fazer isso. Não é um braço como se pode levar a acreditar. Mas há uma cadeia de ferramentas gnu para o esp8266, etc. Sim 80 ou 160MHz, RISC de 32 bits, alguns flash, outros RAM.

old_timer
fonte
1

Se você pode programá-lo, é claro que é viável controlar diretamente suas luzes. Ele não possui um grande número de pinos de E / S, como o Arduino, mas contanto que você tenha o suficiente para fazer o trabalho, certamente reduz o custo, o tamanho e os requisitos de energia.


fonte
1
@ Dow, você pode encontrar preços ainda melhores no ebay / aliexpress.
Darko
1
Para minha aplicação, basta um IO, no entanto, o ESP-12 fornece vários IOs, ADC de 10 bits e muito mais. Na verdade, comprei um ESP-01 por 1,78 USD (no Aliexpress)! Verifique github.com/esp8266/Arduino para usar seu ESP no Arduino IDE. você só precisa de um conversor USB para serial. Ou pesquise no NodeMCU para obter tudo em um único painel.
1

A placa Arduino Uno e o módulo ESP não são os mesmos, mas, desde que o GPIO do ESP8266 forneça o hardware necessário para o seu aplicativo, ele funcionará.

Uma das minhas preocupações é a certificação. O produto recebeu várias certificações, você precisará verificar se sua versão também é certificada. Você pode procurar as certificações do fabricante (e alguma documentação) na Página de Pesquisa da FCC , digitando 2AC7Z como o código do beneficiário. O quadro que você usa pode depender deles ou exigir sua própria certificação.

Como você notou, ele pode ser adicionado como um tipo de placa à ferramenta Arduino, o que facilita muito o jogo dos hobiests.

Acabei de verificar as bolsas e as três exigem que a antena WiFi seja mantida a pelo menos 20 cm de todas as pessoas.

le_top
fonte