Smart.js - (mehr als) neue Firmware für ESP8266

Auf dem Habr werden ziemlich oft Artikel über verschiedene Projekte veröffentlicht, die auf dem beliebten ESP8266-Chip basieren, daher werde ich selbst nicht darüber sprechen.

Ganz unten: Wir haben eine neue Firmware für dieses Gerät entwickelt, die die Verwendung von Javascript für die Entwicklung anbietet. Smart.js ist jedoch nicht nur eine JS-Interpreter-Firmware, sondern auch ein anderes „Kit“ für die Arbeit mit Geräten und einer Cloud-Infrastruktur.

Bild

Für Details - bitte unter Katze.

Ich muss sofort sagen, dass dieser Artikel ein Übersichtsartikel ist. Darin werde ich versuchen, darüber zu sprechen, was Smart.js kann, und ich werde sehr wenig darauf eingehen, wie das alles funktioniert. Wenn Sie wissen möchten, wie es funktioniert, ist dies möglicherweise das Thema des nächsten Artikels (und Sie können auch die Quelle sehen ).

Was haben wir also unter der Haube?

Zunächst einmal handelt es sich um eine von Cesanta entwickelte JS-Engine namens V7 . Ohne zu sehr darauf einzugehen, stelle ich nur fest, dass diese Engine ursprünglich für eingebettete Plattformen entwickelt wurde. Sie zeichnet sich daher durch ihre geringe Größe, den geringen Speicherverbrauch, die hervorragende Portabilität und den hohen Grad an Konfigurierbarkeit aus. Nur ein JS-Interpreter auf dem ESP8266 wäre jedoch eine Sache für sich, sodass Smart.js mit der Außenwelt kommunizieren kann.
  • I2C. API , «» ( EEPROM). I2C bit-bang, ;
  • SPI. ESP SPI , SPI HSPI, HSPI, , Hardware SPI. «» SPI , . bit-bang', , HSPI (, ESP, SPI, ). API ;
  • W-lan. Es wäre seltsam, WiFi nicht zu unterstützen. Deshalb wir unterstützen ;
  • Dateisystem. Es basiert auf SPIFFS;
  • Es gibt auch eine API für die Arbeit mit GPIO und einen einfachen HTTP-Client .
  • ... und eine Reihe verschiedener Hilfsfunktionen .

Wenn es interessant ist - lesen Sie die Readme-Datei - , haben wir versucht, alles zu beschreiben, was ist.

Nun ein wenig über einen schnellen Start.

Download aus dem Flash'n'Chips- Archiv . Flash'n'chips ist ein "proprietärer" Flash-Treiber. Sie können alle verwenden, aber Flash'n'chips generiert sofort die Geräte-ID und das Kennwort, die für die Verbindung mit der Cloud erforderlich sind. Es gibt eine Version für OS X und Windows.
Und Linux.
Linux , , .

Neben dem Blinker selbst enthält das Archiv auch die Firmware „Release“ (dh Alpha).

Wir verbinden den ESP8266 mit USB, starten Flash'n'chips und sehen Folgendes:

Bild

Klicken Sie auf „Firmware laden “ - und die Firmware wird auf das Gerät übertragen. Abhängig von Ihrem ESP können zusätzliche Körperbewegungen erforderlich sein. Zum Beispiel verwende ich das einfachste ESP01. Vor dem Flashen muss ich GPIO0 mit GND verbinden.

Wir sind durch das Terminal verbunden. (Es gibt auch einen eingebauten Flash'N'Chips, ich bin mit Picocom besser vertraut, aber das spielt keine Rolle.) Geschwindigkeit - 115200.

Wir sehen die Konsole.
, .

In dieser Konsole können Sie sofort JS-Code eingeben. ("Smartjs NNN / MM $" ist eine Eingabeaufforderung, NNN ist die Menge an freiem Speicher, MM ist die Menge an Speicher, die derzeit direkt vom Interpreter verbraucht wird).
Es sieht aus wie eine normale Konsole.

Bild

