阿里云飞燕平台搭建与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,一经查实,立即删除!

相关文章

vue3从精通到入门17:内置组件之Transition和TransitionGroup

Transition <Transition> 是一个内置组件&#xff0c;它用于在元素或组件的插入、更新和移除时应用过渡效果。Vue 3 的 <Transition> 组件提供了一个声明式的方式来处理这些过渡效果&#xff0c;使开发者能够更容易地添加动画到他们的 Vue 应用中。 基本概念 包裹…

蓝桥杯每日一题:鱼塘钓鱼(多路归并)

题目描述&#xff1a; 有 N 个鱼塘排成一排&#xff0c;每个鱼塘中有一定数量的鱼&#xff0c;例如&#xff1a;N5 时&#xff0c;如下表&#xff1a; 鱼塘编号12345第1分钟能钓到的鱼的数量&#xff08;1..1000&#xff09;101420169每钓鱼1分钟钓鱼数的减少量&#xff08;1…

指针的总结

公司面试题 定义&#xff1a; 1.一个整型数&#xff1a;int a; 2.一个指向整型数的指针&#xff1a;int *a 3.一个指向指针的 (指针)&#xff0c;它 (指向的指针) 指向一个整型数:int **a 4.一个有10个整型数的数组 : int a[10]; 5.一个有10个指针的数组&#xff0c;每个…

flutter组件_AlertDialog

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

高阶函数,前端切片处理提升用户体验,代码复制即用

使用范围ALL /*** 高阶函数之数组切片* M楸M 前言* 好处: 解决页面卡顿加载缓慢问题* 常用于渲染真实dom节点数据量大问题* 从根源上去处理这个问题 页面卡顿基本原因是主线程阻塞16.6ms渲染一次* 在16.6毫秒间分段处理* **/ function performChunk(data, taskHandler, schedu…

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

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

【前端性能优化】使用惰性函数减少无意义的重复判断

什么是惰性函数&#xff1f; 惰性函数表示函数执行的分支只会在函数第一次调用的时候执行&#xff0c;在第一次调用过程中&#xff0c;该函数会被覆盖为另一个按照合适方式执行的函数&#xff0c;这样任何对原函数的调用就不用再经过执行的分支了。 惰性函数的本质就是函数重…

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

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

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

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

synchronized用于静态方法与普通方法有区别吗?

Synchronized 关键字在 Java 中用于实现线程同步&#xff0c;确保在多线程环境下对共享资源的访问是安全的。当应用于方法时&#xff0c;它可以用于静态方法和普通方法&#xff0c;但二者之间确实存在一些区别。 锁的对象不同&#xff1a; 对于普通方法&#xff0c;锁的对象是调…

3.13 Python位运算符

Python位运算符详解 Python位运算按照数据在内存中的二进制位&#xff08;Bit&#xff09;进行操作&#xff0c;它一般用于底层开发&#xff08;算法设计、驱动、图像处理、单片机等&#xff09;&#xff0c;在应用层开发&#xff08;Web 开发、Linux 运维等&#xff09;中并不…

神经网络训练中batch的作用

在神经网络训练中&#xff0c;batch的作用主要包括以下几个方面&#xff1a; 减少内存占用和计算成本&#xff1a;在训练神经网络时&#xff0c;需要加载并处理大量的数据。使用batch训练可以将数据分成较小的批次&#xff0c;每次处理一小部分数据&#xff0c;从而减少内存占用…

数据库讲解---(SQL语句--练习题讲解)【MySQL版本】

目录 零.前言 一.例题一 1.1查询姓刘的老师所授课程的课程号和课程名 1.2查询年龄大于23岁的男同学的学号和姓名 1.3查询学号为S3的学生所学课程的课程号、课程名和任课教师姓名 1.4查询“张小飞”没有选修的课程号和课程名 1.5查询至少选修了三门课程的学生的学号和姓名…

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

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

Python的时间和日期:探索datetime模块

&#x1f680; 个人主页&#xff1a;xmp65535 &#x1f680; 专栏&#xff1a;python技术专栏 目录 一、前言 二、datetime 模块简介 三、基本使用 1.日期和时间的创建 2.获取当前日期和时间 3.时间戳与日期时间之间的转换 4.时间运算 5.格式化日期和时间 6.解析字符串…

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

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

Proteus 8 的使用记录

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

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

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

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

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

Django交易商场

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