基于iRTU+AirUI+Air8000A+485传感器实现环境数据检测与上传
一、项目规划
使用 Air8000A 整机开发板 + 屏幕,用 iRTU+luatos-docs-code-100 开发一个 iRTU+RS485 温湿度传感器 +RS485 TVOC 的项目
基于 Air8000A 开发板构建工业环境参数监测系统,通过 RS485 接口分别采集温湿度传感器与 TVOC 总挥发性有机物传感器的数据,依托 AirUI 界面在本地 TFT 屏幕上完成环境参数的实时显示,并通过 iRTU 通信将数据上传至 AirCloud 云端平台。
1. AirUI简介
AirUI 是 LuatOS 的核心图形库,基于 LVGL 9.4 版本封装,提供 Lua 语言接口,集成常用组件、事件管理、输入处理及基础视觉主题,可在支持 LuatOS 的设备与 PC 端进行统一的图形界面开发。
1. 推荐搭配exwin UI 窗口管理扩展库 一起使用
2. 当前最新版本为 V1.1.2 支持组件 16 个,组件分类如下:
- 显示类组件:标签、图片、进度条、表格、曲线图、二维码
- 交互类组件:标签、图片、开关、按钮、下拉框、消息框
- 输入类组件:下拉框、输入框 (支持中文输入)、键盘
- 布局类组件:容器、选项卡、窗口
3. 主要特性
-
组件丰富:内置丰富标签类型、图片显示、按钮、开关、进度条、下拉框、输入框、键盘、表格、容器、选项卡、窗口等核心组件;
-
更低成本:可选 hzfont 矢量字体支持 12-255 号字体,节省字库成本;
-
开发高效:用更少代码快速搭建可量产的触控界面,参考示例代码能快速掌握原理;
-
验证便捷:提供 LuatOS windows桌面系统 快速验证效果,无需烧录就能看到代码运行效果;
-
支持 LuatOS windows桌面系统 (SDL2) 和真机两种模式:
-
当前LuatOS windows桌面系统支持Lottie动画和键盘输入;
-
PC端仅支持window 10/11系统;
-
真机支持Air8101和Air8000系列、Air780EHM/EGH/EHV等;
-
支持使用设计器设计页面和 XML 导入,能够快速搭建页面原型与交互逻辑。
-
当前AirUI 设计器开发中,目前可以使用 LVGL 9.4 官方设计器进行页面设计
-
支持中文输入
2. Air8000A规格介绍
Air8000A 是 Air8000 系列适配国内市场的 4G Cat1 模组,搭载 LuatOS 开发环境,具备低功耗特性,同时集成丰富的硬件接口与功能,可满足国内物联网场景的各类应用需求。
1.基础参数
- Air8000A:五合一 SoC 引擎
- 核心功能:4G+Wi-Fi+ 蓝牙 +GNSS 定位 + 内置 G-sensor
- 存储空间:Air8000 全系列产品的 Flash 和 RAM 均为 8MB**
- 多网融合:支持 4G、Wi-Fi、以太网无缝切换
- 定位能力:支持多系统联合定位,定位精度 <2m;内置 G-sensor,有效抑制静态漂移
- 近场通讯:内置低功耗 WiFi 6(支持 AP 和 STA)和 BLE 5.4,确保设备在各种网络环境下都能稳定连接
- 外设控制:4 个串口;2 路 I2C;1 路通用 SPI;4 路 PWM;4 路 ADC;1 路 CAN;1 路 QSPI
- UI 能力:支持 SPI LCD;支持方便开发的显示界面,包括触摸和显示
- 视觉能力:支持 30W 像素摄像头
- 存储扩展:支持外挂 Nor Flash/Nand Flash,RC522 射频模块、OTP 存储操作
2. 应用场景
1. 智能仪表 / 数显终端
- 搭配小尺寸 SPI/QSPI 显示屏,通过 AirUI 显示电压、电流、温度、流量等数据。
- 使用表格、曲线图组件实时刷新数据,支持本地查看与历史曲线展示。
- 通过 4G Cat.1 网络将数据上传云平台,实现远程抄表与监控。
2. 共享设备 / 自助终端
- 显示设备状态、使用流程、二维码付款 / 绑定界面。
- 触控按键实现启动、暂停、查询、设置等操作。
- 利用 Cat.1 保持联网,实现后台远程管理与状态上报。
3. 工业控制 HMI 面板
- 作为小型人机交互界面,显示设备运行状态、报警信息、参数设置。
- 使用按钮、开关、下拉框、输入框实现本地参数配置,支持中文输入。
- 单模组完成 4G 通信 + 显示 + 控制,无需额外 MCU,降低整机成本。
我们提供一站式物联网解决方案,集成高速通信+外设驱动+UI交互+视觉处理能力,助力客户快速量产落地。 同时实现极致低功耗,相比传统“串口屏+DTU”或安卓方案,我们方案功耗直降50%,成本不足其三分之一。
二、准备软硬件环境
1. 软件环境
1. 准备好 Air8000A 的 iRTU 软件代码
软件代码地址为:iRTU 源码,这个地址为 irtu_ui 的初始代码。
固件下载参考:Air8000A 固件 。
2. 准备好 Luatools 工具
- Luatools 调试工具, 支持最新固件获取、固件打包、trace 打印、单机烧录等功能
- 此工具适用于 4G 模组, 4G + GNSS 模组和工业引擎系列。
- LuaTools 下载调试教程参考:LuaTools 下载调试教程 - 模组资料中心
3. 准备好 iRTU 配置页面和 AirCloud
iRTU 的配置服务器地址为:iRTU 配置页面
4. AI 工具安装和智能体配置
本方案引入 Trae AI 智能开发工具,本次使用智能体luatos-docs-code-100进行开发。
2. 硬件环境
1. Air8000A 整机开发板
硬件环境:Air8000A 整机开发板硬件环境介绍
2. 温湿度传感器和 TVOC 传感器
本次用的是 485 的温湿度传感器和 TVOC 传感器,Turnkey 开发板里面的套餐是 i2c 的,因为 iRTU 目前只支持串口传输,所以我们使用 485 的温湿度传感器和 TVOC 传感器
三、使用 AI 开发
1. 先配置 iRTU 的基本参数:
1. 串口配置
串口配置功能如下,Air8000A 的开发板使用的 485 串口号为串口 1,转向脚为 GPIO17,485 的延迟时间设置为 20000us,9600 波特率填 20000。这个是经验值,其余波特率可以参考这个波特率,根据比例自行计算,如 4800 波特率是 20000*9600/4800 = 40000;
2. 网络通道
配置为 AirCloud,其中,AuthKey 值可以去通过 AirCloud 平台对应模块的项目去获取
测试的设备在 test1 项目下,所以使用的是第一个 Key 值
3. 预置信息
在预置信息里面配置的是发送的 485 数据,本次发送的数据,第一条是发送给 TVOC 传感器的数据,第二条是发送给温湿度传感器的数据,中间间隔 1 秒
4. 任务
任务里面打开 GPIO16,该操作是给 485 控制芯片上电
2. 放入代码和图片,生成 UI
放入 iRTU 的代码,lib 库,还有 image 图片,iRTU 代码获取:代码;lib 库获取:iRTU-lib;image 图片:图片,图片也可以自行去阿里巴巴图标网站去寻找自己喜欢的,如何导入本地文件夹,可以参考:https://docs.trae.cn/ide/get-started-with-trae#5dd7a0fb
1. 第一个任务
- 我现在的 image 里面放了 3 个图片,分别是温度,湿度,还有 tvoc,你现在利用这三张图片,结合 airui 功能,给我用容器先创建一个大的框架,然后做三个小的容器,分别是温度,湿度,还有 tvoc,做完之后放到我的 iRTU 项目里

