0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

源码开放!基于iRTU+AirUI+Air8000A的环境数据实时检测与上传

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2026-03-24 16:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、项目规划

使用 Air8000A 整机开发板 + 屏幕,用 iRTU+luatos-docs-code-100 开发一个 iRTU+RS485湿度传感器 +RS485 TVOC 的项目

1.1AirUI简介

AirUI是基于 LVGL 9.4 版本进行图形层封装的 LuatOS 核心库,把常用组件、事件管理、输入和基础视觉主题封装为更易上手的 Lua 接口,便于在支持 LuatOS 的设备和 PC 上统一开发。

1.1.1 推荐搭配exwin UI 窗口管理扩展库一起使用

资料见资料中心—LuatOS扩展库API_exwin UI 窗口管理扩展库

1.1.2当前最新版本为 V1.1.2 支持组件 16 个,组件分类如下:

显示类组件:标签、图片、进度条、表格、曲线图、二维码

交互类组件:标签、图片、开关、按钮、下拉框、消息框

输入类组件:下拉框、输入框 (支持中文输入)、键盘

布局类组件:容器、选项卡、窗口

1.1.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核心功能

核心功能: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 软件环境

2.1.1 准备好 Air8000A 的 iRTU 软件代码

软件代码地址为:iRTU 源码,这个地址为 irtu_ui 的初始代码。

固件下载参考:资料中心Air8000A 固件。

2.1.2 准备好 Luatools 工具

Luatools 调试工具, 支持最新固件获取、固件打包、trace 打印、单机烧录等功能

此工具适用于 4G 模组, 4G + GNSS 模组和工业引擎系列。

LuaTools 下载调试教程参考:LuaTools 下载调试教程 - 模组资料中心

2.1.3 准备好 iRTU 配置页面和 AirCloud

iRTU 的配置服务器地址为:iRTU 配置页面

AirCloud 的地址为:iot.luatos.com

2.1.4 AI 工具安装和智能体配置

已经引入了 Trae AI 智能开发工具,我们本次使用智能体luatos-docs-code-100进行开发

2.2 硬件环境

本次用的是 485 的温湿度传感器和 TVOC 传感器,Turnkey 开发板里面的套餐是 i2c 的,因为 iRTU 目前只支持串口传输,所以我们使用 485 的温湿度传感器和 TVOC 传感器。

三、使用 AI 开发

3.1 先配置 iRTU 的基本参数:

3.1.1串口配置

串口配置功能如下,Air8000A 的开发板使用的 485 串口号为串口 1,转向脚为 GPIO17,485 的延迟时间设置为 20000us,9600 波特率填 20000。这个是经验值,其余波特率可以参考这个波特率,根据比例自行计算,如 4800 波特率是 20000*9600/4800 = 40000;

wKgZO2nCG5SAdN-YAACxMjL6J6I175.png串口配置功能

3.1.2 网络通道

配置为 AirCloud,其中,AuthKey 值可以去通过 AirCloud 平台对应模块的项目去获取

wKgZPGnCG7eAGqXeAAFBkyD-sio557.png网络通道

测试的设备在 test1 项目下,所以使用的是第一个 Key 值

wKgZPGnCG_KAXvh6AADJnz4imWA891.png网络通道

3.1.3 预置信息

在预置信息里面配置的是发送的 485 数据,本次发送的数据,第一条是发送给 TVOC 传感器的数据,第二条是发送给温湿度传感器的数据,中间间隔 1 秒

wKgZO2nCHCmAf-pWAAC3sUGECwE309.png

3.1.4 任务

任务里面打开 GPIO16,该操作是给 485 控制芯片上电

wKgZPGnCHD2ARgmCAABr3oEmn_c254.png

3.1.5 数据流

数据流我们等待后续用 AI 生成,先暂时不配置

3.2 放入代码和图片,生成 UI

放入 iRTU 的代码,lib 库,还有 image 图片,也可以自行去阿里巴巴图标网站去寻找自己喜欢的。

