Smart.js - (más que) nuevo firmware para ESP8266
En el habr, a menudo se publican artículos sobre varios proyectos basados en el popular chip ESP8266, por lo que no hablaré de eso yo mismo.Justo al final: desarrollamos un nuevo firmware para este dispositivo, ofreciendo utilizar Javascript para el desarrollo. Pero Smart.js no es solo un firmware de intérprete JS, también es un "kit" diferente para trabajar con equipos y una infraestructura en la nube.
Para más detalles, por favor, debajo del cat.Debo decir de inmediato que este artículo es un artículo de revisión, en el que trataré de hablar sobre lo que Smart.js puede hacer, y hablaré muy poco sobre cómo funciona todo. Si está interesado en saber cómo funciona, este puede ser el tema del próximo artículo (y también puede ver la fuente ).Entonces, ¿qué tenemos debajo del capó?En primer lugar, es un motor JS llamado V7 desarrollado por Cesanta. Sin pensar demasiado en él, solo noto que este motor fue desarrollado originalmente para plataformas integradas, por lo tanto, se distingue por su pequeño tamaño, bajo consumo de memoria, excelente portabilidad y un alto grado de configurabilidad. Sin embargo, solo un intérprete JS en el ESP8266 sería algo en sí mismo, por lo que Smart.js puede comunicarse con el mundo exterior.- I2C. API , «» ( EEPROM). I2C bit-bang, ;
- SPI. ESP SPI , SPI HSPI, HSPI, , Hardware SPI. «» SPI , . bit-bang', , HSPI (, ESP, SPI, ). API ;
- Wifi. Sería extraño no admitir WiFi. Por eso apoyamos ;
- Sistema de archivos. Se basa en SPIFFS;
- También hay una API para trabajar con GPIO y un cliente HTTP simple ;
- ... y un conjunto de varias funciones auxiliares .
En general, si es interesante, lea el archivo Léame , tratamos de describir todo lo que es.Ahora un poco sobre un comienzo rápido.Descargar desde el archivo Flash'n'Chips . Flash'n'chips es un controlador flash "patentado". Puede usar cualquiera, pero Flash'n'chips genera inmediatamente la identificación y la contraseña del dispositivo necesarias para conectarse a la nube. Hay una versión para OS X y Windows.Además del flasher, el archivo también contiene firmware de "lanzamiento" (es decir, Alpha).Conectamos el ESP8266 a USB, lanzamos Flash'n'chips y vemos algo como esto:
haga clic en "Cargar firmware" y el firmware se descargará en el dispositivo. Dependiendo de su ESP, se pueden requerir movimientos corporales adicionales. Por ejemplo, uso el ESP01 más simple, así que antes de flashear necesito conectar GPIO0 a GND.Estamos conectados por la terminal. (También hay un Flash'N'Chips incorporado, estoy más familiarizado con picocom, pero esto no es importante). Velocidad - 115200.En esta consola, puede escribir inmediatamente el código JS. ("Smartjs NNN / MM $" es un mensaje de línea de comando, NNN es la cantidad de memoria libre, MM es la cantidad de memoria actualmente consumida directamente por el intérprete).Parece una consola normal.
Cuando presiona Enter, el comando se ejecuta y su resultado se muestra en la consola, es decir, puede prescindir de mucha "impresión". Otra forma de escribir y ejecutar código JS es escribirlo en su editor favorito, guardarlo en un archivo y descargarlo en su dispositivo. La forma más fácil de hacer esto es con el mismo Flash'n'Chips: en el cuadro combinado Seleccionar acción, seleccione "Cargar archivo".Ahora el archivo se puede ejecutar con el comando File.load ("nombre de archivo") escribiendo este comando en la consola o agregándolo al archivo init.js (el archivo se ejecutará automáticamente cuando se inicie el dispositivo).El firmware para ESP8266 Smart.js no está limitado. Como escribí anteriormente, todavía hay una nube donde puedes enviar datos desde el dispositivo, almacenarlos allí, tomarlos desde allí o simplemente mirar los gráficos. Se adjunta una API para enviar datos a la nube .Para comenzar rápidamente, grabamos un video corto:Aquellos. Si necesita, por ejemplo, controlar la temperatura en el apartamento, entonces no tendrá que hacer casi nada. Es suficiente conectar un sensor de temperatura al ESP, escribir un "controlador" (o preparar uno) en JS, registrarse en la nube, escribir un pequeño script que lea la temperatura y la envíe a la nube. Y luego ve al sitio y mira la tabla.Por supuesto, el firmware funcionará sin una nube. Pero es más conveniente con la nube, parte del trabajo de rutina se corta. Hay un enlace a la nube en el github , y si tiene una cuenta github o G +, entonces el registro se ajustará en un par de clics.Bueno, si carece de algunas funciones, siempre puede usar C. Puede simplemente escribir una nueva funcionalidad en C sin tener que asociarla con JS. Al mismo tiempo, seguirá siendo posible usar casi todas las API que son (en la mayoría de los casos, la API de JS es una envoltura delgada sobre las funciones sysh), además, puede usar las funciones ESP SDK. No es difícil ensamblar el firmware desde la fuente , gracias a la presencia de imágenes acoplables.Puedes expandir JS. Para hacer esto, escribimos la funcionalidad necesaria en C y luego la ponemos a disposición en JS. Esto tampoco es difícil .Para aquellos que trabajan con ESP8266, Smart.js parecerá similar a NodeMCU. No discutiré, aunque parezca. Pero tenemos grandes planes para el desarrollo de Smart.js y para portarlos a otros dispositivos, por lo que, con el tiempo, creo que habrá menos similitudes.Hablando de nuestros planes. Ahora el estado de Smart.js es ALPHA 1. La próxima versión está programada para el otoño (que, por supuesto, no interfiere con aquellos que desean ensamblar el firmware de las fuentes con ninguna frecuencia). Para el otoño, aumentaremos la cantidad de memoria disponible para el usuario, actualizaremos los scripts desde la nube (es decir, en teoría sería posible nunca conectar el ESP8266 a la computadora), haremos el puerto a otras plataformas, etc.Y ahora es importante para nosotros recibir comentarios. ¿Te gusta? ¿Lo que falta? ¿Qué es superfluo? ¡Todo es interesante!Entonces, descargue el firmware, pruébelo, estaremos encantados. Doble licencia, GPLv2 para todos los que vienen y comercial para aquellos que no tienen la GPL y / o necesitan soporte. Source: https://habr.com/ru/post/es382189/
All Articles