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

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

3天内不再提示

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

米尔电子 2025-04-17 08:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将介绍基于米尔电子MYD-LD25X开发板(米尔基于STM35MP257开发板)的环境监测系统方案测试。摘自优秀创作者-lugl4313820


一、前言

环境监测是当前很多场景需要的项目,刚好我正在论坛参与的一个项目:Thingy:91X 蜂窝物联网原型开发平台的试用。把两个项目结合起来,实现一个简单的环境监测系统。

二、硬件平台

1、米尔-STM32MP257开发板

c0f6da46-1b1f-11f0-9434-92fbcf53809c.png

2、Thingy:91X

c11cd53e-1b1f-11f0-9434-92fbcf53809c.png

三、项目规划

1、米尔-STM32MP257开发板,板载了wifi模块,通过wifi连接到互联网。2、启用MQTT,连接到私有的服务器,并订阅指定的主题。3、使用QT设计UI界面。

4、接收数据并在UI界面中展示。

四、QT设计

1、QT安装

1.1. 下载在线安装包,现在好象只有一个在线安装包了。网址:

Index of /qtproject/official_releases/online_installers/

c13ee2a0-1b1f-11f0-9434-92fbcf53809c.png

1.2. 下载好后,上传给虚拟机,执行安装。安装有几个地方要注意。

c1548c9a-1b1f-11f0-9434-92fbcf53809c.png

c16570a0-1b1f-11f0-9434-92fbcf53809c.png

其他的按官方的教程就可以安装了。

2、Kit的配置

在官方给出的示例中,与这个版本的不一样,首先设置GCC只需要选择gcc就行了,然后g++自动在下面选择:

c18080d4-1b1f-11f0-9434-92fbcf53809c.png

最后是QT version的选择要按下图选择。

c1ab7f32-1b1f-11f0-9434-92fbcf53809c.png

这样就可以进行交叉编译了,然后如下:

c1cd4e64-1b1f-11f0-9434-92fbcf53809c.jpg


3、创建桌面程序

在文章介绍的基础上,我创建了一个基于QT的桌面程序,其UI界面如下:

c1f5126e-1b1f-11f0-9434-92fbcf53809c.png


4、定义标签

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

c20e5418-1b1f-11f0-9434-92fbcf53809c.png

5、引入QT的QtMqtt/QMqttClient 库

#include

【注】在官方发布的固件中,是没有QTMqtt的连接文件的,当运行带的QtMqtt的程序会报错:

errorwhileloadingsharedlibraries:libQt5Mqtt.so.5:cannotopensharedobjectfile:Nosuchfileordirectory

需要从SDK中复制到开发板目录中。

6、检测连接状态

同时为了实现检测与MQTT服务器的连接状态,需要引入一个线程,用于检测是否连接到服务器:

void run() override{ while (true) { if (m_client) { QString statusText = m_client->state() == QMqttClient::Connected ? "连接服务器:成功" : "连接服务器:失败"; emit updateStatus(statusText); } msleep(1000); // 每秒检测一次 }}

7、在main中编写代码如下:

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();}

8、编译订阅回调如下:

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"; }}

五、实验效果

编译好程序后,上传到开发板,运行后,效果如下:

c22416fe-1b1f-11f0-9434-92fbcf53809c.jpg

c2528ae8-1b1f-11f0-9434-92fbcf53809c.jpg

六、总结

米尔-STM32MP257开发板,通过QT来设计UI界面,通过mqtt来订阅指定的主题,实现环境监测。在物联网方面大有作为!

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

    关注

    2293

    文章

    11031

    浏览量

    364451
  • 监测系统
    +关注

    关注

    8

    文章

    2878

    浏览量

    82491
  • 开发板
    +关注

    关注

    25

    文章

    5661

    浏览量

    104425
  • 米尔电子
    +关注

    关注

    0

    文章

    149

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    米尔-STM32MP257开发板试用】——开箱评测

    很荣幸收到电子发烧友和米尔电子的STM32MP257开发板,该开发板基于STM32MP2系列是意法半导体推出最新一代工业级64位微处理器;具
    发表于 03-31 12:23

    全新STM32MP257开发板震撼发布!异核架构x接口丰富x边缘AI,助力ARM嵌入式工业4.0应用!

    全新STM32MP257开发板震撼发布!异核架构x接口丰富x边缘AI,助力ARM嵌入式工业4.0应用! ATK-DLMP257B开发板是正点原子基于
    发表于 04-12 12:04

    何在米尔-STM32MP257开发板上部署环境监测系统

    我正在论坛参与的一个项目:Thingy:91X 蜂窝物联网原型开发平台的试用。把两个项目结合起来,实现一个简单的环境监测系统。 二、硬件平台 1、
    发表于 04-18 15:18

    米尔-STM32MP257开发板试用体验】初次体验米尔-STM32MP257开发板

    何在MYD-LD25X开发板使用STM32CubeMX工具来实现最小系统的搭建及外设资源的配
    发表于 04-30 16:21

    米尔-STM32MP257开发板试用体验】米尔-STM32MP257开发板下载yocto源码和编译及烧录

    内容,主要包括启动流程分析、驱动分析、Yocto系统定制等内容。 先给各位朋友介绍一下收到的米尔-STM32MP257开发板。 硬件介绍 硬件平台: 本文采用
    发表于 04-30 16:37

    米尔-STM32MP257开发板试用体验】测试米尔-STM32MP257开发板试连接wifi功能

    编解码,RGB, MIPI DSI 以及 LVDS 显示接口 米尔-STM32MP257开发板板载了wifi与蓝牙的模块,可以实现无线连接。在软件评估指南中,有介绍如何做为sta连接w
    发表于 05-09 12:16

    【正点原子STM32MP257开发板试用】+ STM32MP257开发板开箱评测

    很高兴收到了正点原子和电子发烧友给到了试用名额,大清早就去拿到了快递,正点原子STM32MP257开发板果然是ST的性能旗舰产品 快递是上面这个快递盒子。 拆开后,是熟悉的正点原子的包装盒,黑色
    发表于 06-08 09:01

    【正点原子STM32MP257开发板试用】介绍、电测试、系统连接

    【正点原子STM32MP257开发板试用】介绍、电测试、系统连接 本文介绍了正点原子 STM32MP257
    发表于 06-13 17:28

    【正点原子STM32MP257开发板试用】系统更新

    【正点原子STM32MP257开发板试用】系统更新 本文介绍了正点原子 STM32MP257 开发板实现固件上传与
    发表于 06-17 18:35

    【正点原子STM32MP257开发板试用】STM32MP257开发板内核及外设性能测试

    收到STM32MP257有段时间了,一直忙于工作,好不容易有闲暇时间来写下测评报告,好了,本期测评主要讲解正点原子STM32MP257开发板的硬件内核几外设的性能参数测试。 话不多说了,开始进入正题
    发表于 07-03 20:07

    米尔-STM32MP257开发板试用体验】——测试米尔-STM32MP257开发板外设功能

    本期帖子主要是用来测试米尔-STM32MP257开发板外设功能。 好了,直接进入正题。 上面是米尔-STM32MP257
    发表于 07-07 18:22

    STM32MP25x开发板Bring Up培训课程(中)

    STM32MP25x开发板BringUp培训课程()米尔基于STM32MP257核心
    的头像 发表于 02-20 08:06 517次阅读
    <b class='flag-5'>STM32MP</b>25x<b class='flag-5'>开发板</b>Bring Up培训课程(中)

    STM32MP25x开发板Bring Up培训课程(下)

    STM32MP25x开发板BringUp培训课程()STM32MP25x开发板BringUp培训课程(中)
    的头像 发表于 02-27 08:03 700次阅读
    <b class='flag-5'>STM32MP</b>25x<b class='flag-5'>开发板</b>Bring Up培训课程(下)

    免费丨米尔 STM32MP257开发板有奖试用

    米尔与ST合作发布的新品基于STM32MP257应用处理器的MYD-LD25X开发板免费试用活动来啦~~米尔提供了2块价值488元的MYD-LD25X
    的头像 发表于 03-20 08:05 476次阅读
    免费丨<b class='flag-5'>米尔</b> <b class='flag-5'>STM32MP257</b><b class='flag-5'>开发板</b>有奖试用

    【新品体验】正点原子STM32MP257开发板免费试用

    试用产品概述ATK-DLMP257B开发板是正点原子基于STM32MP257DAK3处理器研发的一款高性能嵌入式开发平台,适用于嵌入式系统开发
    的头像 发表于 04-22 08:05 527次阅读
    【新品体验】正点原子<b class='flag-5'>STM32MP257</b><b class='flag-5'>开发板</b>免费试用