3.2.1 第一个任务

我现在的 image 里面放了 3 个图片,分别是温度,湿度,还有 tvoc,你现在利用这三张图片,结合 airui 功能,给我用容器先创建一个大的框架,然后做三个小的容器,分别是温度,湿度,还有 tvoc,做完之后放到我的 iRTU 项目里

wKgZPGnCHRWAFoupAAPmE2Lr-WM458.png

3.2.2、AI 的创建结果

wKgZO2nCHT2Ac72hAANlCDuq1lM228.pngwKgZPGnCHVaAe2I8AALDvX1oyRM881.png

AI 第一次没有生成代码,然后我们询问 AI:代码呢?然后 AI 开始生成 airui_main.lua 的代码,这时候我们发现 AI 的屏幕大小是错误的,我们纠正下 AI

3.2.3、AI 开始修正

wKgZO2nCHaSAAhdvAANMEoZbgY8587.png

烧录代码:

这时候发现有报错,但是屏幕上已经显示出来了内容

wKgZPGnCHeqAfAT5AAFVrYpisIw197.pngwKgZPGnCHfGAVeElAAEm8LyAgDs647.png

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

wKgZO2nCHqiAF8abAAKbudDH_EM812.png

3.2.4、开始针对问题询问问题让 AI 修改

wKgZPGnCHsyANf9HAALlhKQCDto290.png

修改完成,展示图片:

wKgZPGnCHt-AYo-gAADusWg7Mys878.png

3.2.5、还是没有显示图片,继续让 AI 微调

这个时候,图片还是没有显示,通过日志看到了无法显示主界面,容器或 airui 对象不存在

wKgZO2nCHzqAKM6DAAGQfDEiH9A267.png

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

wKgZPGnCH0CAFgKIAANnSH01r9k006.png

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

wKgZO2nCH2qAaaS0AAFwSU6ZPwE340.pngwKgZPGnCHt-AYo-gAADusWg7Mys878.png

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

wKgZPGnCH56AJwthAANE4qN-6YY352.png

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

wKgZPGnCH7qAfN8WAAKOE4BVwP4693.png

3.2.7、代码修复完成,没有报错,且图片显示正常

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

wKgZPGnCH-WAF4-AAAFlmaBzRco334.png

AI 修改完成,烧录固件

wKgZPGnCH_aAF0DYAAC_QIDRSjU004.png

3.2.8、发现字体没有改变,继续让 AI 修改

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

wKgZPGnCIQaAFGHLAAFXiYufhrk036.pngwKgZO2nCIRCAcfOyAAM-JxG6oO4733.png

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

wKgZPGnCOkeAN7yHAAMYeVBoEUY831.png

wKgZO2nCOlOART4dAALd-7cMsHM867.png

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

wKgZPGnCOmSABcO5AAMW6LFWS7E845.png

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

wKgZO2nCOpKACM5yAAFZan28dZI691.pngwKgZPGnCOqKAFpiSAAMUM9-FpzQ216.png

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

wKgZO2nCOtaAGBv9AAM_2rKlHvU466.png

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

wKgZPGnCOvKAM1UKAAFgVG8khJ0939.png

3.2.9、UI 调试完成

至此,我们的 UI 已经调试完成,现在开始调试数据流

3.3 数据流的处理

3.3.1 把传感器手册的交互数据发给 AI

TVOC 的通讯协议:

举例:读取设备地址0x01的TVOC值
问询帧(16进制):

地址码 功能码 返回有效字节数 TVOC 值(高字节) TVOC 值(低字节) 校验码低位 校验码高位
0x01 0x03 0x02 0x02 0x92 0x38 0x89

应答帧(16进制):(例如读到TVOC值为658ppb)

地址码 功能码 返回有效字节数 TVOC 值(高字节) TVOC 值(低字节) 校验码低位 校验码高位
0x01 0x03 0x02 0x02 0x92 0x38 0x89

TVOC值计算:
TVOC值:292H(十六进制=658=>TVOC=658ppb)

