阿里云飞燕平台搭建与linux程序通信(全图文教程)

阿里云飞燕平台搭建与linux程序通信(全图文教程)

  • 一、MQTT理论
    • 1.1 概念
    • 1.2 理解发布和订阅
    • 1.3 MQTT传输的消息组成
  • 二、阿里云飞燕平台搭建
    • 2.1 产品创建
    • 2.2 自定义自己的功能
    • 2.3 人机交互
  • 三、测试
    • 3.1代码分析
    • 3.2 效果验证

一、MQTT理论

1.1 概念

MQTT是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,并且该协议构建于TCP/IP协议之上

在物联网开发中,MQTT不是唯一的选择,与MQTT互相竞争的协议有XMPP和CoAP协议等。

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。

MQTT协议是为硬件性能有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
1.使用发布/订阅消息模式,提供多对多的消息发布,解除应用程序耦合;
2.对负载内容屏蔽的消息传输;
3.使用TCP/IP 提供网络连接;
4.支持三种消息发布服务质量(QoS):
QoS 0(最多一次):消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这个级别可用于如下情况,环境传感器数据,丢失一次数据无所谓,因为不久后还会有第二次发送。
QoS 1(至少一次):确保消息到达,但消息重复可能会发生。
QoS 2(只有一次):确保消息到达一次。这个级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
5.传输数据小,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;(用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。)
MQTT具有协议简洁、轻巧、可扩展性强、低开销、低带宽占用等优点,已经有PHP,JAVA,Python,C,C#,Go等多个语言版本,基本可以使用在任何平台上。在物联网、小型设备、移动应用等方面有较广泛的应用,特别适合用来当做物联网的通信协议。

1.2 理解发布和订阅

发布: 节点终端信息的发起者,将自己的信息发送给服务器
订阅:节点终端订阅某个主题,,服务器满足条件后,将主题信息发布给这个设备
实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)服务器、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者
在这里插入图片描述

举个粟子: 订阅者向服务器订阅主题:温度, 在某个时间段发布者向服务器发送温度字段(携带值),服务器接受到温度字段后,向订阅者推送消息(温度字段(携带值))。

1.3 MQTT传输的消息组成

相比RabbitMQ等消息队列,MQTT要相对简单一些,只有Broker、Topic、发布者、订阅者等几部分构成。接下来我们先简单整理下MQTT日常使用中最常见的几个概念:
1.Topic主题:MQTT消息的主要传播途径, 我们向服务器订阅消息, 订阅主题, 从主题中读取消息并进行.业务逻辑处理, 主题是消息的通道(类似于系统编程中消息队列的编号)
2.生产者:MQTT消息的发送者, 他们按主题发送消息服务器(类似于系统编程中消息队列的发送者)
3.消费者:MQTT消息的接收者, 他们订阅自己需要的主题, 并从中获取消息(类似于系统编程中消息队列的接受者)
4.broker服务:消息转发器, 消息是通过它来承载的, EMQX就是我们的broker, 在使用中我们不用关心它的具体实现
其实, MQTT的使用流程就是: 生产者给broker的某个topic发消息->broker通过topic进行消息的传递->订阅该主题的消费者拿到消息并进行相应的业务逻辑

二、阿里云飞燕平台搭建

先完成在阿里云平台完成个人认证,阿里云平台网址:https://www.aliyun.com/

2.1 产品创建

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 自定义自己的功能

在这里插入图片描述

经过测试,需要删除一些功能,才能自定义功能,大概是免费版本,不能给予太多的功能,所以可以删除一些系统默认的功能,删除后,添加一些自定义的功能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 人机交互

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/fdb7c261f22f4fa99c27b768b2eb1351.png

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复制这里的信息,记录生成下面的信息。MQTT连接生成参考我的另篇博客:阿里云MQTT服务器搭建与测试(全图文,非常详细)

下面是我生成信息备用。

"product_key": "a1KUtZNCB8s","device_name": "environmentandcontrol","device_secret": "adfeb9b58679329fb42fca548022dd31"Broker Address:a1KUtZNCB8s.iot-as-mqtt.cn-shanghai.aliyuncs.com
Broker Port	  :1883
Client ID     :00001|securemode=3,signmethod=hmacsha1|User Name:environmentandcontrol&a1KUtZNCB8s
password:FBB2E0B6FEFE4B87F862B3B508546365DFA48215属性上报:/sys/a1KUtZNCB8s/environmentandcontrol/thing/event/property/post
属性设置:/sys/a1KUtZNCB8s/environmentandcontrol/thing/service/property/set

最后
在这里插入图片描述

三、测试

3.1代码分析

在这里插入图片描述
在这里插入图片描述

模拟温湿度数据获取
在这里插入图片描述
收到数据线程
在这里插入图片描述

3.2 效果验证

中控端
在这里插入图片描述
扫描二维码,此即可看控制
在这里插入图片描述
每隔5S温湿度变化
在这里插入图片描述
开关控制
在这里插入图片描述
json数据就不解析了,暂时写到这里了。源代码,请去我的资源去找找吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flutter组件_AlertDialog

