如何在米尔-STM32MP257开发板上实现环境监测系统
2025-04-17
1310
来源:米尔电子
一、前言
环境监测是当前很多场景需要的项目,刚好我正在论坛参与的一个项目:Thingy:91X 蜂窝物联网原型开发平台的试用。把两个项目结合起来,实现一个简单的环境监测系统。
二、硬件平台
1、米尔-STM32MP257开发板

2、Thingy:91X

三、项目规划
4、接收数据并在UI界面中展示。
四、QT设计
1、QT安装
Index of /qtproject/official_releases/online_installers/



其他的按官方的教程就可以安装了。
2、Kit的配置




给相应的需要显示的label根据接收的数据,定义了相应的标签值:

#include <QtMqtt/QMqttClient>
【注】在官方发布的固件中,是没有QTMqtt的连接文件的,当运行带的QtMqtt的程序会报错:
error while loading shared libraries: libQt5Mqtt.so.5: cannot open shared object file: No such file or directory
需要从SDK中复制到开发板目录中。
同时为了实现检测与MQTT服务器的连接状态,需要引入一个线程,用于检测是否连接到服务器:
void run() override
{
while (true)
{
if (m_client)
{
QString statusText = m_client->state() == QMqttClient::Connected
? "连接服务器:成功"
: "连接服务器:失败";
emit updateStatus(statusText);
}
msleep(1000); // 每秒检测一次
}
}MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow), m_client(new QMqttClient(this)) // 初始化MQTT客户端实例
{
ui->setupUi(this);
// 设置MQTT客户端参数
m_client->setHostname("hostname");
m_client->setPort(1883); // 默认MQTT端口
m_client->setClientId("client_id");
m_client->setUsername("usrename");
m_client->setPassword("pwd");
// 连接信号槽,处理连接成功事件
connect(m_client, &QMqttClient::connected, this, [this]()
{
// 连接成功,修改label的文本
ui->mqtt_client_state->setText("连接服务器:成功");
// 订阅主题
m_client->subscribe(QMqttTopicFilter("devacademy/publish/topic")); });
// 连接信号槽,处理消息接收事件
connect(m_client, &QMqttClient::messageReceived, this, &MainWindow::onMessageReceived);
// 启动MQTT连接
m_client->connectToHost();
// 创建并启动连接状态检测线程
MqttConnectionChecker *checker = new MqttConnectionChecker(m_client, ui->mqtt_client_state, this);
connect(checker, &MqttConnectionChecker::updateStatus, this, [this](const QString &status)
{ ui->mqtt_client_state->setText(status); });
checker->start();
}void MainWindow::onMessageReceived(const QByteArray &message, const QMqttTopicName &topic)
{
Q_UNUSED(topic);
// 解析JSON数据
QJsonDocument doc = QJsonDocument::fromJson(message);
if (!doc.isNull() && doc.isObject())
{
QJsonObject obj = doc.object();
double temp = obj.value("temp").toDouble();
double press = obj.value("press").toDouble()/100;
double humidity = obj.value("humidity").toDouble();
int iaq = obj.value("iaq").toInt();
double co2 = obj.value("co2").toDouble();
double voc = obj.value("voc").toDouble();
//将这些数据更新到UI
ui->label_temp->setText(QString::number(temp, 'f', 2));
ui->label_press->setText(QString::number(press, 'f', 2));
ui->label_humidity->setText(QString::number(humidity, 'f', 2));
ui->label_iaq->setText(QString::number(iaq, 'f', 2));
ui->label_co2->setText(QString::number(co2, 'f', 2));
ui->label_voc->setText(QString::number(voc, 'f', 2));
// 在这里可以将解析后的数据更新到UI或其他处理逻辑
}
else
{
qDebug() << "Invalid JSON message received";
}
}五、实验效果
编译好程序后,上传到开发板,运行后,效果如下:


