沃卡惠移动端logo

沃卡惠  行业资讯

资讯详情

面向非C编码人员的简单物联网和设备管理

2023-01-09 09:42:394636

如果您对使用微控制器进行家庭监控或开发商用物联网产品感兴趣,但没有任何经验c程序设计,那么这个教程就是给你的!您将学习如何使用一种叫做左上臂。通过本教程,您不需要任何C语言经验,并且您将能够通过遵循一些简单的说明来安装现成的微控制器固件。此外,您将能够以有趣和互动的方式学习微控制器编程的基础知识,这将有助于您在进步的过程中培养技能和信心。那么为什么要等呢?今天就开始学习,朝着用微控制器创建激动人心的创新项目迈出第一步!

物联网和设备管理

Lua——易于儿童学习,而且功能强大,足以开发专业的物联网解决方案!

Lua语言,类似于计算机编程语言,但是比较容易学,在游戏行业很常见。例如,Roblox游戏引擎提供了一个免费的开发者环境,允许任何人用Lua创建游戏。游戏行业使用Lua,因为它很容易将Lua虚拟机嵌入到更大的程序中,并且该语言可以很容易地在游戏的状态机中编程不断增加的复杂性。

一个有经验的C开发人员可以将Lua C代码交付并嵌入到一个微控制器中。也可以下载现成的Lua微控制器版本,如NodeMCU和e Lua。然而,stock Lua、NodeMCU或eLua都不包含任何有用的物联网功能。我们需要的是一个物联网库,包括常见的物联网协议,如HTTPS、MQTT、SMTP等。对于专业产品,还需要一个具有易于使用的安全组件的框架,如X.509证书管理。那就是梭鱼应用服务器进来了。它提供了专门为Lua开发者设计的完整物联网解决方案,让您轻松构建满足需求的安全可靠的物联网产品。

这是一个使用ESP32微控制器的实践视频教程。固件(Lua + IoT库)和Lua示例代码可以从GitHub下载。

我们在视频教程中使用的是ESP32,但是Lua可以在大多数嵌入式系统上运行。你可以跟随视频教程学习你自己的教程ESP32 WROVER如果您遵循本教程末尾的固件安装说明。

在这个19分钟的视频教程中,您将了解使用Lua如何显著加快支持物联网的无头设备的交互开发时间。无头设备是指没有板载图形用户界面的设备。为了使开发过程更快,我们将使用基于web的Lua IDE(所谓的REPL)和在微控制器上运行的Barracuda应用服务器。这将允许我们在进行过程中快速原型化和测试我们的代码。开发完成后,基于web的IDE将被移除,最终在Lua中实现的物联网应用将作为ZIP文件嵌入固件映像中。这是一种快速轻松地构建和部署物联网项目的好方法,您将能够亲眼看到Lua是多么强大和高效。

值得注意的是,在上面的视频教程中,在创建最终版本之前,基于web的开发环境已从固件中移除。这是因为教程中显示的物联网示例不需要嵌入式web服务器。

然而,嵌入式web服务器对于支持物联网的产品非常有用,因为它允许与运行在内部网中的设备直接交互。下面的视频展示了如何使用WebSockets支持的HTML应用程序实时控制伺服系统。控制伺服和管理WebSocket通信的服务器端代码都是用Lua编写的。这只是Lua如何用于构建强大的交互式物联网应用程序的一个例子,您会发现它是一种用于构建各种项目的优秀语言。

上面的视频还展示了一个非常酷的特性,它使web服务器能够自动获得由Let's Encrypt签名的可信X.509 Intranet证书。要了解这是如何工作的,请看我的DZone文章Intranet服务器的证书.

固件安装说明

如上所述,Lua REPL由两个主要组件组成:Barracuda应用服务器和LSP应用管理器。要使用Lua REPL,这两个C代码组件必须与Espressif物联网开发框架和一些启动代码一起编译。这将创建一个可以上传到您的ESP32微控制器的固件映像,允许您开始在ESP32上开发Lua程序。

为Lua REPL安装固件有两种选择,选择哪一种取决于您运行命令行Linux的经验,比如使用Windows的Linux子系统。

如果您有命令行经验,并且希望详细了解C代码编译和固件构建过程,您可以按照Lua ESP32物联网开发工具包命令行教程.

或者,您可以下载基于虚拟机的IDE这让您可以使用基于web的UI来编译必要的C代码,并将生成的固件上传到ESP32。请记住,IDE包含了许多为C程序员设计的示例,所以您应该把重点放在为编译和上传LSP应用程序管理器而设计的示例上。这将允许你尽可能快和容易地使用Lua REPL,不管你的经验水平如何。

这里有一个有趣的项目示例:

以下视频中的猫头鹰,有着眨动的眼睛和伺服控制的头部,由Lua使用梭鱼应用服务器提供动力。该软件运行在ESP32上,其中包括一个名为LSP应用管理器的Lua REPL,它基于Barracuda应用服务器。更多详情请见视频描述。

Baidu
map