快速上手!Air780EPM:LuatOS物联网开发入门指南~

news/2025/4/1 21:01:41/文章来源:https://www.cnblogs.com/luatos/p/18791727

在物联网开发领域,选择合适的硬件平台与操作系统是项目成功的关键。本文将带领你从零开始,通过详细的步骤与示例代码,掌握Air780EPM与LuatOS的入门开发流程,并深入探讨其核心功能与扩展潜力。

一、必须先要告诉你的一些废话

这里,先要告诉你一些前提条件,虽然听着像是废话,但是如果你不知道的话,可能后面会比较懵逼,所以还是希望你能够认真看一看这一节。

这个项目的产品定义是:模组每隔3秒,就往串口输出一次 “ hello world” 字符串。

要想达到这个目的,这里有必要先介绍一下 LuatOS 在4G模组的运行原理:

4G模组,除了运行4G协议栈之外,还植入了5.3版本的Lua虚拟机,以及内置的一个脚本代码区。

4G模组上电之后, 虚拟机会去代码区读取脚本代码的main入口, 并执行这个 main入口函数。

你只需要用 Lua 脚本改写 main 入口函数,并把这个脚本烧录到模组的正确位置,就可以正确运行脚本的代码。

幸运的是, 你只需要用Luatools工具烧录脚本, 就一定能保证脚本烧录到正确的位置。

在完成这个初始项目之前,你还需要准备好一套合适的硬件。

合适的硬件是什么呢?

是能运行LuatOS脚本的4G模组。

怎么知道哪些4G模组能运行LuatOS呢?

要想知道答案,你可以看我们的选型手册第二页:

选型手册:https://docs.openluat.com/product/

模块对应的总代码仓库地址:

https://gitee.com/openLuat

打开这个代码仓库的网址,你会看到公开的一系列代码仓库。

不仅仅公开了每个模组的示例代码,还把缺陷跟踪也公开了,真是绝对自信!

你要想运行哪个模组的软件, 就找到对应的模组开发板, 然后进入对应的代码仓库,就可以开发了!

今天,我们用 LuatOS-Air780EPM 这个仓库中的demo作为例子来进行学习。

Air780EPM_LuatOS开发代码仓库:https://gitee.com/openLuat/LuatOS-Air780EPM
同时,还有强大的社区资料支持,这个网站的LuatOS-SOC接口文档中,可以看到使用的API函数的介绍说明:

Luatos_API介绍说明:https://docs.openluat.com/air780epm/luatos/api/
在开始之前,我已经事先准备好了 Air780EPM 开发板,你准备好了吗?

Air780EPM模块硬件资料:https://docs.openluat.com/air780epm/product/#_1

二、下载模组的示例代码

下载示例代码到一个合适的项目目录。从gitee下载代码的教程如下:

Luat/LuatOS-Air780EPM代码仓库:https://gitee.com/openLuat/LuatOS-Air780EPM

1、最简单快速的方式:

直接进入仓库,点击下载仓库文件

2、使用git工具下载

git工具下载地址:Git - Downloading Package

以下是以Git Air780E项目进行举例说明,Git Air780EPM流程一样,只需要替换成Air780EPM Git路径即可。

(1)进入下载地址后,下载对应的工具

(2)双击安装工具

(3)双击后,直接下一步安装即可 中途都是一些配置选项,一般使用默认选项即可。

git下载好之后。。。

(1)新建一个文件夹,右键打开操作面板

(2)设置用户签名:

用户名和邮箱是用来标识是谁提交的代码,输入以下命令

(3)初始化本地库,输入以下命令

输入这个命令后,可以在当前目录下看到一个.git文件。只有.git文件是用git init命令生成的。其他的没关系。有了.git文件后,当前文件夹就是一个git仓库了,可以与远程的仓库进行连接。

(4)从远程仓库下载一个公钥,为了让远程仓库验证自己的身份。输入以下命令


生成的公钥可以在C:/User/用户/.ssh下看到

(5)将公钥添加到gitee仓库

gitee:Gitee - 基于 Git 的代码托管和研发协作平台https://gitee.com/

在gitee找到账号设置,然后找到SSH公钥,再添加公钥。

(6)克隆仓库到本地,输入以下命令



此时在资源管理器中可以看到git下来的仓库文件

三、修改代码

