设施建设中最伟大的创新之一是在工地需要前几个月在工厂预制建筑构件的想法。一旦现场破土动工,它不仅可以使工作快速完成,而且还可以提高质量。

借助软件开发框架(也称为软件开发套件或 SDK),物联网嵌入式设备的软件开发可以利用类似的概念。

要了解什么是 SDK,请想象一下只需获取木材即可从头开始建造房屋。

你必须砍伐树木,将木材放入窑中干燥,然后将木材切割成可用的木材。或者,您可以访问木材场并简单地购买几乎可以保证几乎完美完成手头任务的尺寸木材。Zerynth:用于物联网设备的 Python 框架

您可以花更少的时间在非增值(尽管很重要)的任务上,而花更多的时间来创建最终用户想要的家。

Zerynth SDK

SDK 是一种软件开发,相当于从木材场购买木材,而不是自己砍树。对于希望使用 Python 对物联网设备进行编程的嵌入式开发人员来说,Zerynth 平台是一种 SDK 选项。Zerynth 支持许多流行的 32 位微控制器架构,包括 SAMD21、ESP32、ESP8266 和 NRF52832 等。该 SDK 可安装在 Windows、Mac OS 和 Linux 上。Zerynth SDK 由两个主要组件组成:Zerynth 工具链和 Zerynth Studio 集成开发环境 (IDE)(图 1)。

Zerynth 工具链和 Zerynth Studio 集成开发环境 (IDE)

图 1:Zerynth 集成开发环境允许 Python 开发人员编写、调试、管理和部署物联网固件。(来源:绿鞋车库)

Zerynth 工具链 (ZTC) 是命令行工具,是 Zerynth 生态系统中固件开发、调试和设备管理的核心。Zerynth Studio 是一个位于 ZTC 命令行界面之上的图形界面。

它提供了图形代码编辑器和调试器界面以及大量 Python 代码示例来帮助您开始使用 Zerynth。IDE 的一个令人兴奋的功能是支持所谓的虚拟设备,它允许开发人员开发和验证应用程序代码,而无需将物理设备连接到本地主机。代码编辑器具有许多现代功能,包括语法突出显示、自动完成和智能片段。

其他应该让开发人员满意的功能包括对 Git 存储库的内置支持和内置包管理器。开发人员可以访问 Zerynth 提供的官方 Python 代码库以及用户社区提交的库。能够利用经过验证的、可靠的源代码存储库,使开发人员能够专注于为客户提供增值功能,而不是浪费时间在常用的 Python 代码上重新发明轮子。Zerynth 生态系统的第二个主要组件 Zerynth 操作系统 (OS) 放大了源代码库的功能。

Zerynth OS

Zerynth OS 是一款多线程实时操作系统 (RTOS),经过调整可在内存和存储资源有限的各种 32 位微控制器架构上工作。它包含适用于许多通信协议的高度定制的软件堆栈,包括 Wi-Fi ®蓝牙®和 LoRa 。它还提供安全和电源管理功能。硬件和 RTOS 交互的抽象层的使用使得 Zerynth OS 能够高度独立于底层微控制器平台。Zerynth 操作系统的核心是 Zerynth 虚拟机 (VM),它在任意数量的 RTOS 和硬件平台上运行用户编写的 Python 脚本。

开箱即用的 RTOS 包括 FreeRtos 和 CHIBIOS。通过使用所谓的 VM 操作系统抽象层 (VOSAL),开发人员可以创建在 Zerynth VM 之上运行的高性能应用程序,这些应用程序利用信号量和线程等操作系统级功能,无论选择哪种底层 RTOS。在硬件抽象方面,Zerynth OS 提供了一种机制(VM 硬件抽象层或 VHAL)来与现代微控制器上的许多外设进行交互,例如中断、GPIO、I2C、SPI、ADC、PWM 和 UART。

VHAL 是为每个支持的微控制器定制编写的,为所有前面提到的外设提供了一个单一的标准软件接口。换句话说,只需编写一次应用程序 Python 代码,它就可以在多个硬件平台上运行,只要设备具有板载外设。

Zerynth 设备管理器

当然,为 IoT 设备开发 Python 代码只是成功的一半。最终,设备必须走向世界并连接到互联网才能实现其预期目的。为了帮助实现与部署 IoT 设备相关的各种功能(例如远程配置、组织、监控和管理全球多个设备),还向开发人员提供了 Zerynth 设备管理器 (ZDM)。通过 ZDM,设备可以安全地登录到云端。

 

还可以通过 ZDM 使用 REST API 来管理设备的整个生命周期,包括远程过程调用 (RPC) 和固件无线 (FOTA) 升级。ZDM 提供工具来聚合和存储现场物联网设备收集的数据。

 

它还包括事件管理和警报机制,用于在收到原始数据时做出响应。ZDM 可以用作基于云的服务,也可以为具有独特安全或业务需求的客户现场安装。但是,如果开发人员需要使用第三方云服务提供商(例如,Amazon Web Services、Microsoft Azure、Google Cloud Platform、Ubidots、The Things Network),只需更改以下代码行即可Python 应用程序,而不是完整的代码重写。

 

Python 和 Zerynth:编码者的力量

Python 是一种功能强大的编程语言,在传统桌面应用程序之外的用例中继续受到关注。嵌入式电子产品(尤其是物联网设备)的开发人员将从采用 Zerynth 等软件开发框架中获益匪浅。

 

框架可确保一致性,甚至有助于提高性能、能源管理和安全性。当与 Python 语言的独特性和功能相结合时,框架使开发人员能够消除繁重的工作,为重复性任务提供经过验证的源代码库,并释放资源以专注于面向客户的功能,从而构建最高质量的嵌入式系统。