3.3.2 温湿度传感器的通讯协议以及数据处理方式

连续读取温湿度命令帧(0x04)

从机地址 功能码 寄存器地址高字节 寄存器地址低字节 寄存器数量高字节 寄存器数量低字节 CRC 高字节 CRC 低字节
0x01 0x04 0x00 0x01 0x00 0x02 0x20 0x0B

从机响应数据帧

从机地址 功能码 字节数 温度高字节 温度低字节 湿度高字节 湿度低字节 CRC 高字节 CRC 低字节
0x01 0x04 0x04 0x01 0x31 0x02 0x22 0x2A 0xCE

湿度值=0x222,转换成十进制546,实际湿度值=546/10=54.6%;

温度值=0x131,转换成十进制305,实际温度值=305/10=30.5°C

注:温度是有符号16进制数,温度值=0xFF33,转换成十进制-205.

实际温度=-20.5°C;

把图片和文案喂给 AI,然后开始让 AI 帮忙生成数据流

wKgZPGnCP_2AYpFaAAMxFNF0g8Q902.png

3.3.3 这个时候 AI 自动生成了,但是格式并不对

wKgZPGnCQDWASAtNAAROG-2Y840444.png

3.3.4 让 AI 按照格式继续修改

wKgZO2nCQFqAVVVAAALjEaL1WyY799.png

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

wKgZO2nCQHuAZOdPAAQ6ZKOZYcI534.png

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

wKgZO2nCQJeAWUoZAAEJskvRZvg916.png

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

wKgZPGnCQKuAWaDrAAJTofDOY2Y996.png

3.3.8 这个时候可以正常读取出来,但是 TVOC 的值显示的比较异常

但是通过检查返回数据十六进制 02030219D0F648,16 进制 19D0 是十进制 6608 没问题的,但是经过 AI 查询,这个值明显不太对

wKgZO2nCQN2APY2XAAEzO9Xbhow767.png

3.3.9 经过和 TVOC 的店家沟通,正常的 TVOC 设备是需要预热 24H 才可以

wKgZPGnCQQqAKHuoAAEb6GBjWQ8983.png

3.3.10 这个时候我们的服务器端也可以看到数据有正常上传
所以数据流上传数据目前是没有什么问题了

wKgZPGnCQXmAKvnHAAJHsTRh3vM645.png

3.3.11 开始让 AI 把数据显示到屏幕上面
所以当前输出这么大的 ppb 值是正常情况,我们的数据流处理数据功能是正常的了,现在我们开始让 AI 把数据流处理过后的数据,显示到屏幕上面

wKgZPGnCQWiAHVhSAAM6oBpJ3FI349.png

3.3.12 但是经过烧录发现,并没有更新
而且我感觉在数据流里面调用接口去修改,不如直接用 sys.publish 和 sys.subscribe 去处理更简单了,让 AI 用这种方式去修改一下看看吧

wKgZPGnCQaOAcVKtAAGgVXUAeTc093.pngwKgZPGnCQbCAWAwOAAMkPtdL-ZQ774.png

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

wKgZPGnCQg-ADf4PAAH_U76zKpI464.pngwKgZO2nCQgGAUFeQAANKdBDfNxc754.png

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

wKgZPGnCQiyAOCZIAAGALBTzFZM155.pngwKgZPGnCQj2AQoEXAADosdwO5dI592.pngwKgZPGnCQluAMnp0AAM4CyOftxI006.pngwKgZO2nCQniAXZ29AANKmVhIsaU266.png

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

wKgZPGnCQiyAOCZIAAGALBTzFZM155.png

wKgZO2nCQsqAd1xBAAFJNdY-d5U947.pngwKgZPGnCQtOAOiG6AAKizzm8qLg514.png

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

wKgZPGnCQv-AWvZ_AAJlKk-Od9g453.png

wKgZPGnCQwyAAAYHAAHxO0sIemI742.png

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

wKgZO2nCQyeAACYAAAFzkje32dA718.png

