当前位置: 首页 > news >正文

海口建站价格网站建设的物流

海口建站价格,网站建设的物流,tp5网站开发百度云分享,加强专业建设的主要举措本文将介绍基于米尔电子MYD-LD25X开发板(米尔基于STM35MP257开发板)的环境监测系统方案测试。 摘自优秀创作者-lugl4313820 一、前言 环境监测是当前很多场景需要的项目,刚好我正在论坛参与的一个项目:Thingy:91X 蜂窝物联网原型…

本文将介绍基于米尔电子MYD-LD25X开发板(米尔基于STM35MP257开发板)的环境监测系统方案测试。

摘自优秀创作者-lugl4313820


一、前言

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

二、硬件平台

1、米尔-STM32MP257开发板

2、Thingy:91X 

三、项目规划

1、米尔-STM32MP257开发板,板载了wifi模块,通过wifi连接到互联网。

2、启用MQTT,连接到私有的服务器,并订阅指定的主题。

3、使用QT设计UI界面。

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

四、QT设计

1、QT安装

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

Index of /qtproject/official_releases/online_installers/

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

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

2、Kit的配置

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

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

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

3、创建桌面程序

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

4、定义标签值

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

5、引入QT的QtMqtt/QMqttClient 库

#include <QtMqtt/QMqttClient>

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

error while loading shared libraries: libQt5Mqtt.so.5: cannot open shared object file: No such file or directory

需要从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"; }
}

五、实验效果

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

六、总结

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

http://www.dtcms.com/a/418972.html

相关文章:

  • Leetcode 26. 删除有序数组中的重复项
  • Linux 的文本编辑器vim食用指南
  • 开发实战:从0到1实现Chrome元素截图插件的完整过程
  • ue编辑器视口鼠标消失的问题
  • 【数据结构】多项式的基本运算
  • 在ubuntu下载企业微信
  • 基于Chrome140的FB账号自动化——需求分析环境搭建(一)
  • MCP:cursor、claude code接入chrome-devtools-mcp。
  • 台风“桦加沙”袭击大,盈电智控物联网漏水检测系统为关键场所筑牢“隐形堤坝”!
  • 北京比较好的互联网公司晋中seo排名
  • 高通平台WiFi学习---深入了解 WLAN host crash调试
  • 在 Ubuntu 上可以用几个常用命令查看系统运行情况(内存、CPU、硬盘占用等
  • 子路由器如何设置 路由器LAN-WAN级联的设置方法
  • 【Ubuntu】请问,『kill -9』跟『kill -15』有区别吗?
  • 科网站建设免费查公司的网站
  • SCDN-保护网站安全的有效方案
  • Go 的跨平台编译详解
  • docker命令总结
  • 2、user-service 企业级代码目录结构规范
  • 网站开发的自适应wordpress 万能搜索页
  • Linux设置定时作业执行node.js脚本
  • XXE - 实体注入(xml外部实体注入)
  • MySQL查询性能优化核心知识点总结
  • 自然语言处理(03)
  • 哈尔滨速成网站建设公司装修费用会计分录
  • 做网站亏本太原市城乡建设局网站
  • 基于本地运行的OCR在特别场景的应用
  • 网站被host重定向wordpress图像居中
  • 十大AI驱动的网络安全解决方案对比分析
  • 09.【Linux系统编程】“文件“读写操作,Linux下一切皆文件!