热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

物联网项目设计(二)MQTT.fx与百度云天工IOThub的连接调试

目录概要正文软件准备硬件准备操作部分总结概要介绍如何使用MQTT.fx调试工具与百度云天工物联网服务器之间,通过MQTT协议进行通讯。这部分内容属于服务

目录

概要


正文


软件准备


硬件准备


操作部分


总结



 

概要

介绍如何使用MQTT.fx调试工具与百度云天工物联网服务器之间,通过MQTT协议进行通讯。
这部分内容属于服务器端与设备端之间的通讯,MQTT是之后用于手机,服务器,嵌入式物联网设备主要用于通讯的应用层协议,也是MQTT协议的开篇,之后肯定要学习MQTT更多相关的知识
该部分假设读者对MQTT有入门级的了解。如果不了解也可以参看下文中的百度云天工的指南


正文

软件准备


  • 电脑已安装JAVA运行环境,如何安装请自行百度
  • MQTT.fx调试软件,该软件是MQTT主流的调试软件,软件安装方法可参照这篇博客 mqtt.fx | 一款超级好用的Mqtt客户端软件(下载、安装、使用详解)

硬件准备

可联网的电脑一台

操作部分

百度云天工的手册写的非常细致,对MQTT的介绍也很详细。我下面的所有操作都是根据官方指南和他人博客而成的
官方文档     百度智能云
参考博客    使用mqtt.fx对接百度天工物接入平台

访问百度云天工物联网平台首页,官网链接在这注册或登录,进入平台。在左侧选择物接入

在这里插入图片描述

只有开通了计费服务才能进入下一步的配置,关于计费,开发使用的话,有一定的免费额度,平时开发肯定是够用了

 

在这里插入图片描述

 

点击创建项目,设备项目分为两种,设备型项目和数据型项目,设备型项目允许创建一个,数据型设备允许创建9个。两者区别在于设备型项目适用于大多数情况,自动配置数据库,可添加话题等等。数据型项目可以使用户完成定制化的服务,当然也更难配置,一般情况下使用设备型项目就可以了。关于两者介绍请看天工官网。

在这里插入图片描述
上图中,输入相关信息即可创建设备型项目。

在这里插入图片描述

然后新建一个物模型,可以看到还有一个物影子,物模型和物影子之间的关系就如C++里面类和实例的关系,物影子就是物模型的实例。物影子是实际的嵌入式设备在云端的映射,代码设置合理的情况下,通过操作云端的物影子就可以操作实际的物联网设备。

在这里插入图片描述

上图是物模型的配置界面,在配置界面中需要添加物模型的属性,这些属性是用来操作物影子的相关功能的。

在这里插入图片描述

配置一个物模型的属性如上图

在这里插入图片描述

物模型创建好之后就可以创建一个物影子

在这里插入图片描述
创建物影子的时候要设置相应的物模型,这个地方存储配置先不勾选,这个是用来配置是否使用时序数据库的,这个地方暂时用不到。

在这里插入图片描述

每一个物影子都有相应的访问网址和用户名和密码,这个是物联网设备端与云端通讯时必备的信息。必须妥善保存,待会我们也会用到。

在这里插入图片描述
创建好物影子后我们就可以看到,如果想访问物影子或者控制物联网设备的话,我们就需要订阅相关的话题,或者发布相关的话题,上图列出了基本的话题。

在这里插入图片描述
打开mqtt.fx,按照上图进行配置,不过密码什么的要改成自己的,这些信息就是刚刚创建物影子时生成的信息。

在这里插入图片描述
创建好后点击Connect,如果界面右侧的绿灯亮起,则说明链接成功,这时候打开云天工,发现对应的物影子上面的灯也亮了,说明使用mqtt.fx链接云天工成功。

在这里插入图片描述

如上图,点击subscrib,根据物影子上的信息,我们先订阅两个话题,话题名称如下图所示,需要在物影子里面找

在这里插入图片描述

