基于阿里云物联网平台的设备之间传输十六进制数据
基于阿里云物联网平台的设备之间传输十六进制数据
文章目录
- 基于阿里云物联网平台的设备之间传输十六进制数据
- 1. 创建阿里云物联网产品
- 1.1 创建新的产品
- 1.2 为产品创建自定义topic
- 1.3 创建设备
- 2. 发送设备
- 3. 接收设备
- 4. 云产品流转
- 5. 效果演示
- 5.1 发送端
- 5.2 阿里云物联网平台日志
- 5.3 接收端
- 6. 总结
1. 创建阿里云物联网产品
1.1 创建新的产品
登录阿里云 [阿里云-为了无法计算的价值 (aliyun.com)](https://www.aliyun.com/)
点击搜索框,搜索物联网平台
点击企业物联网平台,并进入控制台
点击 公共实例 -> 设备管理 -> 产品 -> 创建产品
创建参数如下图
1.2 为产品创建自定义topic
选择Topic类列表 -> 自定义Topic -> 定义Topic类
创建两个自定义Topic,分别用于发送数据和订阅数据,即云到设备和设备到云
下图框中为我们新建的Topic
1.3 创建设备
创建完设备后可在产品下看到下面的内容
2. 发送设备
发送设备可以是嵌入式端,也可以是阿里云物联网平台上的设备模拟器等,本文以Java构建了一个MQTT发送端,构建方式请参考:
https://blog.csdn.net/m0_67401270/article/details/126459764
https://blog.csdn.net/li371518473/article/details/118306572
- 发送端数据处理代码如下:
// 字符串通过处理转换成0xAAAA01642710F1AF0A1F1CAB0102634E200E51E337E8AD02
// 实际发送的就是一组十六进制数0xAAAA01642710F1AF0A1F1CAB0102634E200E51E337E8AD02
// 以字符串的形式定义是为了方便查看
String content = "AA AA 01 64 27 10 F1 AF 0A 1F 1C AB 01 02 63 4E 20 0E 51 E3 37 E8 AD 02";
content = content.replace(" ", ""); // 去除空格
content = content.toUpperCase(); // 全转大写
char[] chars = content.toCharArray(); // 转换成字符数组
int length = chars.length / 2;
// 将字符串先转换成整型数据
int[] realNums = new int[length];
for (int i = 0; i < length; i++) {realNums[i] = charToInt(chars[2 * i], chars[2 * i + 1]);System.out.print(Integer.toHexString(realNums[i]) + " "); // 打印信息确认是否转换正确
}
byte[] sendBytes = intGetBytes(realNums); // 将整型数据转换成字节数据用来发送
public static int charToInt(char c1, char c2) {String num = "0123456789ABCDEF";int highBits = num.indexOf(c1);int lowBits = num.indexOf(c2);return (highBits * 16 + lowBits);
}public static byte[] intGetBytes(int[] arrays) {byte[] bytes = new byte[arrays.length];for (int i = 0; i < arrays.length; i++) {bytes[i] = (byte) (arrays[i] & 0xff);}return bytes;
}
设备端上传数据需订阅之前定义的自定义Topic /ProductKey/{ProductKey}/ProductKey/{deviceName}/user/post1
3. 接收设备
与发送端一样,接收端也采用JAVA构建一个MQTT接收端,具体构建方式参考如下网址:
[Paho-MQTT Java接入示例 (aliyun.com)](https://help.aliyun.com/document_detail/146631.html?scm=20140722.S_help%40%40文档%40%40146631._.ID_146631-RL_me域名 审核-LOC_main-OR_ser-V_2-P0_3797)
// 对其中的数据接收函数进行修改
public void messageArrived(String var1, MqttMessage var2) throws Exception {System.out.println("reply topic : " + var1);// 通过追MqttMessage的源码发现,最原始的数据就是payload,其数据类型为byte[]byte[] dataBytes = var2.getPayload();for (int i = 0; i < dataBytes.length; i++) {// 将收到的byte数组转换成对应的无符号整数,并以十六进制字符串的形式进行打印,对比上传与下发的数据是否一致System.out.print(Integer.toHexString(Byte.toUnsignedInt(dataBytes[i])) + " ");}
}
接收端接收数据需订阅之前定义的自定义Topic /ProductKey/{ProductKey}/ProductKey/{deviceName}/user/set1
4. 云产品流转
在前面的内容中,我们已经创建了产品,以及上传数据与下发数据的设备,并创建了相应的客户端,在阿里云物联网平台上,我们想要实现不同设备之间的数据收发,还需要建立相应的云产品流转规则,具体步骤如下:
点击返回旧版后的界面如下:
创建新的规则
规则名称随意,数据格式选择二进制
查看新创建的规则,编写SQL,编写完毕后点击确认
在转发数据一栏添加操作,编写完毕后点击确认
返回上一级界面,启动规则
5. 效果演示
5.1 发送端
5.2 阿里云物联网平台日志
设备到云
规则引擎
云到设备
5.3 接收端
6. 总结
本文讲述了基于阿里云物联网平台的多设备之间实现十六进制数据的传输,主要应用在嵌入式设备中传输传感器数据
基于阿里云物联网平台的设备之间传输十六进制数据相关推荐
- 阿里云物联网平台创建设备
阿里云物联网平台创建设备 阿里云物联网平台创建设备 创建产品 创建设备 在线调试 阿里云物联网平台创建设备 本文演示使用阿里云物联网平台进行产品.设备的创建和使用,模拟调试,观察日志. 创建产品 1. ...
- 微信小程序连接阿里云物联网平台操控设备(IOT)一
文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...
- 微信小程序连接阿里云物联网平台操控设备(IOT)三
文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...
- 微信小程序连接阿里云物联网平台操控设备(IOT)二
文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...
- 合宙Air780e+luatos+阿里云物联网平台完成设备通信与控制(属性上报+4G远程点灯)
一.简介 1.项目介绍 之前发布的文章有采用合宙的4G LTE Cat.1模块,编程语言用的是lua,整体来说代码比较简洁,实现对华为云物联网平台的设备通信与控制,即采用一个变量作为模拟属性定时上报, ...
- 基于阿里云物联网平台,我们这样实现简易出入监控
本文通过一个简单实例,主要介绍了如何使用树莓派快速接入阿里云iot platform,并实现了一个简易的监控人员出入并拍照上送钉钉群的场景 场景 在公司大门入口处布点树莓派和红外感应,实现出入口人员出 ...
- 阿里云物联网平台 > 设备接入 > 使用开放协议自主接入 > CoAP协议接入 >
CoAP连接通信 更新时间:2020-08-27 17:20:05 编辑我的收藏 本页目录 基础流程 使用对称加密自主接入 使用DTLS自主接入 物联网平台支持CoAP协议连接通信.CoAP协议适用在 ...
- 基于阿里云物联网平台实现的简易出入监控
本文通过一个简单实例,主要介绍了如何使用树莓派快速接入阿里云iot platform,并实现了一个简易的监控人员出入并拍照上送钉钉群的场景 场景 在公司大门入口处布点树莓派和红外感应,实现出入口人员出 ...
- 阿里云物联网平台python_基于阿里云物联网平台,我们这样实现简易出入监控
本文通过一个简单实例,主要介绍了如何使用树莓派快速接入阿里云iot platform,并实现了一个简易的监控人员出入并拍照上送钉钉群的场景 场景 在公司大门入口处布点树莓派和红外感应,实现出入口人员出 ...
最新文章
- python 连续矫正_Python实现系统时间自动校正 | 学步园
- Revising Aggregations - Averages(集合函数-avg)
- 把开机时Ctrl+Alt+Delete取消掉了
- java处理excel(java使用Apache POI处理Excel)
- SharePoint 2007/2010 的SPGridView 控件常见的两个问题
- java.io.FileNotFoundException: class path resource [springmvc.xml] cannot be opened
- ios给系统添加分类管理属性
- VS Code配置C/C++
- Java SE 6 中实现 Cookie 功能
- 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一第2章 解读执行计划
- 在线小说阅读器app
- 26个手写大写字母图片
- Udacity机器学习入门笔记——数据集与问题
- 高通骁龙600系列处理器
- 简单谈谈ActiveMQ的两种消费方式
- js 百度地图选择某个位置(选点),获取经纬度信息。
- SF27 | 如何开发一个日内交易模型?
- dhrystone测试前系统软件准备与计算
- jsp标签与指令总结
- FileNotFoundException(/storage/emulated/0/DCIM/Camera/xx.jpg: open failed: EACCES (Permission denied
热门文章
- Revit中如何绘制轴线?CAD图纸转轴网操作
- 【软考 系统架构设计师】计算机组成与体系结构⑥ 流水线
- 计算机电缆2x2x1.5,DJYPVP计算机电缆DJYPVP电缆2x2x1.5线缆
- poj 3686 The Windy's( KM算法 )
- Linux学习-文件操作和属性
- 【高德地图API】如何转到高德坐标系?
- oppo手机出现android什么坏了,OPPO手机提示“停止运行”怎么办 oppo停止运行的解决方法...
- 蓝肽子序列 [蓝桥杯]
- html设置图像路径,Html图像标签、绝对路径和相对路径:
- 【acwing】166. 数独****(DFS)