六、总结
米尔-STM32MP257开发板,通过QT来设计UI界面,通过mqtt来订阅指定的主题,实现环境监测。在物联网方面大有作为!
2026-03-19
新品!瑞萨RZ/T2H驱控一体单芯、多轴实时控制,助力工业以太网
米尔电子发布基于瑞萨高端MPU处理器RZ/T2H的CPU模组-MYC-YT2HX核心板及开发板。该产品在前代产品RZ的基础上进行了全面升级,RZ/T2H以其强大的硬件支持、全面的软件开发工具、丰富的工业以太网协议和安全解决方案,以及多操作系统的灵活配置,为客户提供了一个全方位、高效率的开发环境。MYC-YT2HX核心板的推出,旨在解决工业数字化进程中对高性能产品升级以及对复杂网络控制的需求,如工业
2026-03-12
RK3576 + ROS2 SLAM建图与导航实战
前言文档定位与目标读者本文档面向具备一定ROS基础、希望深入理解并在实际项目中部署ROS2 Humble + SLAM Toolbox + Nav2完整建图与导航系统的机器人工程师。我们将从零开始,基于米尔RK3576开发板逐步构建一个功能完备的自主移动机器人系统,涵盖环境搭建、机器人建模、SLAM建图、自主导航以及生产级系统的优化与排错。为什么选择SLAM Toolbox + Nav2?在ROS
2026-03-12
米尔亮相德国嵌入式展2026 Embedded World
2026年3月10日,全球嵌入式系统领域的年度盛会——Embedded World在德国纽伦堡展览中心盛大启幕。作为领先的嵌入式处理器模组厂商,米尔电子携全系列嵌入式核心板、开发板及创新解决方案重磅亮相,与来自全球40多个国家的1100余家展商、32000余名专业观众共赴这场技术盛宴。Embedded World自创办以来,已成为全球规模最大、影响力最深远的嵌入式系统展览会,聚焦嵌入式硬件系统、软
2026-03-06
新品!高能效,低功耗,TI AM62L经典再进化
众所周知,TI经典工业MPUAM335x曾引领行业风潮,而2023年TI发布64位MPU通用工业处理器平台AM62x,为AM335x用户提供了无缝升级路径,实现更高性能的功能需求。AM62L作为AM62x家族的降本之作,在性能和资源上做了裁剪,成本上做了优化,延续AM62x的经典基因,以更低门槛推进低功耗、高能效的工业处理器普及,助力开发者以高效方案应对多样化的需求。米尔与TI再联手,推出基于TI
2026-03-06
爆火的OpenClaw! 告别云端,米尔RK3576本地部署
1.概述基于最近爆火的OpenClaw项目,本文将在MYD-LR3576开发板上部署OpenClaw ,并接入飞书机器人,实现本地自托管 AI 助手。1.1.硬件资源部署端:米尔基于RK3576核心板开发板(MYD-LR3576)、外接鼠标、键盘和屏幕图:米尔基于RK3576系列核心板开发板调试端:PC电脑(Windows系统、Ubuntu系统皆可)1.2. 软件资源MYD-LR3576开发板使用
2026-02-11
【干货】米尔T153开发板AD7616高速ADC采集系统详解
PART 01项目概述1.1 技术背景米尔MYD-YT153开发板搭载全志T153处理器,提供LocalBus(LBC)并行总线接口,适合连接高速外设。AD7616是ADI公司推出的16位高精度并行ADC,具有16通道差分输入,广泛应用于工业数据采集、仪器仪表等领域。1.2 项目目标验证MYD-YT153 LocalBus与AD7616的硬件兼容性提供完整的软件驱动实现方案评估系统在实际应用中的性
2026-01-29
新法规欧标AC桩一站式技术实现方案
面对欧盟Delegated Regulation (EU) 2025/656条例设定的明确技术路线与2027年强制生效节点,开发符合 EN ISO 15118-20:2022 标准的下一代智能交流充电桩,已成为产品进入欧洲市场的唯一路径。这意味着,传统PWM通信方式即将淘汰,全面转向基于 GreenPHY电力线载波(PLC)的高层通信,并强制集成即插即充(PnC)与车辆到电网(V2G)能力。01硬
2026-01-22
看过来,米尔RK3576 NPU方案你用对了吗?
本文基于米尔MYD-LR3576开发板,详细记录了如何利用500万像素USB摄像头实现640×640分辨率的YOLO5s目标检测,并将结果实时输出至1080P屏幕的全流程。通过系统级的软硬件协同优化,最终将端到端延迟控制在40ms以内,实现了 20FPS的稳定实时检测性能。文章重点剖析了摄像头特性分析、显示通路选择、RGA硬件加速、RKNN NPU集成等关键技术环节,为嵌入式AI视觉系统的开发与调
2026-01-22
全场景工控与网关解决方案:从入门到旗舰的一站式选型
在工业自动化与物联网向深度智能迈进的浪潮中,工业设备对成本控制、运行可靠性及智能算力的要求正持续攀升。无论是追求极致性价比的基础工控终端,还是需要强劲算力支撑的AIoT边缘节点,开发者都在为不同场景寻觅适配的“工业之芯”。对此,我们基于MYC-YR3506、MYC-LT536、MYC-LR3576三款核心板,打造了覆盖低、中、高端全场景的工业控制与网关解决方案,以一站式选型体系,助力工业产品实现“
2026-01-15
当国产芯遇上机器人:RK3576的ROS2奇幻之旅
当RK3576的强劲“大脑”(四核A72+四核A53)与强大的GPU、VPU、NPU加速模块相遇,一场高性价比的机器人开发革命正在悄然发生。我们成功将完整的Ubuntu 22.04与ROS2 Humble生态系统,完美移植到了这颗国产芯片上。一个稳定、全功能的机器人软件开发平台已经就绪,现在就来一起探索它的强大魅力!一、系统启动与基础性能展示1.硬件平台简介开发板:MYD-LR3576存储:eMM