用编辑器打开你下载下来的 LuatOS-Air780EPM/demo/helloworld/main.lua 文件。demo链接地址

​ 我是习惯用 vscode,后面的例子都用 vscode 做演示了。

​ 如果你是用其他的编辑器, 也差不多类似。

其中sys.timerLoopStart(func, timeout)的作用是每隔timeout的时间循环执行回调函数func中的内容。

你把这段代码稍作修改后,改为这样:

然后保存,代码修改工作就大功告成了!

我们实现了每隔3000ms执行一次printf("hello world")

是不是超级简单?

四、烧录代码到硬件

烧录代码, 需要进行如下几步:

1. 下载和安装调试工具 LuatTools

​ 要想烧录代码, 先要下载强大的调试工具: Luatools。

​ 如果你已经安装使用过 Luatools, 可以直接跳到下个小节: 烧录代码。

​ Luatools 的最新版本的工具介绍和下载地址为:

https://docs.openluat.com/Luatools/

Luatools 工具主要有如下几个功能:

(1)自动从服务器获取最新的模组固件;

(2)烧录固件和脚本;

(3)查看和保存模组的串口输出日志;

(4)简单的串口调试;

Luatools 下载之后, 无需安装, 解压到你的硬盘,点击 Luatools_v3.exe 运行,出现如下界面,就代表 Luatools

2. 烧录代码

​ 首先要说明一点: 脚本代码, 要和固件的bin文件一起烧录。

(1)找到烧录的固件文件

Air780EPM 的固件可以去DOCS网站下载。底层core下载地址:Air780EPM LuatOS固件版本https://docs.openluat.com/air780epm/luatos/firmware/

(2)正确连接电脑和4G模组电路板

使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线;

(3)识别4G模组的BOOT引脚

在下载之前,要用模组的BOOT引脚触发下载, 也就是说,要把4G模组的BOOT引脚拉到 1.8v,或者直接把BOOT引脚和VDD_EXT引脚相连。我们要在按下BOOT按键时让模块开机,就可以进入下载模式了。

具体到 Air780EMP开发板,

1、当我们模块没开机时,按着BOOT键然后长按PWR开机。

2、当我们模块开机时,按着BOOT键然后点按重启键即可。

(4)识别电脑的正确端口

​ 判断是否进入BOOT模式:模块上电,此时在电脑的设备管理器中,查看串口设备, 会出现一个端口表示进入了boot下载模式,如下图所示:

一旦进入了boot下载模式,表示硬件连接上已经处于就绪状态,此时就可以使用Luatools工具进行烧录了!

(5)新建项目

​ 首先,确保你的 Luatools 的版本,是大于 3.0.15 版本的。

​ 在 Luatools 的左上角上有版本显示的,如图所示:

Luatools 版本没问题的话, 就点击Luatools 右上角的“项目管理测试”按钮,如下图所示:

这时会弹出项目管理和烧录管理的对话框,如下图:

1、新建一个项目!

(6) 开始烧录

选择Air780EPM板子对应的底层core和刚改的main.lua脚本文件。下载到板子中。


点击下载后,我们需要进入boot模式才能正常下载,在(3)(4)小节已经介绍了如何进入boot模式。

3. 烧录问题排查

如果你在烧录过程中遇到了问题, 请点击如下链接,进行烧录的问题排查。

详细的烧录操作步骤参考此处:https://docs.openluat.com/Luatools/#_23

五、验证功能

烧录完成后,会自动开机,此时电脑的设备管理器中会虚拟出三个端口表示正常开机


Luatools会自动抓取应用日志和系统日志,并且在主界面解析显示应用日志,如下图所示:

从打印的日志可以看到,这个4G开发板,在不断的打印 hello world。

你太棒了! 你成功了!

六、总结

这节我们学会了

1、如何下载LuatOS的core,

2、如何使用烧录工具Luatools,

3、如何编辑lua脚本实现打印hello world
大家快去试试吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906764.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qwen2.5-Omni技术报告

摘要 在本报告中,我们介绍了Qwen2.5-Omni,这是一种端到端的多模态模型,旨在感知包括文本、图像、音频和视频在内的多种模态,并同时以流式方式生成文本和自然语音响应。为了实现多模态信息输入的流式处理,音频和视觉编码器采用了分块处理方法。该策略有效地分离了对多模态数…

