Smart.js-(不仅仅是)ESP8266的新固件
几乎没有文章发表过有关基于流行ESP8266芯片的各种项目的文章,所以我不会自己谈论它。自下而上:我们为该设备开发了新固件,可以使用Javascript进行开发。但是,Smart.js不仅是JS解释器固件,还是用于设备和云基础架构的不同“套件”。
有关详细信息-请在目录下。我必须马上说这篇文章是一篇评论文章,在其中我将尝试谈论Smart.js可以做什么,并且我将很少涉及到这一切如何工作。如果您有兴趣了解其工作原理,那么这可能是下一篇文章的主题(您也可以参阅参考资料)。那么我们到底有什么呢?首先,它是由Cesanta开发的称为V7的JS引擎。在此不作赘述,我只注意到该引擎最初是为嵌入式平台开发的,因此它的特点是体积小,内存消耗低,可移植性出色以及可配置性高。但是,ESP8266上的JS解释器本身就是一个东西,因此Smart.js可以与外界通信。- I2C. API , «» ( EEPROM). I2C bit-bang, ;
- SPI. ESP SPI , SPI HSPI, HSPI, , Hardware SPI. «» SPI , . bit-bang', , HSPI (, ESP, SPI, ). API ;
- 无线上网。不支持WiFi会很奇怪。因此我们支持 ;
- 文件系统。它基于SPIFFS;
- 还有一个用于GPIO和简单HTTP客户端的API ;
- ...以及一系列辅助功能。
通常,如果很有趣-请阅读自述文件,我们尝试描述所有内容。现在介绍一下快速入门。从Flash'n'Chips存档中下载。Flash'n'chips是“专有”闪存驱动器。您可以使用任何设备,但Flash'n'chips会立即生成连接到云所需的设备ID和密码。有适用于OS X和Windows的版本。除了更新程序本身之外,归档文件还包含“发行版”(即Alpha)固件。我们将ESP8266连接到USB,启动Flash'n'chips,我们看到类似这样的内容:
单击“加载固件”,固件将下载到设备中。根据您的ESP,可能需要其他身体运动。例如,我使用最简单的ESP01,因此在闪烁之前,我需要将GPIO0连接到GND。我们通过终端连接。(还有一个内置的Flash'N'Chips,我对picocom较为熟悉,但这并不重要)。速度-115200在此控制台中,您可以立即键入JS代码。 (“ Smartjs NNN / MM $”是命令行提示符,NNN是可用内存量,MM是当前由解释器直接消耗的内存量)。它看起来像一个普通的控制台。
当您按Enter键时,命令将被执行,其结果将显示在控制台中,即您无需太多“打印”就可以做到。编写和运行JS代码的另一种方法是在您喜欢的编辑器中键入它,将其保存到文件中,然后将其下载到您的设备中。最简单的方法是使用相同的Flash'n'Chip-在“选择操作”组合框中,选择“上传文件”。现在,可以通过在控制台中键入以下命令,使用File.load命令(“文件名”)执行该文件,或将其添加到init.js文件中(然后,该文件将在设备启动时自动执行)。ESP8266 Smart.js的固件没有限制。如我上面所写,仍然有一片云,您可以在其中从设备发送数据,将数据存储在此处,从那里获取数据,或者只是查看图表。附有用于将数据发送到云的API 。为了快速入门,我们录制了一个简短的视频:那些。例如,如果您需要监视公寓中的温度,则几乎无需执行任何操作。将温度传感器连接到ESP,在JS上编写“驱动程序”(或准备好一个驱动程序),在云中注册,编写一个读取温度并将其发送到云的小脚本就足够了。然后转到该站点并查看图表。当然,固件可以在没有云的情况下运行。但是使用云计算更方便,因为一部分日常工作已被切断。在github上有一个到云的链接,如果您有github或G +帐户,则只需单击几下即可在其中进行注册。好吧,如果您缺少某些功能,那么您始终可以使用C。您可以简单地用C编写新功能,而不必将其与JS关联。同时,仍然可以使用几乎所有的API(在大多数情况下,JS API是syshny函数的精简包装),此外,您可以使用ESP SDK函数。由于泊坞窗映像的存在,从源代码组装固件并不难。您可以展开JS。为此,我们用C编写了必要的功能,然后使其在JS中可用。这也不难。对于那些使用ESP8266的人来说,Smart.js看起来类似于NodeMCU。我不会争论-虽然看起来如此。但是我们为Smart.js的开发以及向其他设备的移植制定了宏伟的计划,因此,随着时间的流逝,我认为相似性将会减少。说到我们的计划。现在Smart.js的状态为ALPHA1。下一个版本计划于秋季发布(当然,它不会干扰那些希望以任何频率从源收集固件的人)。到秋天,我们将增加用户可用的内存量,从云端更新脚本(也就是说,从理论上讲,根本不可能将ESP8266完全连接到计算机),将端口连接到其他平台等。现在,获取反馈对我们很重要。你喜欢它吗?有什么不见了?什么是多余的?一切都很有趣!所以-下载固件-试试吧,我们会很高兴的。双重许可证,适用于所有参与者的GPLv2,适用于没有GPL和/或需要支持的人员的商业许可证。 Source: https://habr.com/ru/post/zh-CN382189/
All Articles