【IoT】0基础玩转华为IoT学习分享

举报
Jack20 发表于 2021/05/16 23:10:20 2021/05/16
【摘要】       这次有幸收到了邀请参加华为2021HDC大会, 这次旅途真是受益匪浅,认识了许多华为的技术大牛,一起讨论了好多东西,也学到了很多,我将继续努力虚心学习,不负众望,冲冲冲~      同时也面基了咱美美哒IoT小助手小姐姐      线上线下一起学习华为云IoT  场景体验+动手实验【HDC2021】0基础玩转华为云IoT:https://bbs.huaweicloud.com/f...

      这次有幸收到了邀请参加华为2021HDC大会, 这次旅途真是受益匪浅,认识了许多华为的技术大牛,一起讨论了好多东西,也学到了很多,我将继续努力虚心学习,不负众望,冲冲冲~

      同时也面基了咱美美哒IoT小助手小姐姐

      线上线下一起学习华为云IoT  场景体验+动手实验【HDC2021】0基础玩转华为云IoT:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=117766

1.你的职业/工作内容是什么?

      我现在是一名高校大三的小萌新,计算机科学与技术专业,现任华为云HERO联盟盟主,华为云·云享专家,华为云IoT云享专家,华为云优秀学生代表,华为鲲鹏论坛外部版主、学院团总支委员会委员,学院网络工作室架构师,华为云优秀云创贡献官,华为云2020年度人物-校园之星,我特别喜欢分享,就像前面老师们说的开源精神,虽然我拥有的并不多,但我很乐意分享,我会把我学到的知识呀经验呀,总结起来说给其他小伙伴们听,一起交流一起进步,三个臭皮匠顶个诸葛亮嘛

2. 你擅长哪些技术/语言/领域?

      比较喜欢和研究云计算、大数据、物联网、人工智能、算法、数据结构、操作系统、编译原理、计算机组成原理、计算机体系结构、计算机网络这一块知识,熟悉相关的物联网方面知识,熟悉华为海思Hi3861产品

3.     因何参与本次活动:奖品/知识/技能/体验/其他?

      参加这次活动,主要是为了能够提高自己的专业知识,掌握一技之长,同时通过小实践来增加对华为云IoT产品的熟悉和使用技巧,好分享给学校里喜欢的同学们一起研究,同时也为接下来的比赛增加点思路和开发能力,同时通过这次活动也让我认识了许多小伙伴和技术大牛们,超开心,真的是受益匪浅,学有所成

4.    是否第一次使用华为云IoT产品?体验如何

      已经有数不清多少次使用华为云IoT产品了,哈哈哈,参加过好多次IoT的活动和体验,而且也成功拿到了3个华为云IoT的微认证了,就差HCIA-IoT(疯狂暗示小助手,嘿嘿嘿)每次都收获满满,学到很多超有用的干货,还有一些有意思的训练营,就比如前久的HCIA-IoT训练营,成绩也蛮不错,差点就抽到HCIA考试券了,有点小遗憾;使用华为云IoT产品有超详细的说明文档,但是有时候会有一点琐碎,就是在解决一个问题时得找好多个文档感觉有点麻烦,不过慢慢的都在变的越来越好了,而且还有超详细的学习路线,超赞~

5.     在体验过程中遇到了哪些问题?如何解决的?6.     在操作过程中有哪些小技巧可以分享给大家?

      就是在第一关场景体验那里,三个设备注册完成,查看设备列表,显示的是未激活状态,但是截图要求是在线状态,我觉得这个小问题有点意思,留给读者思考的空间,让我想到了我以前常用的一个软件来解决——华为设备模拟器HubSimulator.jar

下载链接给大家:https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/internet-wisdom-lamp/HubSimulator.jar

嘿嘿嘿,于是我翻箱底,找见了它,连接模拟设备后不就激活了嘛,不就是在线状态了嘛,这也是操作过程中的小技巧可以分享给大家,理论存在实践开始:

①服务IP:进入“服务列表”-> “物联网”->“设备接入IoTDA”,在左侧栏选择“总览”,复制使用MQTT/MQTTS接入信息的域名。

②设备ID:配置智慧路灯应用,注册设备成功后返回的设备Id

③设备密钥:配置智慧路灯应用,注册设备成功后返回的密钥配置好以上参数后,点击“建立连接”按钮。

嘿嘿嘿,连接成功,完美解决,而且这个还是中文版的还是熟悉的操作,熟悉的配方,所以接下来的步骤都轻车熟路,三下五除二,搞定~

1.png