官方说明:A Material Design alert dialog. 翻译:一个材料设计警告对话框。 作者释义:显示弹窗,类似于element ui中的Dialog组件。 AlertDialog的定义 const AlertDialog({super.key,this.icon,this.iconPadding,this.iconColor,t…

边缘计算平台原理、关键功能以及技术优势

1、什么是边缘计算及其工作原理? 边缘计算是一种分布式计算模型,它将数据处理和存储靠近数据源头和最终用户的边缘设备上,从而减少了数据传输和延迟。边缘计算旨在解决云计算模型所面临的问题,例如延迟高、带宽瓶颈和安全性等问题…

【JavaWeb】Day38.MySQL概述——数据库设计-DQL(一)

数据库设计——DQL 介绍 DQL英文全称是Data Query Language(数据查询语言),用来查询数据库表中的记录。 查询关键字:SELECT 查询操作是所有SQL语句当中最为常见,也是最为重要的操作。在一个正常的业务系统中,查询操作的使用频次…

Python实现BOA蝴蝶优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

cmake + mingw32构建和编译第三方lib库, qt 使用lib库

欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击。 背景 qt 有两种编译器,分别是visual studio和MinGW。很多第三方库提供编译好的visual studio 库,MinGW库需要自己编译。喜欢MinGW没有太多版本…

vs2022启动cmake项目(qt+c++)

1.本工程,如图,1个cmakelist.txt3个文件 2.启动vs 3.选择文件夹 4.进入这个页面,就说明配置没问题 5.启动 6.最后会自己生成其他文件

Proteus 8 的使用记录

创建仿真文件 新建文件:默认下一步,至完成创建。 功能选择如图: 放置器件 常用元器件名称 keywords 常用51单片机 AT89C52 晶振 CRYSTAL 电阻 RES 排阻 RESPACK-8 瓷片电容 CAP 电解电容 CAP-ELEC 单刀单掷开关 S…

网络协议学习——以太网协议

目录 ​编辑 一,以太网简介 二,以太网通信的过程 为什么不用IP地址? 过程 MAC帧 MAC帧的字段介绍 ARP协议 传输过程的一些问题 RARP协议 提高效率 三,其他问题 ARP诈骗问题 URL解析过程 一,以太网简介 …

python图书馆图书借阅系统含网上商城管理系统7d538

,python语言,django框架进行开发,后台使用MySQL数据库进行信息管理,设计开发的图书管理系统。通过调研和分析,系统拥有管理员和用户两个角色,主要具备注册登录、个人信息修改、用户、图书分类、图书信息、借…

Django交易商场

Hello,我是小恒不会java 最近学习django,写了一个demo,学到了不少东西。 我在GitHub上开源了,提示‘自行查看代码,维护,运行’。 最近有事,先发布代码了,我就随缘维护更新吧 介绍: 定…

构建智能生态:详解同城O2O外卖跑腿APP的开发技术

同城O2O外卖跑腿APP作为这一新型服务的代表,其开发技术成为了当下技术界的热点之一。小编将深入讲解同城O2O外卖跑腿APP的开发技术,以期为开发者提供一些有益的参考和指导。 需求分析与功能设计 在开发同城O2O外卖跑腿APP之前,首先需要进行充…

如何更换网络IP地址,简单几步轻松搞定

在数字化日益普及的今天,网络IP地址作为设备在网络中的标识,扮演着极其重要的角色。有时,出于安全考虑、网络布局调整或解决特定问题的需要,我们可能需要更换网络IP地址。虎观代理将详细介绍如何更换网络IP地址,帮助用…

LeetCode-152. 乘积最大子数组【数组 动态规划】

LeetCode-152. 乘积最大子数组【数组 动态规划】 题目描述:解题思路一:动态规划五部曲:定推初遍举解题思路二:因为每一个状态只与前一个状态有关,可以使用「滚动变量」技巧,使用常数个变量完成这道问题。解…

2024年MathorCup数模竞赛C题超详细解题思路

妈妈杯本次比赛报名队伍号高达12500,这也就意味着大概一万只队伍参加报名,仅仅在报名人数这一项,妈妈杯已经成为美赛国赛之后的第三大竞赛。C题作为本次竞赛最简单也最容易获奖的题目,本文将给大家带来手把手超详细解题思路。 注…

数据结构基础 ——数组VS链表(二)

一、数组 数组对应的英文是array,是有限个相同类型的变量所组成的有序集合,数组中的每一个变量称为元素。数组是最简单、最常用的数据结构。 数组存储格式: 在Python语言中,并没有直接使用数组这个概念,而是使用列表(…

投资认知第一篇-股票分红是怎么回事?

购买股票的收益分为两种,一种是低价买高价卖的差价(也就是俗称的炒股),另一种就是分红收益。购买一家上市公司的股份,投资者有权享受其分红,这是投资者的权益。一般来讲,上市公司分红有两种形式…

重磅,新GPT-4-Turbo重新夺回大模型第一名

好消息,新版 GPT-4 Turbo 今天开始现已向所有付费 ChatGPT 用户开放。GPT-4 Turbo提高了写作、数学、逻辑推理和编码能力。上下文长度128k 输出速度更快。现在已经开始陆续推送,如果你发现你的知识库截止时间是2024年4月,那么就是最新版本了&…

蓝桥杯 — — RSA解密

RSA解密 友情链接:RSA解密 题目: 思路: 对于这道题目,给出了三个已知量n d C,要我们进行解密,对于解密的公式 X C e m o d n X C^e \mod n XCemodn来讲,我们有唯一的参数e是未知的&#xf…

.[[backup@waifu.club]].svh勒索病毒数据怎么处理|数据解密恢复

尊敬的读者: 近年来,随着信息技术的迅猛发展,网络安全问题日益凸显,其中勒索病毒成为了一大威胁。.[[backupwaifu.club]].svh、.[[MyFilewaifu.club]].svh勒索病毒就是其中之一,它以其独特的传播方式和恶劣的加密手段…

【论文阅读——Profit Allocation for Federated Learning】

1.摘要 由于更为严格的数据管理法规,如《通用数据保护条例》(GDPR),传统的机器学习服务生产模式正在转向联邦学习这一范式。联邦学习允许多个数据提供者在其本地保留数据的同时,协作训练一个共享模型。推动联邦学习实…