2. AI 的创建结果


AI 第一次没有生成代码,然后我们询问 AI:代码呢?然后 AI 开始生成 airui_main.lua 的代码,这时候我们发现 AI 的屏幕大小是错误的,我们纠正下 AI
3. AI 开始修正
-
烧录代码:
这时候发现有报错,但是屏幕上已经显示出来了内容

-
但是我们想把这个做成横屏的,而且图片也没显示出来,这个时候我们发现图片的路径其实是错误的,这个路径问题需要提前给 AI 说一下,不然 AI 没办法判断这个图片路径是脚本区路径

4.开始针对问题询问问题让 AI 修改

修改完成,展示图片:
5. 还是没有显示图片,继续让 AI 微调
-
这个时候,图片还是没有显示,通过日志看到了无法显示主界面,容器或 airui 对象不存在

-
看了下代码,经过分析能显示出来屏幕的话,那么 airui.show 应该就是不存在的,然后让 AI 去分析一下去修改一下,这一步在使用上其实修改不修改都没什么问题。不影响使用,但是为了代码规范,还是让 AI 去修改一下吧

6.显示出来图片了,但是大小显示不完全,而且代码有报错,继续让 AI 去修改调试


-
让 AI 去修改报错,然后去修改图片

-
修复完成点击保留,然后继续烧录