Wenn Sie die Eingabetaste drücken, wird der Befehl ausgeführt und das Ergebnis in der Konsole angezeigt, d. H. Sie können auf viel „Drucken“ verzichten. Eine andere Möglichkeit, JS-Code zu schreiben und auszuführen, besteht darin, ihn in Ihren bevorzugten Editor einzugeben, in einer Datei zu speichern und auf Ihr Gerät herunterzuladen. Der einfachste Weg, dies zu tun, ist mit denselben Flash'n'Chips - wählen Sie im Kombinationsfeld Aktion auswählen die Option Datei hochladen.

Jetzt kann die Datei mit dem Befehl File.load („Dateiname“) ausgeführt werden, indem Sie diesen Befehl in die Konsole eingeben oder zur Datei init.js hinzufügen (die Datei wird dann automatisch ausgeführt, wenn das Gerät gestartet wird).

Die Firmware für ESP8266 Smart.js ist nicht beschränkt. Wie ich oben geschrieben habe, gibt es immer noch eine Cloud, in der Sie Daten vom Gerät senden, dort speichern, von dort übernehmen oder einfach nur die Grafiken betrachten können. Eine API zum Senden von Daten an die Cloud ist beigefügt .

Für einen schnellen Start haben wir ein kurzes Video aufgenommen:



Jene. Wenn Sie beispielsweise die Temperatur in der Wohnung überwachen müssen, müssen Sie fast nichts tun. Es reicht aus, einen Temperatursensor an das ESP anzuschließen, einen „Treiber“ auf JS zu schreiben (oder einen fertig zu machen), sich in der Cloud zu registrieren, ein kleines Skript zu schreiben, das die Temperatur liest und an die Cloud sendet. Gehen Sie dann zur Website und sehen Sie sich die Tabelle an.

Natürlich funktioniert die Firmware ohne Cloud. Mit der Cloud ist es jedoch bequemer, einen Teil der Routinearbeit abzuschneiden. Es gibt einen Link zur Cloud auf dem Github . Wenn Sie einen Github oder ein G + -Konto haben, passt die Registrierung mit wenigen Klicks.

Wenn Ihnen einige Funktionen fehlen, können Sie immer C verwenden. Sie können einfach neue Funktionen in C schreiben, ohne sie mit JS verknüpfen zu müssen. Gleichzeitig bleibt es möglich, fast alle vorhandenen APIs zu verwenden (in den meisten Fällen ist die JS-API ein Thin Wrapper über Systemfunktionen). Außerdem können Sie die ESP SDK-Funktionen verwenden. Dank der Docker-Images ist es nicht schwierig, die Firmware aus der Quelle zusammenzustellen .

Sie können JS erweitern. Dazu schreiben wir die notwendigen Funktionen in C und stellen sie dann in JS zur Verfügung. Das ist auch nicht schwer .

Für diejenigen, die mit dem ESP8266 zu tun haben, scheint Smart.js NodeMCU ähnlich zu sein. Ich werde nicht streiten - solange es scheint. Wir haben jedoch große Pläne für die Entwicklung von Smart.js und für die Portierung auf andere Geräte. Ich denke, dass es im Laufe der Zeit weniger Ähnlichkeiten geben wird.

Apropos unsere Pläne. Jetzt lautet der Status von Smart.js ALPHA 1. Die nächste Version ist für den Herbst geplant (was natürlich diejenigen nicht beeinträchtigt, die Firmware mit beliebiger Häufigkeit aus dem Quellcode sammeln möchten). Bis zum Herbst werden wir den Speicherplatz erhöhen, der dem Benutzer zur Verfügung steht, die Skripte aus der Cloud aktualisieren (das heißt, theoretisch wäre es überhaupt nicht möglich, den ESP8266 mit dem Computer zu verbinden), den Port mit anderen Plattformen verbinden usw.

Und jetzt ist es wichtig, dass wir ein Feedback erhalten. Gefällt es dir Was fehlt? Was ist überflüssig? Alles ist interessant!

Also - laden Sie die Firmware herunter - probieren Sie es aus, wir werden uns freuen. Doppellizenz, GPLv2 für alle Ankömmlinge und Werbung für diejenigen, die nicht über die GPL verfügen und / oder Unterstützung benötigen.

Source: https://habr.com/ru/post/de382189/


All Articles