我是靠谱客的博主 知性砖头,最近开发中收集的这篇文章主要介绍mqtt与硬件交互_基于MQTT协议对智能硬件装置的控制方法与流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本发明属于通信控制技术领域,尤其是一种基于MQTT协议对智能硬件装置的控制方法。

背景技术:

目前,软件端(APP和PC端)与硬件端(单片机及其周边设备)之间的通讯通常采用蓝牙、服务器后台开发实现等,其数据处理采用硬件端处理数据、服务器端处理数据和软件端处理数据。

服务器后台开发:服务器后台需要提供与软件端和硬件端连接的接口,建立两个通信通道,用于服务器后台与软件端和硬件端的交互。硬件端首先将采集到的数据通过网络连接发送到服务器后台,服务器后台接收后,将数据放到数据库中分析处理,然后将需要的数据经过通道发送到软件端上。另一方面,软件端对硬件操作指令也是通过服务器后台并流经两个通道发到硬件端上。硬件端收到不同的指令后,从而去实现不同的功能。采用服务器后台开发存在的问题是:既要进行数据处理等相关操作,又要做好与软硬件的对接过程,其开发过程复杂而又常需要维护,适用于较大的项目开发。

蓝牙技术:着重分析蓝牙主机控制器接口HCI层协议,根据协议规范,设计基于单片机控制蓝牙模块的硬件接口方案,并详细剖析蓝牙HCI层通信实例的实验数据,设计出基于单片机控制蓝牙模块的软件接口方案;通过设计的软硬件接口,编写硬件端的蓝牙数据传输模块;PC端可编写蓝牙控制程序,再通过USB控制蓝牙适配器,从而实现蓝牙数据的无线传输。采用蓝牙技术实现存在的问题是:速度较慢,而且信号距离十分有限。

技术实现要素:

本发明的目的在于克服现有技术的不足,提出一种基于MQTT协议对智能硬件装置的控制方法,其采用硬件端和软件端处理数据,省去了服务器端后台的数据处理过程,其方法易于实现且性能稳定。

本发明解决其技术问题是采取以下技术方案实现的:

一种基于MQTT协议对智能硬件装置的控制方法,包括以下步骤:

步骤1、将智能硬件装置与软件端通过MQTT代理服务器连接在一起并使用MQTT协议进行通讯;

步骤2、将MQTT协议设置发布/订阅消息模式;

步骤3、智能硬件装置发布一个主题,软件端订阅该主题,由智能硬件装置将收集到的信息数据反馈到软件端上;或者软件端发布一个主题,智能硬件装置订阅该主题,由软件端将控制指令反馈到智能硬件上,控制智能硬件装置工作。

所述智能硬件装置与软件端的连接关系为:智能硬件装置与MQTT代理服务器相连接,软件端通过服务器后台与MQTT代理服务器相连接。

所述智能硬件装置由单片机及与其相连接的传感器和通讯模块构成。

所述传感器为温湿度传感器、气体传感器、光敏传感器、火焰传感器或舵机,所述通讯模块采用WiFi模块,单片机通过WiFi模块与MQTT代理服务器进行数据交互。

所述硬件智能装置发布一个主题采用的指令字符为:标识符和数据;所述软件端发布一个主题采用的指令字符为:标识符和数据。

本发明的优点和积极效果是:

1、本发明采用MQTT协议,将数据处理分别放到硬件端和软件端进行,实现小型软硬件交互项目开发功能,省去了服务器端的数据处理过程,其实现方法易于实现且性能稳定;并且采用轻量级的发布/订阅消息模式,提供一对多的消息发布,能够为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。

2、本发明将传递的数据封装成固定的标识符+数据格式,该数据信息简短、易识别,降低了处理数据的难度。

附图说明

图1是本发明的控制方法原理图。

具体实施方式

以下结合附图对本发明做进一步说明。

一种基于MQTT协议对智能硬件装置的控制方法,包括以下步骤:

步骤1、将智能硬件装置与软件端通过MQTT代理服务器连接在一起并使用MQTT协议进行通讯。

如图1所示,硬件端(智能硬件装置)通过与MQTT代理服务器相连接,软件端(APP端)经服务器后台与MQTT代理服务器相连接,硬件端与软件端通过MQTT代理服务器通过MQTT协议进行数据交互,从而实现对硬件端的控制功能。

智能硬件装置由单片机及与其相连接的传感器和通讯模块构成,其不仅能进行基本的硬件功能,还能实现互联网服务的加载功能。在本实施例中,单片机可以采用Arduino、89C51、stm32等,传感器可以是温湿度传感器、气体传感器、光敏传感器、火焰传感器、舵机等,通讯模块采用WiFi模块,单片机通过WiFi模块并采用MQTT协议与MQTT代理服务器进行数据交互。软件端利用MQTT协议在软件端控制智能硬件装置,不仅能达到协议交换最小化,还能降低网络流量。

本发明使用的MQTT协议是IBM开发的一个即时通讯协议,该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器的通信协议。

步骤2、将MQTT协议设置发布/订阅消息模式。

本发明利用MQTT协议有序的、可靠的、双向字节流传输特点(发布、订阅主题),实现软、硬件的简单、稳定的交互。而使用发布/订阅消息模式,能提供一对多的消息发布。

步骤3、硬件端发布一个主题,软件端订阅该主题,由智能硬件装置将收集到的信息数据反馈到软件端上;或者软件端发布一个主题,硬件端订阅该主题,由软件端将控制指令反馈到智能硬件上,控制硬件端工作。

软件端向硬件端发送指令字符:标识符+数据,如“macheine:forward”、“macheine:backward”、“led:open”和“led:close”。单片机通过通讯模块和串口去接收发送来的数据,再将接收到的数据头(标识符)和程序中的字符进行对比,获得部分功能模块的有效指令,如forward、open等,从而控制连接单片机的传感器引脚电平的高低,最终实现对部分传感器的控制,如舵机的正转、反转和LED灯的开、关等。

硬件端(智能硬件装置)将检测到的数据封装成特殊格式:标识符+数据,如Temperature:25,再通过单片机和通讯模块发送到软件端,软件端通过对特殊格式的处理,从而筛选出有用的数据(Temperature)后,从而获得数据25并使用。其它传感器与软件端的交互方式也是类似的。

需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

最后

以上就是知性砖头为你收集整理的mqtt与硬件交互_基于MQTT协议对智能硬件装置的控制方法与流程的全部内容,希望文章能够帮你解决mqtt与硬件交互_基于MQTT协议对智能硬件装置的控制方法与流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部