如何在米尔-STM32MP257开发板上实现环境监测系统
2025-04-17
1035
来源:米尔电子
一、前言
环境监测是当前很多场景需要的项目,刚好我正在论坛参与的一个项目: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来订阅指定的主题,实现环境监测。在物联网方面大有作为!
2025-12-11
打造本地化智能的“最强大脑”, 米尔RK3576 AI边缘计算盒
在人工智能与边缘计算深度融合的浪潮中,本地化智能需求正重塑产业格局。米尔电子推出的RK3576边缘计算盒,具备高算力、低功耗与强扩展性,凭借其卓越的硬件架构与多场景适配能力,正成为推动工业视觉、工程机械及智慧城市等领域智能化产业升级的有力工具。米尔MYD-LR3576-B边缘计算盒基于瑞芯微中高端RK3576芯片,采用异构计算架构,集成4核Cortex-A72与4核Cortex-A53处理器,搭配
2025-12-05
从两轮车仪表到工程机械环视,米尔用国产芯打造“越级”显控体验
在工业4.0 与智能化浪潮的推动下,传统工业设备正在经历一场“交互革命”。从电动两轮车的智能仪表,到工程机械的 360° 环视中控,用户对“更高清的显示、更流畅的触控、更丰富的互联”提出了严苛要求。然而,面对复杂的工业现场,开发者往往面临两难:低端市场(如仪表、充电桩):传统MCU 跑不动复杂界面,上 Linux/安卓方案成本又太高。中高端市场(如工程机械、医疗):多路视频输入(如360环视)需要
2025-12-05
【深度实战】米尔MYD-LR3576 AMP非对称多核开发指南:从配置到实战
一、什么是AMP?为什么重要?AMP(Asymmetric Multi-Processing)非对称多处理架构,允许单个芯片的不同核心运行不同的操作系统或裸机程序。相比传统的SMP(对称多处理),AMP具有独特优势。核心特性:异构运算:不同核心运行最适合的操作系统,如Linux处理复杂应用,RT-Thread保障实时任务;资源隔离:各核心拥有独立内存空间,避免资源冲突;灵活通信:通过共享内存、RP
2025-11-27
为机器人开发赋能,米尔RK3576环视方案解析
一、项目背景与测试平台本次360环视系统原型基于米尔电子MYD-LR3576开发板进行构建与评估。该开发板所搭载的瑞芯微RK3576芯片,集成了4核Cortex-A72、4核Cortex-A53、Mali-G52 GPU及高达6TOPS算力的NPU。本文旨在通过实际测试数据,从功能实现、实时性能与AI拓展潜力三大核心维度,为客户提供一份关于该平台在360环视应用中能力的真实参考。二、系统流程与功能
2025-11-13
助力V2G,SECC GreenPHY实战开发
随着电动汽车与电网双向交互(V2G)技术的快速发展,充电桩与车辆间的高效通信成为实现智能能源管理的关键。SECC作为充电桩的通信控制核心,其与电力线载波通信芯片的适配尤为重要。本文将分享基于米尔核心板,调试联芯通MSE102x GreenPHY芯片的实战经验,为V2G通信开发提供参考。MSE102x芯片介绍联芯通MSE102x系列芯片是一款专注于电动汽车充电通信和智能能源管理的GreenPHY电力
2025-11-13
定制未来,共建生态,米尔出席安路研讨会
在数字化浪潮席卷全球的今天,FPGA技术正成为驱动创新的核心引擎。2025年11月12日,米尔出席安路科技2025 AEC FPGA技术沙龙•北京专场,与技术专家及行业伙伴齐聚一堂,探讨前沿技术趋势,解锁场景化定制方案,共建开放共赢的FPGA新生态!米尔活动现场论坛上,米尔电子产品经理Jeson发表题为“基于DR1M90 FPSOC的工业应用方案”的演讲。演讲介绍了米尔作为嵌入式领域的领军企业,在
2025-11-11
RK3576开发板
RK3576开发板是米尔电子推出的开发板,于2024年10月上市。RK3576开发板是基于瑞芯微RK3576搭载了四核A72与四核A53处理器,主频2.2GHz。RK3576集成了6TOPS的NPU,支持多种深度学习框架,能够处理复杂的AI算法,提高监控效率,降低误报率。RK3576的主芯片采用了八核大小核架构,包括四核Cortex-A72和四核Cortex-A53,
2025-11-11
RK3576核心板
RK3576核心板是深圳米尔电子旗下产品,是基于瑞芯微RK3576搭载了四核A72与四核A53处理器,主频高达2.2GHz。RK3576集成了6TOPS的NPU,支持多种深度学习框架,能够处理复杂的AI算法,提高监控效率,降低误报率。RK3576的主芯片采用了八核大小核架构,包括四核Cortex-A72和四核Cortex-A53,主频分别高达2.2GHz和1.8GHz,CPU算力达58K DMIP
2025-11-06
米尔SECC方案助力国标充电桩出海
随着电动汽车与电网融合加速,国标(GB/T 27930)充电桩出海面临欧标(ISO 15118 / DIN 70121)兼容挑战。米尔电子的 SECC (供电设备通信控制器) 方案,实现协议转换、安全通信及参考开发平台,助力充电桩厂商快速进军海外市场。
2025-11-06
MYD-LD25X Cortex-M33实时核开发实战解析
在嵌入式系统设计中,如何平衡高性能计算与实时控制一直是工程师面临的挑战。STM32MP257的异构架构为这一难题提供了优雅的解决方案,而其中的Cortex-M33实时核更是实现硬实时性能的关键所在。一、异构架构:分工明确,效能卓越STM32MP257采用创新的双核子系统设计:Cortex-A35应用核(双核1.5GHz):运行Linux系统,负责复杂UI、网络通信、文件管理等非实时任务。Corte