如何在米尔-STM32MP257开发板上实现环境监测系统

2025-04-17

404

来源:米尔电子
一、前言
环境监测是当前很多场景需要的项目,刚好我正在论坛参与的一个项目: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-06-13
有ARM,NPU,FPGA三种核心的开发板 — 米尔安路飞龙派开发板
最近我发现一个有趣的开发板。这个开发板集合了ARM核心,NPU核心甚至还有FPGA核心。它就是米尔新出的YM90X开发板。它基于安路科技所打造的芯片上海安路信息科技于2021年在上交所科创板上市,是A股首家专注于FPGA业务的上市公司。YM90X开发板用的就是安路的SALDRAGON1(飞龙1,以下简称 DR1)系列FPSoC。FPSoC就是将ARM、NPU和JPU处理器和安路FPGA可编程逻辑核
2025-06-13
618盛夏狂欢,米尔电子携手恩智浦开启年度技术盛宴!
即日起-2025.06.30,米尔恩智浦多系列开发板限时折扣!米尔基于 i.MX 91、i.MX 93、i.MX 8M Plus、i.MX 6UL/i.MX 6ULL、i.MX 8M Mini 等明星产品全部8折优惠。一直以来,米尔与恩智浦保持长期稳定的合作关系,在嵌入式处理器开发领域具备10余年的行业经验,米尔累计推出7个平台共计二十余款核心板,涵盖工业物联网、新能源、医疗等领域。米尔基于i.M
2025-06-13
有奖丨米尔 瑞芯微RK3562开发板免费试用新增名额!
米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用名额增加啦~~米尔追加2套价值599元的MYD-YR3562开发板发起试用活动您不仅可以免费体验还可以获得京东购物卡赶快点击链接报名吧~↓↓↓评测活动报名链接:与非网论坛:https://www.eefocus.com/forum/thread-232615-1-1.html试用活动信息报名时间:2025
2025-06-06
性价比不错的工业级开发板 — 米尔RK3562
今天给大家介绍一款开发板是来自米尔的RK3562开发板RK3562是瑞芯微新推出的开发板芯片带有四核Cortex-A53CPU,频率可达2.0GHz。ARM Mali G52-2EE单核3D GPU支持4K@30fps H.265和VP9的视频解码,1080P@60fps H.264的视频编解码。带有支持1300万像素的ISP带有1TOPS NPU,支持int8,int16,FP16,bf16和t
2025-06-06
有奖丨米尔 NXP i.MX91开发板免费试用来啦
米尔与NXP合作发布的新品基于NXPi.MX91 应用处理器的MYD-LMX91开发板免费试用名额来啦~~米尔提供了3套价值588元的MYD-LMX91开发板发起试用活动您不仅可以免费体验还可以获得京东购物卡赶快点击链接报名吧~↓↓↓评测活动报名链接:电子发烧友论坛:https://bbs.elecfans.com/try_iMX91.html试用活动信息报名时间:2025年6月5日-2025年6
2025-05-29
米尔电子祝您端午吉祥安康
2025-05-29
新品!米尔NXP i.MX 91核心板,赋能新一代入门级Linux应用
米尔电子基于与NXP长期合作的嵌入式处理器开发经验,在i.MX 6和i.MX 8系列核心板领域已形成完整产品矩阵,米尔累计推出5个平台共计二十余款NXP核心板,涵盖工业物联网、新能源、医疗等领域。此次推出的米尔基于NXP i.MX 91核心板及开发板(MYC-LMX91),延续了米尔在嵌入式模组领域的技术积累,赋能新一代入门级嵌入式Linux应用。提供1GB LPDDR4 8GB eMMC 的
2025-05-23
米尔瑞芯微RK3576核心板适配多种系统,解锁多样化应用
米尔电子发布的基于瑞芯微 RK3576 核心板和开发板,具备高性能数据处理能力、领先的AI智能分析功能、多样化的显示与操作体验以及强大的扩展性与兼容性,适用于多种应用场景。目前米尔电子为 RK3576 核心板提供了 Linux、Debian、Android 多种系统镜像,为工程师提供了多样化的选择,助力各行业产品开发落地。一、系统介绍系统概述myir-image-lr3576-buildroot基
2025-05-15
3核A7+单核M0多核异构,米尔全新低功耗RK3506核心板发布
近日,米尔电子发布MYC-YR3506核心板和开发板,基于国产新一代入门级工业处理器瑞芯微RK3506,这款芯片采用三核Cortex-A7+单核Cortex-M0多核异构设计,不仅拥有丰富的工业接口、低功耗设计,还具备低延时和高实时性的特点。核心板提供RK3506B/RK3506J、商业级/工业级、512MB/256MB LPDDR3L、8GB eMMC/256MB NAND等多个型号供选择。下
2025-05-08
米尔基于MYD-YG2LX系统启动时间优化应用笔记
1.概述MYD-YG2LX采用瑞萨RZ/G2L作为核心处理器,该处理器搭载双核Cortex-A55@1.2GHz+Cortex-M33@200MHz处理器,其内部集成高性能3D加速引擎Mail-G31 GPU(500MHz)和视频处理单元(支持H.264硬件编解码),16位的DDR4-1600 / DDR3L-1333内存控制器、千兆以太网控制器、USB、CAN、SD卡、MIPI-CSI等外设接口