订阅的话题

  • $baidu/iot/shadow/Smart_light_001/update/accepted
  • $baidu/iot/shadow/Smart_light_001/update/rejected

要发布的话题

  • $baidu/iot/shadow/Smart_light_001/update

Smart_light_001是我创建的物影子,然后我们需要向这个话题发布消息,这个发布动作无论成功与否,刚刚我们订阅的话题中至少有一个会收到反馈消息。

mqtt传输的消息格式采用json格式,在发送的过程中,我们不需要自己写这种格式,只需要查看物影子的模型数据,编辑,给这个物影子的属性一个初始值。然后打开原始数据,就可以找到发送数据的数据格式。

在这里插入图片描述
打开pubilish,向指定话题发布消息

在这里插入图片描述

 

在这里插入图片描述

订阅的话题

  • $baidu/iot/shadow/Smart_light_001/update/accepted

收到了消息,说明发送成功

在这里插入图片描述

接下来在模型数据的地方进行编辑,更改物影子属性的期望值,先不要点确定。然后再MQTT.fx中订阅指定话题。

  • $baidu/iot/shadow/Smart_light_001/delta

在这里插入图片描述

在物影子属性模型数据处点确定,会发现我们刚刚订阅的话题收到了一条消息。

在这里插入图片描述
这就是实现了云端对物联网设备的控制。


至此,我们实现了MQTT.fx和天工云服务器的双向数据传输,这样的方法不仅适用于天工云,还适用于所有使用MQTT的云服务器。



总结

这部分内容介绍了如何使用windows端的MQTT.fx与云服务器进行通讯,但这个只能算是调试,最终还是要使用嵌入式设备连接云服务器,预计下一部分要做的工作就是这个,笔者还属于新手,这些东西要慢慢掌握


————————————————
版权声明:本文为CSDN博主「张竞豪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42487906/article/details/104469296

https://blog.csdn.net/weixin_42487906/article/details/104469296


推荐阅读
  • STM32代码编写STM32端不需要写关于连接MQTT服务器的代码,连接的工作交给ESP8266来做,STM32只需要通过串口接收和发送数据,间接的与服务器交互。串口三配置串口一已 ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • Python中调用Java代码的方法与实践
    本文探讨了如何在Python环境中集成并调用Java代码,通过具体的步骤和示例展示了这一过程的技术细节。适合对跨语言编程感兴趣的开发者阅读。 ... [详细]
  • Mac环境下Java与Ant自动化构建环境搭建指南
    本文详细介绍了如何在Mac操作系统上为测试工程师搭建Java和Ant开发环境,包括环境变量配置等关键步骤。 ... [详细]
  • Spring Boot 初学者指南(第一部分)
    本文介绍了Spring Boot框架的基础知识,包括其设计理念、主要优势以及如何简化传统的J2EE开发流程。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
  • 使用jQuery与百度地图API实现地址转经纬度功能
    本文详细介绍了如何利用jQuery和百度地图API将地址转换为经纬度,包括申请API密钥、页面构建及核心代码实现。 ... [详细]
  • 解析 HTTP 头 'Vary: Accept-Encoding' 的作用与重要性
    本文详细探讨了 'Vary: Accept-Encoding' HTTP 头的作用,即指导缓存系统(如代理服务器和 CDN)根据不同的编码需求存储和提供适当的资源版本,确保不同类型的客户端能够接收到适合自己的内容。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • J2EE平台集成了多种服务、API和协议,旨在支持基于Web的多层应用开发。本文将详细介绍J2EE平台中的13项关键技术规范,涵盖从数据库连接到事务处理等多个方面。 ... [详细]
  • Python与Java在Appium中的应用:混合APP自动化测试方法详解
    本文详细探讨了如何使用Python和Java语言结合Appium框架进行混合APP的自动化测试,特别针对面试中常见的问题进行了整理和解答。 ... [详细]
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
author-avatar
forsoz_627
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有