若依(ruoyi)前后端分离项目集成积木报表

若依(ruoyi)前后端分离项目集成积木报表 致敬: 1:致敬若依开源项目(本文使用的是前后端分离版本)若依官网:https://www.ruoyi.vip/2:致敬积木开源项目积木报表官网:https://www.jimureport.com/3:致敬CSDN大神的文章(我是根据他的原文一步步配置的,如有版权问题,可随…

k8s部署HA高可用集群

1.初始化系统 2.内存升级 3.安装k8s组件 4.编译kubeadm,修改永久证书授权 5.将kubeadm拷贝到两台master上,然后/usr/bin/kubeadm备份,将新编译的kubeadm 6.部署keepalived 7.初始化k8s 【master1】 7.1 编写kubeadm-config.yaml cat kubeadm-config.yaml apiVersion: kubead…

engine2x_低代码系统快速配置表格的xx列固定并且不随着x轴的滚动而滚动

代码:var is_long_width = false;//定义标识//数据列表的回调 function get_portal_data_list_done_back() {if (is_long_width === true) {find_element_by_class("table-set").css("position", "sticky").css("right", 0).css(&quo…

上下界网络流

上下界网络流 上下界流就是在普通的网络中加了下界。却还是要对于非源汇点,满足入流=出流,于是可能存在不合法的情况。 基础款 无源汇可行流 就是:对于每个点,入流 = 出流对于每条边,流量 $\in $ 合法区间我们先满足其下界,但这样可能出现入流 \(\ne\) 出流的情况,于是在…

NPIO-导出数据到xls中设置时间格式的值可筛选

//定义时间格式: var xSSFCellStyle1 = workbook.CreateCellStyle();var format = workbook.CreateDataFormat();xSSFCellStyle1.DataFormat = format.GetFormat("yyyy-MM-dd HH:mm:ss"); // 循环中 判断是否是时间类型 yes if (val.is_datetime()){ dataRow.Cre…

虚幻5入门,MashRunner项目1

继续之前油管上Cobra Code的The Ultimate Unreal Engine 2D Game Development Course课程的学习,这是第二个项目MashRunner 一.创建项目 启动虚幻引擎,创建一个空白项目,命名为MashRunner。之后打开VS,在MashRunner.Build.cs中添加一下插件包 using UnrealBuildTool;public…

C# 通过EtherCAT 控制伺服电机(无需板卡或PLC)

前言 无需使用板卡或PLC 用C#配合普通电脑 直接控制伺服电机 环境:vs2022 .Net9 WinPcap_4_1_3.exe Win11 一、引用库二、控制伺服 1.添加EtherCAT主站及从站 EtherCATMaster _etherCATMaster; EtherCATSlave_CiA402 _axis; private void Form1_Load(object sender, EventArgs …

【入门】Python类方法有几种?常用的有哪种?怎么用呢?

实例方法 (Instance Method) 最常用,必须通过类的实例调用,第一个参数是 self(指向实例本身)。 class MyClass:def instance_method(self, arg1, arg2):print(f"实例方法被调用,self={self}, args={arg1}, {arg2}")# 使用 obj = MyClass() obj.instance_method(…

Pydantic Schema生成指南:自定义JSON Schema

title: Pydantic Schema生成指南:自定义JSON Schema date: 2025/3/27 updated: 2025/3/27 author: cmdragon excerpt: Pydantic的Schema生成机制支持从基础定义到企业级应用的完整解决方案。默认流程包含字段定义、元数据收集、类型映射和Schema组装四个步骤。通过Field的js…

Mybatis三大执行器

目录 1、执行器介绍执行器的选择入口设置执行器两种方式全局配置(不建议)局部设置(建议)2、三个执行器区别SimpleExecutorReuseExecutorBatchExecutor总结3、效率测试 4、平时开发使用 一、执行器介绍Mybatis中执行器关系如上图所示,真正生效并在最后执行中有着不同效果的…

顶灯控制器OHC

汽车顶灯控制器OHC(Over Head Console)顶部控制终端系统,主要实现对车内饰灯以及天窗的控制功能。OHC产品采用平台化设计,并已通过多家整车厂的设计评审和试验验证,为特斯拉、福特、林肯、捷豹、路虎等众多车型配套。 汽车顶灯控制器OHC(Over Head Console)顶部控制终…