7.     对华为云IoT的产品/活动/其他 有何建议?

      无论是活动还是产品,都很赞,有超详细的教程,有丰富多彩的活动,和小奖品,还有沙箱小实践,都是很不错的学习机会,学练结合的方式超赞,而且还有那么多的干货,超赞啊,受益匪浅,超详细的学习路线,唯一就是学习微认证(基于物联网平台的自贩机销量分析)里的视频,感觉声音听着特别难受,声音处理的很不清晰,而且有点尖锐,很刺耳,感觉不是很好

 其他IoT相关产品使用或体验总结&技术干货分享

华为云IoT应用侧开发

为了降低应用侧的开发难度、提升应用侧开发效率,物联网平台向应用侧开放了 API。开发者可以调用开放的 API,快速集成物联网平台的功能,如产品管理、设备管理、订阅管理、设备
命令、规则管理等功能。

应用侧需先通过 IAM 服务鉴权,获取 Token 后,方可实现相关产品管理、设备管理等功能。

 如何调用 API

华为云物联网平台提供多样的北向 Restful API 接口给应用开发者,方便应用开发者能够基于平台提供的能力快速开发出物联网应用。

 构造请求

请求 URI 由如下部分组成:

{URI-scheme} :// {Endpoint} / {resource-path} ? {query-string}

尽管请求 URI 包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。

URI-scheme:表示用于传输请求的协议,当前所有 API 均采用 HTTPS 协议。
Endpoint:指定承载 REST 服务端点的服务器域名或 IP,不同服务不同区域的 Endpoint 不同,您可以从地区和终端节点中获取。例如物联网平台在“华北-北京四”区域的 Endpoint 为
“iotda.cn-north-4.myhuaweicloud.com”。
resource-path:资源路径,也即 API 访问路径。从具体 API 的 URI 模块获取,例如“查询产品”API 的 resource-path 为“/v5/iot/{project_id}/products/{product_id}”。
query-string:查询参数,是可选部分,并不是每个 API 都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过 10 条数据。
例如您需要在物联网平台获取在“华北-北京四”区域下的指定产品信息,则需使用“华北-北京四”区域的 Endpoint(iotda.cn-north-4.myhuaweicloud.com),并在查询产品的 URI 部分找到 resource-path(/v5/iot/{project_id}/products/{product_id}),拼接起来如下所示。

https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id}

请求方法

HTTP 请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。
GET:请求服务器返回指定资源。
PUT:请求服务器更新指定资源。
POST:请求服务器新增资源或执行特殊操作。
DELETE:请求服务器删除指定资源,如删除对象等。
HEAD:请求服务器资源头部。
PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH 可能会去创建一个
新的资源。
在查询产品的 URI 部分,您可以看到其请求方法为“GET”,则其请求为:

GET https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id}


请求消息头

附加请求头字段,如指定的 URI 和 HTTP 方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。
如下公共消息头需要添加到请求中。
Content-Type:消息体的类型(格式),必选,默认取值为“application/json”,有其他取值时会在具体接口中专门说明。
X-Auth-Token:用户 Token。当使用 Token 方式认证时,必须填充该字段,可通过调用获取用户 Token 接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。
对于查询产品接口,由于需要认证,所以需要添加“Content-Type”和“X-Auth-Token”到头域,添加消息头后的请求如下所示。

GET https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id}
Content-Type: application/json
X-Auth-Token:******

请求消息体

请求消息体通常以结构化格式发出,与请求消息头中 Content-type 对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为 UTF-8 编码。
每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE 操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而
定。
对于创建产品接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,如:其中 name 为产品名称,device_type 为设备类型,protocol_type 为设备使用的协议类型。

POST https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/abab***cdcd/products
Content-Type: application/json 
X-Auth-Token: ********
{
 "name" : "Thermometer",
 "device_type" : "Thermometer",
 "protocol_type" : "MQTT",
 "data_format" : "binary",
 "manufacturer_name" : "ABC",
 "industry" : "smartCity",
 "description" : "this is a thermometer produced by Huawei",
 "service_capabilities" : [ {
 "service_type" : "temperature",
 "service_id" : "temperature",
 "description" : "temperature",
 "properties" : [ {
 "unit" : "centigrade",
 "min" : "1",
 "method" : "R",
 "max" : "100",
 "data_type" : "decimal",
 "description" : "force",
 "step" : 0.1,
 "enum_list" : [ "string" ],
 "required" : true,
 "property_name" : "temperature",
 "max_length" : 100
 } ],
 "commands" : [ {
 "command_name" : "reboot",
 "responses" : [ {
 "response_name" : "ACK",
 "paras" : [ {
 "unit" : "km/h",
 "min" : "1",
 "max" : "100",
 "para_name" : "force",
 "data_type" : "string",
 "description" : "force",
 "step" : 0.1,
 "enum_list" : [ "string" ],
 "required" : false,
 "max_length" : 100
 } ]
 } ],
 "paras" : [ {
 "unit" : "km/h",
 "min" : "1",
 "max" : "100",
 "para_name" : "force",
 "data_type" : "string",
 "description" : "force",
 "step" : 0.1,
 "enum_list" : [ "string" ],
 "required" : false,
 "max_length" : 100
 } ]
 } ],
 "option" : "Mandatory"
 } ],
 "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka"
}

 认证鉴权

