Estou procurando uma comparação imparcial e atualizada do eLUA (NodeMCU) e MicroPython no ESP8266.
Só consigo encontrar relatórios / blogs muito superficiais de usuários testando um ou outro. - Todos com falta de detalhes técnicos.
A coisa mais próxima que pude encontrar é essa comparação provavelmente irremediavelmente desatualizada e difícil de entender pelo projeto MicroPython.
Eu estaria interessado nas perguntas óbvias:
- uso do flash
- Uso de RAM da VM após a inicialização
- Uso de RAM no uso usual
- modelo de execução (ou seja, como as "tarefas" do ESP8266 são mapeadas?)
- desempenho de execução
- facilidade de extensão (isto é, adição de módulo)
- qualquer outra coisa que possa ser relevante
Ao estudar a documentação, acredito ter entendido o seguinte:
- O NodeMCU possui opções de construção bastante refinadas que permitem a construção apenas dos módulos necessários. Isso parece permitir trabalhar com tamanhos pequenos de flash. Para o Micropython, 512 KB parece ser o limite inferior absoluto; nesse caso, não resta espaço para o código definido pelo usuário. Não tenho certeza de como isso se compara ao NodeMCU.
- O MicroPython possui um WebREPL interno configurado automaticamente por padrão. O NodeMCU parece não ter nada semelhante embutido.
- O NodeMCU parece se beneficiar atualmente de uma comunidade maior, presumivelmente devido ao fato de já existir há mais tempo.
- A documentação do MicroPython é bastante informal, faltando totalmente quando se trata de estender o código C. A documentação do NodeMCU parece ser excelente.
Respostas:
Aqui está uma abordagem ligeiramente diferente em vez de um tiroteio Lua vs. Python:
Seis dos "tempos de execução" ESP8266 mais populares:
O principal insight é que a maior parte do código é comum. Todas as bibliotecas primárias em 1-5 são originárias de 6. Abaixo de uma fina camada de AT / Python / LUA / JavaScript / C o código primário é praticamente idêntico.Isso significa que o desempenho (RAM, FLASH, execução) também é semelhante.
Como você parece preocupado com velocidade e RAM (o flash geralmente é bom), que tal a opção 5? O Arduino é um IDE utilizável com uma grande coleção de exemplos.Você pode ter seu primeiro código em execução em menos de uma hora e provavelmente superaria qualquer um dos mecanismos de script.
Na ausência de diferenças significativas no uso da memória, eu escolheria o MicroPython devido ao maior número de bibliotecas e a uma comunidade online ativa com o IRC webchat. Documentação para adicionar módulos C foi aprimorada.
A opção nº 6 fornece a você maior potencial de otimização mas com maior complexidade e curva de aprendizado mais acentuada.
Por fim, uma boa regra prática do ESP8266: Cada conexão TCP / IP pode consumir até ~ 3k de memória. Sempre espere menos de 5 simultâneos conexões !
Os aplicativos TL; DR: ESP8266 têm a maior parte de seu código em comum e apresentam desempenho semelhante. Portanto, escolha o mecanismo de script que você gosta ou avance para C / IDE-12E. Não espere mais de 5 conexões IP simultâneas.
fonte