Smart.js - (mais de) novo firmware para ESP8266
No habr, frequentemente são publicados artigos sobre vários projetos baseados no popular chip ESP8266, então não vou falar sobre isso sozinho.Diretamente ao fundo: desenvolvemos um novo firmware para este dispositivo, oferecendo o uso de Javascript para desenvolvimento. Mas o Smart.js não é apenas um firmware para interpretadores JS, é também um "kit" diferente para trabalhar com equipamentos e uma infraestrutura em nuvem.
Para detalhes - por favor, abaixo do gato.Devo dizer imediatamente que este artigo é um artigo de revisão; tentarei falar sobre o que o Smart.js pode fazer, e tocarei muito pouco em como tudo isso está organizado. Se você estiver interessado em saber como funciona, este pode ser o tópico do próximo artigo (e você também pode ver a fonte ).Então, o que temos sob o capô?Primeiro de tudo, é um mecanismo JS chamado V7 desenvolvido pela Cesanta. Sem me debruçar muito em detalhes, apenas observo que esse mecanismo foi originalmente desenvolvido para plataformas embarcadas, portanto, ele se distingue por seu tamanho pequeno, baixo consumo de memória, excelente portabilidade e alto grau de configurabilidade. No entanto, apenas um intérprete JS no ESP8266 seria algo em si, para que o Smart.js possa se comunicar com o mundo exterior.- I2C. API , «» ( EEPROM). I2C bit-bang, ;
- SPI. ESP SPI , SPI HSPI, HSPI, , Hardware SPI. «» SPI , . bit-bang', , HSPI (, ESP, SPI, ). API ;
- Wi-fi. Seria estranho não suportar WiFi. Portanto, apoiamos ;
- Sistema de arquivo. É baseado em SPIFFS;
- Há também uma API para trabalhar com o GPIO e um cliente HTTP simples ;
- ... e um conjunto de várias funções auxiliares .
Em geral, se for interessante - leia o leia- me , tentamos descrever tudo o que é.Agora um pouco sobre um início rápido.Faça o download do arquivo Flash'n'Chips . O Flash'n'chips é um driver flash "proprietário". Você pode usar qualquer um, mas o Flash'n'chips gera imediatamente o ID do dispositivo e a senha necessários para conectar-se à nuvem. Existe uma versão para OS X e Windows.Além do pisca-pisca em si, o arquivo também contém o firmware "release" (ou seja, Alpha).Conectamos o ESP8266 ao USB, lançamos o Flash'n'chips e vemos algo assim:
Clique em “Carregar firmware” - e o firmware irá inundar o dispositivo. Dependendo do ESP que você possui, movimentos corporais adicionais podem ser necessários. Por exemplo, eu uso o ESP01 mais simples, portanto, antes de piscar, preciso conectar o GPIO0 ao GND.Estamos conectados pelo terminal. (Também há um Flash'N'Chips embutido, estou mais familiarizado com o picocom, mas isso não importa). Velocidade - 115200.Nesse console, você pode digitar imediatamente o código JS. (“Smartjs NNN / MM $” é um prompt de linha de comando, NNN é a quantidade de memória livre, MM é a quantidade de memória atualmente consumida diretamente pelo intérprete).Parece um console comum.
Quando você pressiona Enter, o comando é executado e o resultado é exibido no console, ou seja, você pode fazer sem muita "impressão". Outra maneira de escrever e executar o código JS é digitá-lo no seu editor favorito, salvá-lo em um arquivo e baixá-lo no seu dispositivo. A maneira mais fácil de fazer isso é com os mesmos chips Flash'n'Chips - na caixa de combinação Selecionar ação, selecione “Upload file”.Agora o arquivo pode ser executado usando o comando File.load (“nome do arquivo”) digitando este comando no console ou adicionando-o ao arquivo init.js (o arquivo será executado automaticamente quando o dispositivo for iniciado).O firmware do ESP8266 Smart.js não é limitado. Como escrevi acima, ainda há uma nuvem na qual você pode enviar dados do dispositivo, armazená-los e retirá-los de lá, ou apenas ver os gráficos. Uma API para enviar dados para a nuvem está anexada .Para um início rápido, gravamos um pequeno vídeo:Essa. se você precisar, por exemplo, monitorar a temperatura no apartamento, precisará fazer quase nada. Basta conectar um sensor de temperatura ao ESP, escrever um "driver" (ou preparar um) no JS, registrar-se na nuvem, escrever um pequeno script que leia a temperatura e o envie para a nuvem. E então vá ao site e veja o gráfico.Obviamente, o firmware funcionará sem uma nuvem. Mas é mais conveniente com a nuvem, parte do trabalho de rotina é cortada. Há um link para a nuvem no github e, se você tiver uma conta no github ou no G +, o registro nela caberá em alguns cliques.Bem, se você não tiver algumas funções, poderá sempre usar C. Você pode simplesmente escrever novas funcionalidades em C sem precisar associá-las ao JS. Ao mesmo tempo, continuará sendo possível usar quase todas as APIs que são (na maioria dos casos, a API JS é um invólucro fino sobre as funções syshny); além disso, você pode usar as funções ESP SDK. Não é difícil montar o firmware a partir da fonte , graças à presença de imagens do docker.Você pode expandir JS. Para fazer isso, escrevemos a funcionalidade necessária em C e a disponibilizamos em JS. Isso também não é difícil .Para quem lida com o ESP8266, o Smart.js será semelhante ao NodeMCU. Não vou discutir - enquanto parece. Mas temos grandes planos para o desenvolvimento do Smart.js e para a portabilidade para outros dispositivos, portanto, com o tempo, acho, haverá menos semelhanças.Falando em nossos planos. Agora, o status do Smart.js é ALPHA 1. A próxima versão está agendada para o outono (o que, é claro, não interfere com aqueles que desejam montar o firmware a partir das fontes com qualquer frequência). No outono, aumentaremos a quantidade de memória disponível para o usuário, atualizaremos os scripts da nuvem (ou seja, teoricamente seria possível nunca conectar o ESP8266 ao computador), tornaremos a porta para outras plataformas etc.E agora é importante receber um feedback. Você gosta disso? O que está faltando? O que é supérfluo? Tudo é interessante!Então - faça o download do firmware - experimente, seremos felizes. Licença dupla, GPLv2 para todos os interessados e comercial para aqueles que não possuem a GPL e / ou precisam de suporte. Source: https://habr.com/ru/post/pt382189/
All Articles