调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。
Token 认证:通过 Token 认证通用请求。
AK/SK 认证:通过 AK(Access Key ID)/SK(Secret Access Key)加密调用请求。
Token 认证:
Token 是服务端生成的一串字符串,作为客户端进行请求的一个令牌。第一次登录后,服务器生成一个 Token 并将此 Token 返回给客户端,以后客户端只需带上这个 Token 前来请求数据即可,无需再次带上用户名和密码。Token 有效期是 24 小时,从客户端获取开始算起(24 小时是相对时间),需要使用同一个 Token 鉴权时,建议缓存起来使用,避免频繁调用。在 Token 过期前,务必刷新 Token 或重新获取 Token,否则 Token 过期后会在服务端鉴权失败。

如果您获取 Token 多次,以最新的为准,前面的 Token 会被覆盖并失效。Token 在计算机系统中代表令牌(临时)的意思,拥有 Token 就代表拥有某种权限。Token认证就是在调用 API 的时候将 Token 加到请求消息头,从而通过身份认证,获得操作 API 的权限。
调用获取 IAM 用户 Token(使用密码)接口获取 Token,调用样例如下:

POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 
Content-Type: application/json 
{ 
 "auth": { 
 "identity": { 
 "methods": [ 
 "password" 
 ], 
 "password": { 
 "user": { 
 "name": "username", 
 "password": "********", 
 "domain": { 
 "name": "domainname" 
 } 
 } 
 } 
 }, 
 "scope": { 
 "project": { 
 "name": "xxxxxxxx" 
 } 
 } 
 } 
}

注:“username”即 IAM 用户名、“password”即登录华为云密码、“domainname”即账号名,“projectname”项目。

接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户 Token。获取 Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值为获取到的 Token。例如 Token 值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。

GET https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id}
Content-Type: application/json 
X-Auth-Token: ABCDEFJ....

AK/SK 认证:
AK/SK 签名认证方式仅支持消息体大小 12M 以内,12M 以上的请求请使用 Token 认证。
AK/SK 认证就是使用 AK/SK 对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。
AK(Access Key ID):访问密钥 ID。与私有访问密钥关联的唯一标识符;访问密钥 ID 和私有访问密钥一起使用,对请求进行加密签名。
SK(Secret Access Key):与访问密钥 ID 结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。
使用 AK/SK 认证时,您可以基于签名算法使用 AK/SK 对请求进行签名,也可以使用专门的签名 SDK 对请求进行签名。
签名 SDK 只提供签名功能,与服务提供的 SDK 不同,使用时请注意

返回结果

状态码:
请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。
状态码是一组从 1xx 到 5xx 的数字代码,状态码表示了请求响应的状态,完整的状态码列表请参见状态码。
对于创建产品接口,如果调用后返回状态码为“201”,则表示请求成功。
响应消息头:
对应请求消息头,响应同样也有消息头,如“Content-type”等。
对于创建产品接口,平台会返回“Content-type”、Date 等消息头。
响应消息体:
响应消息体通常以结构化格式返回,与响应消息头中 Content-type 对应,传递除响应消息头之外的内容。



    华为云IoT开发者社区    



提供 IoT开发所需要的开发者平台、API/SDK参考、开发指南、代码样例、开发工具、视频课程等各类资源

助力开发者快速完成物联网产品与解决方案的开发


【活动合集】>>  IoT 社区活动实时更新,参与0门槛,回帖就有奖,来赢万元大奖!

【干货合集】>>  从入门、实战到落地,华为“端边云”IoT全栈开发实战指南!

【资源汇总】>>  IoT 开发者社区,专家直播、免费资源、课程、实验、认证,你要的通通有!

【交流求助】>>  IoT 论坛,问题求助、交流吐槽、分享学习,专家在线等你!


华为云IoT,从联接使能、数据使能、生态使能三个维度,提供端边云一体协同的全场景物联网云服务,持续构建万物互联的智能世界。

  • 联接使能:通过LiteOS、IoT边缘、设备接入管理、全球SIM联接等服务,覆盖端侧开发、边云接入、流量管理等环节,使能万物极简接入,上电即上云;

  • 数据使能:IoT数据分析服务,以高性能的孪生建模能力构建IoT数字孪生,进一步释放IoT数据潜力;

  • 生态使能:IoT Stage,以标准物模型为核心,面向伙伴提供一站式的体验、设计、集成平台,加速伙伴商业变现。

华为云IoT聚焦物联网基础设施建设,联合伙伴,共筑产业繁荣,以联合创新的行业物联网解决方案,加速千行百业的智能升级。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。