四、总结

基于 Air8000A 开发板、AirUI 框架、iRTU 及 AirCloud 平台,我们通过与 AI 协同,建立起从嵌入式端到云端的全栈开发范式。AI 作为开发伙伴,能将需求精准转化为端云一体的稳定解决方案,提升了环境监测系统的交付效率与可靠性。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 源码
    +关注

    关注

    8

    文章

    689

    浏览量

    31457
  • LuatOS
    +关注

    关注

    0

    文章

    169

    浏览量

    2745
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何利用SPI数据实时反馈调整锡膏印刷参数?

    利用SPI(锡膏检测系统)数据实时反馈调整锡膏印刷参数,可通过构建“检测-分析-调整”闭环系统实现,其核心在于以SPI的三维测量数据为基准,结合工艺优化算法动态修正印刷机参数,具体实施
    的头像 发表于 04-15 09:08 362次阅读

    PC 端 LuatOS 模拟器使用教程:AirUI 免硬件调试

    硬件环境下完成相关操作。该模拟器支持在 PC 端直接运行 AirUI 程序,无需烧录,可快速查看运行效果。下文将给出 LuatOS 模拟器的快速上手指南,介绍基础使用方法与实操步骤。
    的头像 发表于 04-14 12:22 47次阅读
    PC 端 LuatOS 模拟器使用教程:<b class='flag-5'>AirUI</b> 免硬件调试

    Air8000 BLE外围模式全解析:数据收发实战指南!

    Air8000的BLE外围设备模式(peripheral)是实现低功耗蓝牙通信的关键功能,它既能主动向中心设备发送通知数据,也能接收中心设备传回的信息。本文将通过具体示例,详细拆解这一模式的操作流程
    的头像 发表于 11-24 14:26 2104次阅读
    <b class='flag-5'>Air8000</b> BLE外围模式全解析:<b class='flag-5'>数据</b>收发实战指南!

    手把手教你 Air8000 模块 CAN 接口开发与配置实战全攻略

    面对复杂多样的嵌入式通信需求,Air8000 模块的 CAN 接口开发尤为重要。本文以实战为导向,详细拆解 Air8000 模块 CAN 接口的开发流程与配置方法,从环境搭建到代码实现,再到实际测试
    的头像 发表于 10-29 14:04 499次阅读
    手把手教你 <b class='flag-5'>Air8000</b> 模块 CAN 接口开发与配置实战全攻略

    一招破解音频硬件困局:Air8000参考设计让开发零门槛

    、Wi-Fi、BLE、GNSS等多功能“All in One”的高集成设计,对工业级可靠性与功耗的深度优化,以及对开发者极为友好的生态支持,成为物联网和工业自动化领域的优选方案。 Air8000全系支持音频功能,无论VoLTE还是TTS,都支持。 但是Air8000本身并
    的头像 发表于 09-04 15:17 1161次阅读
    一招破解音频硬件困局:<b class='flag-5'>Air8000</b>参考设计让开发零门槛

    BLE 5.4时代下,Air8000蓝牙通知与手机读写操作实战攻略

    随着BLE 5.4的普及,Air8000模块蓝牙通信性能再升级。本篇将从实战角度出发,讲解如何通过Air8000发送设备通知,以及如何利用手机APP对从机设备进行数据读写,助你高效完成蓝牙项目开发
    的头像 发表于 08-13 15:31 1056次阅读
    BLE 5.4时代下,<b class='flag-5'>Air8000</b>蓝牙通知与手机读写操作实战攻略

    揭秘Air8000对讲黑科技:AirTalk+MQTT开发示例深度解析

    Air8000的AirTalk对讲方案如何实现设备间无缝通信?答案藏在MQTT协议的高效架构中。本文通过完整开发示例,层层剖析代码逻辑:从初始化Air8000模块到MQTT主题配置,再到对讲数据
    的头像 发表于 08-06 17:16 956次阅读
    揭秘<b class='flag-5'>Air8000</b>对讲黑科技:AirTalk+MQTT开发示例深度解析

    Air780EGH开源代码来袭!定位功能快速入门指南

    Air780EGH核心板为例,带你快速上手定位功能的基本使用方法,可根据实际需求灵活扩展和应用。   一、Air780EGH定位示例源码开放
    的头像 发表于 07-29 16:13 939次阅读
    <b class='flag-5'>Air</b>780EGH开源代码来袭!定位功能快速入门指南

    揭秘Air780EGH定位功能:源码开放助力极速开发 !

    例,带你快速上手定位功能的基本使用方法,可根据实际需求灵活扩展和应用。   一、Air780EGH定位示例源码开放 Air780EGH示例持
    的头像 发表于 07-29 16:11 832次阅读
    揭秘<b class='flag-5'>Air</b>780EGH定位功能:<b class='flag-5'>源码</b><b class='flag-5'>开放</b>助力极速开发 !

    是否必须使用LuatIO?Air8000 GPIO配置与设计规范深度解析

    …—— 一个Air8000就够了!   Air8000工业引擎通过硬件集成、功耗优化及LuatOS开放生态,为工业物联网、智慧交通、智能家居、资产追踪等等行业应用提供“高可靠+低门槛”的工业级解决方案
    的头像 发表于 07-29 13:54 675次阅读
    是否必须使用LuatIO?<b class='flag-5'>Air8000</b> GPIO配置与设计规范深度解析

    高效开发:解锁Air8000 LuatOS softAP配网功能的核心技术!

    为缩短物联网项目开发周期,掌握高效的配网技术至关重要。本文聚焦Air8000平台,深入讲解如何利用LuatOS系统开发softAP配网功能,通过优化代码架构与协议设计,实现设备快速、稳定的网络接入
    的头像 发表于 07-17 15:49 772次阅读
    高效开发:解锁<b class='flag-5'>Air8000</b> LuatOS softAP配网功能的核心技术!

    Air8000蓝牙扫描实战:从代码解析到场景应用全攻略

    。 蓝牙扫描应用 ——也是Air8000作为多功能工业引擎的核心功能之一,主要依托其集成的蓝牙模块实现设备发现、数据传输及场景化控制。   例如在实际应用中,快速扫描周边处于广播状态的蓝牙设备(如传感器、标签、穿戴设备),实时
    的头像 发表于 07-06 16:50 697次阅读
    <b class='flag-5'>Air8000</b>蓝牙扫描实战:从代码解析到场景应用全攻略

    开源即自由,Air8000—— Modbus功能全面开放源代码!

    秉承开源精神,Air8000全面开放Modbus协议相关代码。大家可以自由查看、修改、分发,甚至参与项目共建。这一开放策略不仅加速技术创新,更让每个开发者成为技术进步的推动者。 支持Modbus
    的头像 发表于 06-27 16:43 870次阅读
    开源即自由,<b class='flag-5'>Air8000</b>—— Modbus功能全面<b class='flag-5'>开放</b>源代码!

    多功能+高扩展能力加持,Air8000开发板最新资料

    ”,尤其适合需要通信、控制、数据采集的场景,如:远程监控、智能终端等。 一、开发板主要配置 Air8000开发板基于Air8000多功能工业引擎设计开发,涵盖其典型功能,便于用户在设计前期对A
    的头像 发表于 06-09 14:18 875次阅读
    多功能+高扩展能力加持,<b class='flag-5'>Air8000</b>开发板最新资料

    技术篇——Air8000开发板,一站式满足多功能高扩展开发需求!

    对于追求高效开发的你来说,Air8000开发板最新资料库的开放绝对不容错过。无论是智能控制、数据采集还是多场景应用开发,其多功能内核与高扩展接口,为各类项目提供“即插即用”式的解决方案。 工程师
    的头像 发表于 06-04 15:59 737次阅读
    技术篇——<b class='flag-5'>Air8000</b>开发板,一站式满足多功能高扩展开发需求!