物联网开发不再困难,Toit 编程语言正式开源
Toit like a Tiger
一款新的编程语言,专门针对物联网场景的免费、开源并具有生态的新型编程语言——Toit,近日正式通过GitHub向开发者发布。
Toit的GitHub:https://github.com/toitlang/toit
这意味着,程序员现在可以为物联网ESP32(一种流行的低耗能WI-FI无线设备)编写更强大的软件了。
Toit的前世今生
Toit 是由 一群 Google的V8 引擎团队所开发,语言创始人分别为:Kasper Lund 和 Florian Loitsch。凭着有 Flutter 和 Dart 语言的经验,为破解物联网开发的困难和复杂性,几个人想为iOT设备开发一个通用固件,以取代传统复杂的物联网开发流程。
Toit提供了一套全新的功能,甚至是一种专为物联网开发的类似 Python 或者JavaScript的新式编程语言。
Toit 语言简介
Toit有构建 IoT 应用程序所需的一切,包括固件、云连接、基于 Web 的控制台,有一种具有类似 Python 语法但执行速度明显更快的新式编程语言。
更重要的是,Toit 为ESP32提供了基于容器的开发,允许应用程序相互独立地安装/更新,也可以独立于底层固件。
Toit语言之关键特性
以下向各位重点介绍一些关键特性,哪些可帮助 IoT 开发人员快速且轻松地开发自己的应用程序。
1)可在2 美元 的ESP32 MCU 上进行创新以及更有效的多任务处理
Toit 能将 2 美元的 ESP32 MCU推向性能极致,还能够执行真正的多任务处理。Toit 允许开发者划分固件和应用程序代码,以更轻巧和敏捷的方法在同一设备上部署大量应用程序。
因此,程序员可以自由安全地试验代码,而不必担心设备变砖头。
在设备上,应用程序在与系统在彼此不同的环境中运行,可以同时运行多个应用程序。即使其中一个应用出现故障,系统仍将继续正常运行。如果在代码中存在缺陷,最糟糕的情况就是它自己崩溃掉。
Toit 可以非常简单修复错误,在几秒钟内通过无线方式重新部署应用程序。
2)Toit 支持多种连接与代码沙箱
Toit 可开箱即用地进行无线连接。它可以直接连接到 ESP32 的内置 Wi-Fi,使用NB-IoT或LTE-M蜂窝调制解调器连接到云端。
无需再通过 USB 线将设备连接到 PC 并等待它代码刷新。在设备上安装 Toit 后,设备和云之间的都通过无线方式进行通信,不论你的设备是在自己的办公桌上还是位于地球的另一端。
与典型的物联网系统将所有功能组合成一个大坨代码段不同,Toit 连接配置与应用程序代码分开。Toit 的编排引擎使物联网配置的智能调度变得很容易,只需单击几下即可调度配置更改或更新,即使对于离线的设备也没有问题。
Toit 应用程序的大小为40 到 100KB,更新只需将补丁传输到之前安装的版本,因此 Toit 应用程序更新可以最小到20KB。更新会在几秒钟内发生,因此断开连接的可能性非常低。
即使在更新过程中蜂窝网络连接丢失,当连接恢复后,Toit会自动恢复传输。此外,更新从接收到的最新数据续传,而不是从头开始。
Toit 应用仅专注于生成数据并将其保存在设备上,Toit 的连接与其应用程序代码也是分离的。当每次设备连接到互联网时,数据都会上传到云端。即使在缓慢和不可靠的互联网连接上,也不会出现差错,所以 Toit 设备功能非常强大、易于访问且节能。
使用 Toit 让程序员更轻松编程
如果你做过微控制器的嵌入式编程,知道这有多令人头疼。人们多半使用 C/C++ 进行编码,更改一行代码需要几分钟才能重新部署。问题是,当涉及到微控制器时,编写低级代码那是相当的乏味。而使用高级语言(例如 MicroPython)能让编写代码变得简单,但是执行速度却不佳,这便是代价。
而Toit 语言的横空出世,它在创建专门用于物联网的开发方面做得可能说非常出色。
它提供一种现代的面向对象语言,这是一种现代的、内存级别安全的编程语言,它还集成了具有语法高亮显示、代码行跳转定义和自动完成等现代特性的编辑器。
在 Toit 的虚拟机中,代码可作为一个或多个应用程序同时执行。由于代码在沙盒环境中运行,出现缺陷也不会影响其它程序,最坏情况就是自己崩溃掉。
通过 ESP32 上的 GPIO 引脚,程序员可以控制插件的任何外围设备——I2C、SPI、I2S 和 UART 协议均可使用。
此外,Toit 的包管理器为传感器、电机等各种常用的外围设备提供常用的驱动程序,如果没有找到,Toit的工程团队可以帮忙补充。
易于使用的 API 和通信安全
Toit提供了控制台,也提供了自由的命令行工具,程序员不会感到受限制。
“你可以完全控制自己的设备,使用 Toit 平台执行的所有操作,这些可通过提供的 API 来搞定。你会很容易将Toit集成到自己的产品中,使自己的设备组完全可编程”,Toit 团队在官方博客中这样提到。
Toit 提供的是基于 gRPC 的 API ,用户可以自由地使用,实现想要的任何目标。
物联网是关于数据的,Toit 的 API 旨在为用户提供对设备的完整编程控制,并使将获取的数据尽可能简单地提取到自己的后端系统。
Toit 使用现代公钥加密,设备和云之间的所有通信均为端到端加密。每个设备都有自己的加密安全标识,开发者可以鉴别所有收集数据的来源。
编写和部署应用程序,可用 Visual Studio Code 扩展
Toit 语言引进了 Visual Studio Code 扩展,这表示用VSC就可以开发iOT软件。
它不仅是通过引入一种新的语言来突出显示代码,并且开发者在内置终端中,可以运行代码片段、部署程序和监控输出。
该扩展程序还会在编辑器侧边栏中显示当前正在运行的设备和应用程序列表。此款 Visual Studio Code 扩展可明显加快开发速度。
我想大家喜欢这样一个事实:直接在iOT设备上执行的软件,和在计算机上执行的程序一样。不用再担心在处理 C++ 程序时可能出现的端口选择、内存崩溃或其他问题。
这款 VS Code 扩展提供了基于 Web 的界面的基本功能,包括额外的应用部署选项。
Toit 语言入门
先将Toit刷入固件,首次使用的程序员需要一块 ESP32 开发板和一条 USB 数据线。
Toit支持通过 Web 串行协议,可以从浏览器刷入,开发者甚至可以在自己的 PC 上不安装任何东西的情况下就可以开始创建。
配置设备只需几分钟,很快就会启动并运行。配置完成后即可以在设备上试用任何内容,只要一连接到网络,物联网设备和云之间的所有通信都将通过无线方式进行。
Toit 控制台还包含一个内置代码编辑器,用时间戳的方式,在设备上编写、运行和监控代码。
在程序启动运行后,就可以将其作为长时间运行的应用安装在设备上。应用程序的输出将被记录下来,并且可以在控制台的日志部分查看。
Toit 出色的多任务处理能力将 ESP32 变成了一台计算机。
关于Toit的开源许可证
以下是Toit联合创始人Kasperl的回答:
Toit 一部分使用的是 LGPL 2.1许可证,并且提供商业许可证。10个以内的iOT设备处理完全免费,超出的服务每月收取0.5美元。详细可参阅https://toit.io/pricing。
如果使用商业许可证则不受 LGPL 的约束。如果选择使用开源版本,将受 Toit 虚拟机的 LGPL 约束。
Toit 的标准库遵循 MIT 许可证,这些不属于 LGPL 许可证范围之内。
各位同学,愿意试试看吗?
作者:洛逸
来源:21CTO
关于21CTO.com
21CTO.com是开发者的学习与服务平台。
我们为开发者提供高质量的资讯、学习以及工具等产品;
帮助企业快速对接开发者,包括人才招聘,数字化转型咨询,软件研发等服务。
网站地址:www.21cto.com
投稿邮箱:info@21cto.com
联系微信:13426109659
扫描二维码关注21CTO微信号