QT使用MQTT协议连接ONENET云平台:智能家居PC客户端开发笔记-1 环境搭建

这篇具有很好参考价值的文章主要介绍了QT使用MQTT协议连接ONENET云平台:智能家居PC客户端开发笔记-1 环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

前端时间做了一个项目,要求在PC端使用QT制作一个客户端,用来接收从单片机上传到Onennet的数据,并且还要下发指令。当时弄了好几天,中途遇见了非常多的问题,所以写下这篇文章记录一下,同时分享一下自己的经验。

我的环境:QT 5.12.6

难点

总结下我遇见的难点:

1,环境配置极难,当时光环境配置这一项就弄了我好几天

Qt在5,10版本开始支持mqtt,但是也没有集成到安装包里面,需要自己下载编译。Qt开发MQTT程序有两种方式,一个是Qt官方提供的基于MQTT的封装,一个是第三方(EMQ)开发的用于Qt调用MQTT的接口,二者使用方法大同小异,并且均提供了源码

下载

Qt官方在github上提供了源代码,地址:https://github.com/qt/qtmqtt

第三方的mqtt库GitHub地址:https://github.com/emqx/qmqtt

在下载官方库文件时需要注意,要下载与自己版本相符合的程序源码,像我是5.12.6版本的QT。我就要下载5.12.6版本的mqtt库文件

环境搭建

第一步,编译构建qmqtt源码

下面我们使用第三方的MQTT库来进行环境搭建,第三方公司的MQTT库环境搭建过程与官方库的环境搭建过程基本上都是相同的步骤,只是他们两方的头文件名字不太一样而已。

将第三方的源码下载后点击qmqtt.pro

qt连接onenet,c++,qt,Powered by 金山文档

出现这个界面点红框即可

qt连接onenet,c++,qt,Powered by 金山文档

后面直接点击左下角的小锤子进行构建

qt连接onenet,c++,qt,Powered by 金山文档

有时候可能会出现构建失败的提示,这也是我花费时间最多的地方,当时找了许多教程都没弄清楚

问题

你出现这个现象可能有一下几个原因:

1,需要安装一个perl

perl下载地址:https://www.perl.org/get.html

2,你可能需要使用release模式进行构建

点击左下角的这个小显示器形的图标就可以调节模式

3,你的QT版本太低,不支持

这时候下载一个更新的,5.10以上版本的

4,此时开始编译后会出现如下类型错误

qt连接onenet,c++,qt,Powered by 金山文档

接下来我们将源码路径下C:\Users\maogu\Desktop\qtmqtt-5.10\src\mqtt 的所有头文件复制,

粘贴到C:\Users\maogu\Desktop\build-qtmqtt-Desktop_Qt_5_10_1_MSVC2013_64bit-Release\include\QtMqtt路径中,

我在include文件夹中已经建好QtMqtt文件夹,(以上路径仅作参考)

最后一步还要在QtMqtt文件夹下建立private文件夹,将名称为*_p.h的四个头文件存放进去。

5,之后若是还出现以下问题

qt连接onenet,c++,qt,Powered by 金山文档

这时,我们将所有错误的包含文件名换为相应*.h文件,如下:

qt连接onenet,c++,qt,Powered by 金山文档

之后就可以正常编译了

构建完成后你会得到一个文件夹

qt连接onenet,c++,qt,Powered by 金山文档

第二步:部署到QT项目

这里有两种方法进行环境配置,

第一种是直接在项目中导入外部库和头文件。

第二种是将其以模块的形式部署到QT的安装目录。

其中第二种的好处就是,只需要一次操作,以后需要再用MQTT库就可以直接调用了,不用每次都导入外部库

所以在这里我们主要演示第二种

首先,将qmqtt源码目录下(qmqtt\src\mqtt)的所有.h后缀的头文件拷贝,然后打开QT安装目录下的include文件夹,创建一个mqtt目录,将拷贝的头文件粘贴进去

我的文件目录如下:D:\QT\5.12.6\mingw73_64

qt连接onenet,c++,qt,Powered by 金山文档

注意:当你的QT安装了不同的编译环境时会有

之后,将源码编译生成目录下的lib中以下6个文件拷贝

qt连接onenet,c++,qt,Powered by 金山文档

并粘贴到QT安装目录下对应环境的lib文件夹去

例如D:\QT\5.12.6\mingw73_64\lib

接下来将源码编译生成的bin文件夹下两个库文件拷贝到Qt安装目录的bin中:

qt连接onenet,c++,qt,Powered by 金山文档
qt连接onenet,c++,qt,Powered by 金山文档

之后将编译构建得到的目录下的\mkspecs\modules-inst中的文件复制到QT对应安装目录中

qt连接onenet,c++,qt,Powered by 金山文档
qt连接onenet,c++,qt,Powered by 金山文档

这样就配置完成了

以这种方式配置的在新工程中引用只需要引入模块就可以直接使用了

QT += mqtt

包含头文件

#include <QtMqtt/QtMqtt>
问题

在我配置好使用过程中出现了一下问题:

1,头文件不对

这时候查看你刚刚添加的头文件具体名字,官方库和第三方库的头文件名并不相同

2,显示找不到头文件

这时尝试自己导入文件试试

新建一个项目,在项目的.pro文件中右键,点击添加库

qt连接onenet,c++,qt,Powered by 金山文档

选择外部库

qt连接onenet,c++,qt,Powered by 金山文档

选择库文件,找到QT安装目录相应环境下的lib文件

qt连接onenet,c++,qt,Powered by 金山文档

之后再次运行应该就没有问题了

