物联网开发系列(二)·阿里云平台如何建立设备与平台的连接

目录

[1. 为产品定义物模型](#1. 为产品定义物模型)

[1.1 登陆阿里云平台](#1.1 登陆阿里云平台)

[1.2 编辑草稿](#1.2 编辑草稿)

[1.3 物理模型的配置](#1.3 物理模型的配置)

[1.4 查看完整物模型JSON文件](#1.4 查看完整物模型JSON文件)

[1.5 发布物模型](#1.5 发布物模型)

[2. 建立设备与平台的连接](#2. 建立设备与平台的连接)

[2.1 准备开发环境](#2.1 准备开发环境)

[2.2 获取设备端C语言的SDK](#2.2 获取设备端C语言的SDK)

[2.3 解压本地的C语言SDK文件,修改SDK中的设备证书信息](#2.3 解压本地的C语言SDK文件,修改SDK中的设备证书信息)

[2.4 登录Linux虚拟机,执行以下命令,安装所需软件](#2.4 登录Linux虚拟机,执行以下命令,安装所需软件)

[2.5 运行样例程序](#2.5 运行样例程序)


1. 为产品定义物模型

物联网平台支持为产品定义物模型,将实际产品抽象成由属性、服务、事件所组成的数据模型,便于物联网平台管理和数据交互。产品创建完成后,您可以为它定义物模型,产品下的设备将自动继承物模型内容。

本章开始前,请完成:

物联网开发系列(一)·阿里云平台产品的创建以及设备的添加-CSDN博客

1.1 登陆阿里云平台

首先,在①处输入账号和密码,登录"阿里云"。

然后按照顺序,在②处点击"产品",在③处点击"物联网",在④处点击"物联网平台",进入如下页面,点击"管理控制台":

进入如下页面,点击:

1.2 编辑草稿

在左侧导航栏,选择设备管理 ,找打产品 ,在产品列表中找到已创建的产品,单击操作栏的查看

在产品详情页,单击功能定义 页签,然后单击编辑草稿

1.3 物理模型的配置

功能定义 页面的默认模块 ,单击添加自定义功能 ,进行物模型配置,然后单击确认

这里我配置了电压以及电流。

1.4 查看完整物模型JSON文件

单击物模型TSL ,在完整物模型页签下,可看到该产品的完整物模型JSON文件。

1.5 发布物模型

单击功能定义编辑草稿 页面左下方的发布上线

控制台页面会弹出发布物模型上线? 对话框,单击添加发布备注,输入版本号和版本描述。

|--------|---------------------------------------------------------------------|
| 参数 | 说明 |
| 版本号 | 设置当前物模型版本号。后期可根据版本号管理物模型。 版本号支持英文字母、数字和英文句号(.),长度限制1~16个字符。 |
| 版本描述 | 描述当前版本物模型。支持中文汉字、英文字母、日文、数字和特殊符号。长度限制为100个字符。一个中文汉字算一个字符;一个日文算一个字符。 |

如果存在已上线的版本,则需要进行比对,确认新版本的修改点。

单击比对结果 ,在比对结果 对话框中查看修改点。确认无误后,单击确认查阅 ,回到发布物模型上线对话框,自动选中"确认已查看当前版本与线上版本的比对结果"前的复选框。

如果不需要比对,您可直接手动选中"确认已查看当前版本与线上版本的比对结果"前的复选框。

单击确定,完成物模型的发布。

2. 建立设备与平台的连接

阿里云物联网平台提供设备端SDK,设备使用SDK与平台建立通信。

2.1 准备开发环境

本文使用Linux下的设备端C语言SDK。该SDK的编译环境推荐使用64位的Ubuntu16.04。SDK的开发编译环境会用到以下软件:make(4.1及以上版本)、gcc(5.4.0及以上版本)。

可以使用如下命令行安装:

sudo apt-get install -y build-essential make gcc

2.2 获取设备端C语言的SDK

在左侧导航栏单击文档与工具 ,然后在设备接入SDK 区域的Link SDK 下,单击SDK定制

高级能力 下,单击物模型 ,其他参数使用默认配置,然后单击开始生成后,会在本地下载C语言SDK的ZIP文件。

2.3 解压本地的C语言SDK文件,修改SDK中的设备证书信息

请单击:

链接: https://pan.baidu.com/s/1V1PbjfJVT-mbykC4HPrcZQ?pwd=h4n4

提取码: h4n4

下载data_model_basic_demo.c文件,替换掉2.2生成的SDK文件\LinkSDK\demos路径下的data_model_basic_demo.c文件,然后修改以下参数。

char *product_key       = "a2***";
char *device_name       = "device1";
char *device_secret     = "8c684ef***";
...
...
char  *mqtt_host = "a2***.iot-as-mqtt.cn-shanghai.aliyuncs.com";

|---------------|------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
| 参数 | 示例 | 说明 |
| mqtt_host | * 新版公共实例的示例:iot-cn-***.mqtt.iothub.aliyuncs.com * 旧版公共实例的示例:a2***.iot-as-mqtt.cn-shanghai.aliyuncs.com | 设备的MQTT接入域名。 * 新版公共实例:在实例详情 页面单击右上方的查看开发配置 ,在开发配置面板查看接入域名。 * 旧版公共实例:接入域名格式为${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com。 |
| product_key | a2*** | 设备认证信息。即完成添加设备后,您保存至本地的设备证书。 您也可以在物联网平台的设备详情页查看设备的认证信息。 |
| device_name | device1 | 设备认证信息。即完成添加设备后,您保存至本地的设备证书。 您也可以在物联网平台的设备详情页查看设备的认证信息。 |
| device_secret | 8c684ef*** | 设备认证信息。即完成添加设备后,您保存至本地的设备证书。 您也可以在物联网平台的设备详情页查看设备的认证信息。 |

对于product_key、device_name**、**device_secret数据的获取可以参考下面链接3.3的内容:

物联网开发系列(一)·阿里云平台产品的创建以及设备的添加-CSDN博客

如下图,找到添加的设备点击查看即可:

对于mqtt_host,如下:

将上述数据,复制粘贴到对应位置即可,需要注意的是,对于mqtt_host,并不是完全覆盖掉:

char  *mqtt_host = "实例ID.mqtt.iothub.aliyuncs.com";

2.4 登录Linux虚拟机,执行以下命令,安装所需软件

sudo apt-get install -y build-essential make gcc

将步骤2.3中已修改完成的LinkSDK文件,上传至Linux虚拟机的开发环境,在SDK根目录/LinkSDK下,执行make命令,完成样例程序的编译:

make clean
make

生成的样例程序data-model-basic-demo存放在./output目录下。

2.5 运行样例程序

./output/data-model-basic-demo

运行成功后,如下图所示:

登录物联网平台控制台,进入公共实例页面,查看设备状态和运行状态。

左侧导航栏选择设备管理 > 设备 ,找到目标设备,查看设备状态。设备状态显示为在线,则表示设备与物联网平台成功连接。

单击设备对应操作栏的查看 ,进入设备详情 页面,单击物模型数据 页签,然后单击运行状态,查看设备的运行状态。

data_model_basic_demo.c文件中代码示例,上报了工作电流的值,如下图所示。

物联网开发_时光の尘的博客-CSDN博客

相关推荐
qq_459730031 分钟前
4-3 MCU中ARM存储器的作用
arm开发·单片机·嵌入式硬件
中科岩创24 分钟前
中科岩创边坡自动化监测解决方案
大数据·网络·物联网
Rinai_R1 小时前
计算机组成原理的学习笔记(7)-- 存储器·其二 容量扩展/多模块存储系统/外存/Cache/虚拟存储器
笔记·物联网·学习
老刘莱国瑞2 小时前
STM32 与 AS608 指纹模块的调试与应用
python·物联网·阿里云
嵌入式科普3 小时前
嵌入式科普(24)从SPI和CAN通信重新理解“全双工”
c语言·stm32·can·spi·全双工·ra6m5
重生之我是数学王子3 小时前
点亮核心板小灯 STM32U575
stm32·单片机·嵌入式硬件
end_SJ3 小时前
初学stm32 --- 定时器中断
stm32·单片机·嵌入式硬件
南城花随雪。3 小时前
单片机:实现数码管动态显示(0~99999999)74hc138驱动(附带源码)
单片机·嵌入式硬件
南城花随雪。6 小时前
单片机:实现信号发生器(附带源码)
单片机·嵌入式硬件
灵槐梦7 小时前
【速成51单片机】2.点亮LED
c语言·开发语言·经验分享·笔记·单片机·51单片机