7、代码修复完成,没有报错,且图片显示正常
-
经过 AI 修复,现在代码已经可以正常运行,没有报错,图片和屏幕也显示正常,但是我想标题的环境检测系统字体稍微大一些,且居中显示,下面的系统正常运行中也大一些

-
AI 修改完成,烧录固件

8、发现字体没有改变,继续让 AI 修改
-
这个时候,下面的字体已经变大了,但是环境检测系统没有改变,也没有居中,让 AI 继续去修改


-
这个时候已经修改成了正确的常量,但是发现其他的也没有修改,继续让 AI 把所有的都修改了


-
修改完成,点击保留,然后烧录

-
烧录之后正常显示,所有内容都居中显示了,但是环境检测的字体没有改变,继续让 AI 修复


-
AI 修改完成,发现字体的 Key 值是用的 size,实际上应该是 font_size,AI 开始修改这个问题,然后把所有的字体都做了修改,点击保留,然后开始烧录

-
烧录完成,图片看起来没有什么太大问题

9、UI 调试完成
至此,我们的 UI 已经调试完成,现在开始调试数据流
3.3 数据流的处理
-
把传感器手册的交互数据发给AI
TVOC 的通讯协议:
-
温湿度传感器的通讯协议以及数据处理方式

把图片和文案喂给 AI,然后开始让 AI 帮忙生成数据流
-
这个时候 AI 自动生成了,但是格式并不对

-
让 AI 按照格式继续修改

-
这个时候,输出了一个新的符合 iRTU 数据流的代码

-
然后我们把 AI 生成的数据流复制到 iRTU 的发送数据流里面

-
然后我们就开始烧录代码

-
这个时候可以正常读取出来,但是 TVOC 的值显示的比较异常
但是通过检查返回数据十六进制 02030219D0F648,16 进制 19D0 是十进制 6608 没问题的,但是经过 AI 查询,这个值明显不太对
-
经过和 TVOC 的店家沟通,正常的 TVOC 设备是需要预热 24H 才可以

-
这个时候我们的服务器端也可以看到数据有正常上传
所以数据流上传数据目前是没有什么问题了
-
开始让 AI 把数据显示到屏幕上面
所以当前输出这么大的 ppb 值是正常情况,我们的数据流处理数据功能是正常的了,现在我们开始让 AI 把数据流处理过后的数据,显示到屏幕上面
-
但是经过烧录发现,并没有更新
而且我感觉在数据流里面调用接口去修改,不如直接用 sys.publish 和 sys.subscribe 去处理更简单了,让 AI 用这种方式去修改一下看看吧

-
修改成功,保留 airui_main 里面的代码
复制新修改的数据流到网页端,烧录模块,这个时候,我们发现日志有报错,把报错的内容发给 AI,让他去解决

-
修改完成,保留代码,然后烧录
这个时候我们的数据已经可以正常的同步上去了,但是 TVOC 值显示异常,这个值确实也是异常,看下代码处理部分,可以对这个值做下修改



-
修改完成之后保留烧录代码,但是遇到了新的问题
显示了温湿度的情况下,TVOC 值会变成 0,显示了 TVOC 值的情况下,温湿度又会变成 0,让 AI 修改一下这个 BUG


-
点击保留,然后烧录固件,这个时候服务器数据正常,温湿度读取正常,屏幕显示正常
那么本次的 AI+iRTU+AirUI+485 设备开发就相当成功了。

-
经过长时间放置,TVOC 值已经正常显示了

四、总结
本项目基于 Air8000A 开发板、AirUI 框架、iRTU 与 AirCloud 平台,采用 AI 辅助开发,形成从嵌入式终端到云端的完整开发模式,将需求转化为端云一体的实现方案。这个iRTU+AirUI+Air8000A+AI的项目,支持通信、外设驱动、UI 交互与视觉处理功能,对复杂的物联网设备比较友好。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)