Smart.js - (plus que) nouveau firmware pour ESP8266
Sur le habr assez souvent, des articles sont publiés sur divers projets basés sur la puce ESP8266 populaire, donc je n'en parlerai pas moi-même.Tout en bas: nous avons développé un nouveau firmware pour cet appareil, proposant d'utiliser Javascript pour le développement. Mais, Smart.js n'est pas seulement un firmware d'interpréteur JS, c'est aussi un «kit» différent pour travailler avec des équipements et une infrastructure cloud.
Pour plus de détails - veuillez, sous cat.Je dois dire tout de suite que cet article est un article de synthèse, dans lequel j'essaierai de parler de ce que Smart.js peut faire, et je toucherai très peu à la façon dont tout cela est organisé. Si vous souhaitez savoir comment cela fonctionne, cela peut être le sujet du prochain article (et vous pouvez également voir la source ).Alors qu'avons-nous sous le capot?Tout d'abord, c'est un moteur JS appelé V7 développé par Cesanta. Sans m'y attarder trop en détail, je note seulement que ce moteur a été développé à l'origine pour les plates-formes embarquées, il se distingue donc par sa petite taille, sa faible consommation de mémoire, son excellente portabilité et son haut degré de configurabilité. Cependant, un simple interprète JS sur l'ESP8266 serait une chose en soi, afin que Smart.js puisse communiquer avec le monde extérieur.- I2C. API , «» ( EEPROM). I2C bit-bang, ;
- SPI. ESP SPI , SPI HSPI, HSPI, , Hardware SPI. «» SPI , . bit-bang', , HSPI (, ESP, SPI, ). API ;
- Wifi. Il serait étrange de ne pas prendre en charge le WiFi. Par conséquent, nous soutenons ;
- Système de fichiers. Il est basé sur SPIFFS;
- Il existe également une API pour travailler avec GPIO et un simple client HTTP ;
- ... et un ensemble de diverses fonctions auxiliaires .
En général, si c'est intéressant - lisez le readme , nous avons essayé de décrire tout ce qui est.Maintenant, un petit démarrage rapide.Téléchargement depuis l'archive Flash'n'Chips . Flash'n'chips est un pilote flash «propriétaire». Vous pouvez en utiliser n'importe quel, mais Flash'n'chips génère immédiatement l'identifiant et le mot de passe de l'appareil nécessaires pour se connecter au cloud. Il existe une version pour OS X et Windows.En plus du flasher lui-même, l'archive contient également le firmware «release» (c'est-à-dire Alpha).Nous connectons l'ESP8266 à l'USB, lançons Flash'n'chips, et nous voyons quelque chose comme ceci:
Cliquez sur «Charger le firmware» - et le firmware envahira l'appareil. Selon votre ESP, des mouvements corporels supplémentaires peuvent être nécessaires. Par exemple, j'utilise le ESP01 le plus simple, donc avant de flasher, je dois connecter GPIO0 à GND.Nous sommes connectés par le terminal. (Il y a aussi un Flash'N'Chips intégré, je suis plus familier avec picocom, mais ce n'est pas important). Vitesse - 115200.Nous voyons la console., .
Dans cette console, vous pouvez immédiatement taper du code JS. («Smartjs NNN / MM $» est une invite de ligne de commande, NNN est la quantité de mémoire libre, MM est la quantité de mémoire actuellement consommée directement par l'interpréteur).Cela ressemble à une console ordinaire.
Lorsque vous appuyez sur Entrée, la commande est exécutée et son résultat s'affiche dans la console, c'est-à-dire vous pouvez vous passer de beaucoup d’impressions. Une autre façon d'écrire et d'exécuter du code JS consiste à le saisir dans votre éditeur préféré, à l'enregistrer dans un fichier et à le télécharger sur votre appareil. La façon la plus simple de le faire est d'utiliser le même Flash'n'Chips - dans la zone de liste déroulante Sélectionner une action, sélectionnez «Télécharger le fichier».Le fichier peut maintenant être exécuté à l'aide de la commande File.load («nom de fichier») en tapant cette commande dans la console ou en l'ajoutant au fichier init.js (le fichier sera alors automatiquement exécuté au démarrage de l'appareil).Le micrologiciel pour ESP8266 Smart.js n'est pas limité. Comme je l'ai écrit ci-dessus, il y a toujours un nuage où vous pouvez envoyer des données à partir de l'appareil, les y stocker, les prendre à partir de là ou simplement regarder les graphiques. Une API pour l'envoi de données vers le cloud est jointe .Pour un démarrage rapide, nous avons enregistré une courte vidéo:Ceux. si vous avez besoin, par exemple, de surveiller la température dans l'appartement, vous n'aurez presque rien à faire. Il suffit de connecter un capteur de température à l'ESP, d'écrire un «driver» (ou de s'en préparer un) sur JS, de s'inscrire dans le cloud, d'écrire un petit script qui lit la température et l'envoie au cloud. Et puis allez sur le site et regardez le tableau.Bien sûr, le firmware fonctionnera sans cloud. Mais c'est plus pratique avec le cloud, une partie du travail de routine est interrompue. Il y a un lien vers le cloud sur le github , et si vous avez un compte github ou G +, l'enregistrement dans celui-ci tiendra en quelques clics.Eh bien, si vous manquez de certaines fonctions, vous pouvez toujours utiliser C. Vous pouvez simplement écrire de nouvelles fonctionnalités en C sans avoir à les associer à JS. Dans le même temps, il restera possible d'utiliser presque toutes les API qui sont (dans la plupart des cas, l'API JS est un wrapper fin sur les fonctions syshny), en plus, vous pouvez utiliser les fonctions ESP SDK. Il n'est pas difficile d' assembler le firmware à partir de la source , grâce à la présence d'images docker.Vous pouvez développer JS. Pour ce faire, nous écrivons les fonctionnalités nécessaires en C, puis les rendons disponibles dans JS. Ce n'est pas non plus difficile .Pour ceux qui ont affaire à l'ESP8266, Smart.js semblera similaire à NodeMCU. Je ne discuterai pas - tant qu'il semble. Mais nous avons de grands projets pour le développement de Smart.js et pour le portage vers d'autres appareils, donc au fil du temps, je pense, il y aura moins de similitudes.En parlant de nos plans. Maintenant, le statut de Smart.js est ALPHA 1. La prochaine version est prévue pour l'automne (ce qui, bien sûr, n'interfère pas avec ceux qui veulent assembler le firmware à partir des sources avec n'importe quelle fréquence). À l'automne, nous augmenterons la quantité de mémoire disponible pour l'utilisateur, mettrons à jour les scripts à partir du cloud (c'est-à-dire qu'il serait théoriquement possible de ne jamais connecter l'ESP8266 à l'ordinateur), de rendre le port vers d'autres plates-formes, etc.Et maintenant, il est important pour nous d'obtenir une rétroaction. Aimes-tu? Que manque-t-il? Qu'est-ce qui est superflu? Tout est intéressant!Alors - téléchargez le firmware - essayez-le, nous serons heureux. Double licence, GPLv2 pour tous les arrivants et commerciale pour ceux qui n'ont pas la GPL et / ou qui ont besoin de support. Source: https://habr.com/ru/post/fr382189/
All Articles