接下来就是正式的客户端开发了,将会在我下一篇博客发出,敬请期待

参考文献:

(112条消息) Qt开发MQTT(一) 之Qt官方Qt MQTT_luoyayun361的博客-CSDN博客

(112条消息) 【QT配置第三方MQTT协议】_mqtt qt_自然醒欧的博客-CSDN博客

(112条消息) Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建_qt mqtt_长沙红胖子Qt的博客-CSDN博客

代码分享:http://t.csdn.cn/ufC4W文章来源地址https://www.toymoban.com/news/detail-668870.html

到了这里,关于QT使用MQTT协议连接ONENET云平台:智能家居PC客户端开发笔记-1 环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OneNet平台使用可视化界面(MQTT协议)

    项目效果: 在OneNet平台建立一个可视化界面,实现效果是下位机的温度,湿度可以在该界面显示,同时该界面可以控制下位机的灯亮与灭。 搭建环境: 软件:keil(编写C语言-修改硬件的程序)+onenet平台(建立可视化界面-上位机功能); 硬件:野火指南者开发板; 可视化界面:

    2024年02月05日
    浏览(53)
  • android studio 使用MQTT协议连接onenet 注意事项和相关函数

    一、注意事项: 1.添加依赖: 2.在注册表允许打开网络 3.在application     /application之间添加用于支持 MQTT(Message Queuing Telemetry Transport)通信协议的 Eclipse Paho Android 服务。 4.打开项目中的 gradle.properties 文件,并确保以下属性设置为true------更新所有的支持库到AndroidX中。 二、

    2024年04月26日
    浏览(49)
  • MQTT协议(新版)接入OneNET平台

    MQTT.fx (用于模拟设备接入) token (计算密钥工具) 首先我们先进入到中移物联官方网站:https://open.iot.10086.cn/ 点击左上角产品服务→基础服务→MQTT物联网套件,然后点击屏幕上方【 立即使用 】,进入MQTT协议平台 接下来点击屏幕上【 添加产品 】,如下图添加一个产品,可参考:官方

    2024年02月08日
    浏览(54)
  • 基于STM32与OneNet平台的智能家居系统设计(代码开源含自制APP代码)_onenet 编程

    请求方式: GET URL: http://api.heclouds.com/devices/device_id/datapoints 服务器或上位机下发主题报文(控制下位机): API函数: 请求方式: POST URL: http://api.heclouds.com/mqtt?topic=xxx 以上2个网络通讯的 API函数 至关重要,就是实现常规情况下OneNet物联网开发的 关键性技术支持。 ( 情况允许

    2024年04月12日
    浏览(74)
  • STM32连接--OneNET,阿里云(MQTT协议)详细教程

    物联网一词在2009年由Kevin Ashton首次使用。物联网指的是通过互联网来连接物理设备。物理设备可以相互之间通过互联网交换数据或由其他设备控制。物联网设备可以是冰箱、交通信号灯、工业控制系统等电子装置或电气设备。最常见的用例之一是传感器数据的收集,传输,分

    2024年02月06日
    浏览(42)
  • 新版ONENET物联网开放平台AT+MQTT指令连接

    ONENET物联网平台自4月28日更新后,暂时没有完整的教程,本文目的旨在帮助大家通过AT+MQTT指令连接到ONENET云平台: 本教程在B站录制有视频教程两个教程结合使用效果更佳: 新版ONENET物联网开放平台ESP8266的AT+MQTT固件库串口通信模拟连接_哔哩哔哩_bilibili 新版ONENET物联网开放

    2024年02月08日
    浏览(46)
  • 中国移动物联网开放平台OneNET学习笔记(2)——设备接入测试(MQTT协议)OneNET Studio篇

    进入Studio平台后,展开菜单栏中的「设备接入与管理」,点击「设备管理」,进入设备列表页面。 点击「添加设备」,选中单个设备(默认方式)输入设备详情,点击「确定」创建设备。 按照提示填写产品的基本信息,进行产品创建;请按照提示尽可能完整、全面地填写相

    2024年02月02日
    浏览(59)
  • 基于STM32和oneNET云平台的数据采集系统(MQTT协议)

    该篇为基于stm32+esp8266通过 mqtt 协议连接 onenet 物联网云平台,单片机部分将采集到的数据(温湿度、光照强度、压强等等)上传至云平台服务器,云平台可下发指令操控单片机,实现远程通信。 1. 第一步,注册账号后点击右上角 控制台 2. 第二步,看左上角 选择切换旧版本 3.

    2024年02月06日
    浏览(58)
  • 【智能家居入门4】(FreeRTOS、MQTT服务器、MQTT协议、微信小程序)

    主控仍旧是STM32F103C8T6,实时操作系统选择的是FreeRTOS。 主要功能: ①环境信息采集并上传至微信小程序 ②微信小程序下发指令控制家电 ③由雨滴传感器和步进电机能够实现下雨自动收起衣服,停雨自动晒出衣服(由于驱动板和步进电机不在身边,这里代码中就用舵机来模拟

    2024年04月11日
    浏览(58)
  • (Onenet)STM32L+BC20+MQTT协议传输温湿度,ADC,电压,GPS数据到Onenet物联网平台

    1、材料准备 准备以下材料 2、设备连接 2.1 插入物联网卡 首先把BC20核心板从开发板上拆下来 然后将物联卡放置在BC20核心板内 物联卡放置完成将BC20核心板重新插入到开发板内(注意不要弄错方向) 同时接入天线 2.2 连接ST-Link仿真器 用3条杜邦线接入STM32L的 DIO、GND、CLK中 另

    2024年02月15日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包