摘要:《物联网平台接口调用实验》详细讲解了API Explorer的应用,根据提供的接口,结合真实案例,制作了一个小程序,真正的把它应用起来,解放重复劳动,小程序是一个很好的平台,作为应用侧应用作为快速App环境。

本文分享自华为云社区《华为云IoT API Explorer对接小程序实现系统化应用》,作者: 神龙居市 。

《物联网平台接口调用实验》详细讲解了API Explorer的应用,根据提供的接口,结合真实案例,制作了一个小程序,真正的把它应用起来,解放重复劳动,小程序是一个很好的平台,作为应用侧应用作为快速App环境。

准备资料

1、华为云账号,并开通IoTDA控制台,选择北京四区域,创建好资源空间。

2、小熊派Bearpi-HM Nano开发板,和E53_IA1扩展版,

3、微信小程序账号,如果没有认证,也可以用开发临时账号运行。

4、小熊派其中一个案例,并导出Profile文件。Profile文件和API 接口数据字段有差异可以批量替换

工作原理和使用到的API Explorer接口。

工作流程和调用接口关系如图

接口调用封装代码

1、首先是登陆接口,需要在北京四区域开通IoT平台的资源空间权限

//请求Token的json数据格式
var tokenReq = require('../jsons/reqJson/tokenReq.js');
// 认证得到Token
//X-Auth-Token
//token.project.id
export function authToken(params) {var data = tokenReq.reqTokenJson;data.auth.identity.password.user.name = params.iamAccountdata.auth.identity.password.user.password = params.iamPassworddata.auth.identity.password.user.domain.name = params.accountconsole.log("auth_data", data)return request({url: `${global.IAMEndpoint}/v3/auth/tokens`,method: 'post',data: data})
}
//从token中获得project_id,作为全局数据,以备后用
wx.setStorageSync('project_id', res.token.project.id)

2、查找和初始化资源,如果project_id对应的指定名称的资源空间是否存在,否则创建资源空间

//检查资源产品
let params ={ 'project_id': global.project_id }
init(params, res => {
global.products = res;
wx.navigateTo({url: '../home/index',})
})
export function init(params, func) {getAppSpace({"project_id": params.project_id}).then(res => {var app_name = global.app_name;var applications = res.applications;for (var item of applications) {if (item.app_name == app_name) {global.app_id = item.app_idbreak;}}if (global.app_id) {console.log('app_id', global.app_id);func(true)} else {addAppSpace({'project_id': global.project_id || wx.getStorageSync('project_id')}).then(res => {global.app_id = res.app_idconsole.log('app_id', global.app_id);func(true)})}});
}

3、添加设备是中选定产品后添加,所以在添加设备的同时,先检查产品是否存在,不存在先创建产品。我这里的产品是通过Profile编辑的,说到这里要吐槽一下,通过IoTDA平台编辑导出的Profile文件和API Explorer接口不一致,json结构是一致的,但是字段名称不一致。对此我也在平台上反应过,已经被采纳,但是还没有实现。IOT的APIExplorer接口CreateProduct参数与Profile不一致_建议反馈_开发者中心-华为云 (huaweicloud.com)

  addOrGetDevice: function (func) {//检查输入var json = deviceCreate.deviceCreateJson;json.node_id = this.data.device_namejson.device_name = this.data.device_name// json.project_id = global.project_idjson.product_id = global.product_idjson.app_id = global.app_id//产品是否存在this.checkProduct(this.data.selectedProduct, product => {//检查设备,创建设备var has = this.data.devices.filter((x) => {return x.device_name == this.data.device_name;});if (has == false) {var params = {"deviceCreateJson": {"node_id": this.data.device_name,"device_name": this.data.device_name,"product_id": product.product_id,"app_id": product.app_id,"description": "XXXXXX device"},"project_id": global.project_id}addDevice(params).then(device => {if (device.device_id) {this.setData({showAddDevice: false})func({device_id: device.device_id,secret: device.auth_info.secret}, {ssid: this.data.wifiSSID,pwd: this.data.wifiPwd})} else {wx.showModal({title: '创建设备失败',content: `${res.error_msg}`,showCancel: false})}})} else {func(null, {ssid: this.data.wifiSSID,pwd: this.data.wifiPwd})}})}

4、设备的动态展示,根据产品的Profile属性而来。设备属性值不能直接通过设备读取,这里读取的设备影子数据

//影子属性
export function getDeviceProperties(params) {if (!params) params = {}let project_id = params.project_id || global.project_id || wx.getStorageSync('project_id')let device_id = params.device_idreturn request({url: `${global.IOTDAEndpoint}/v5/iot/${project_id}/devices/${device_id}/shadow`,method: 'get'})
}

小程序的相关界面

点击关注,第一时间了解华为云新鲜技术~

解放重复劳动丨华为云IoT API Explorer对接小程序实现系统化应用相关推荐

  1. 华为云物联网平台的微信小程序开发

    第0章 简介 上上期出了一个华为云物联网平台的Android APP应用开发教程, 根据后台的私信,包括华为云物联网IOT论坛里和公众号里,发现大家对物联网平台的移动端的开发需求还是很大的,接下来,带 ...

  2. 华为云MVP熊保松谈物联网开发:华为云IoT是首选,小熊派是神器

    摘要:在AI.5G的技术驱动下,物联网行业的发展愈加如火如荼,开发者在技术的快速更迭间,也得乘风破浪跟上新技术的节奏. 在AI.5G的技术驱动下,物联网行业的发展愈加如火如荼,开发者在技术的快速更迭间 ...

  3. 华为云IOT平台设备获取api调用笔记

    目的:验证华为云IOT平台的设备获取接口连通性 1.注册IAM账户 地址:https://console.huaweicloud.com/iam/?region=cn-north-4#/iam/use ...

  4. 手把手实践丨基于STM32+NBIOT+华为云IOT设计智能井盖

    摘要:本文介绍基于STM32微控制器.BC26 NBIOT模组和华为云IOT平台,实现了一款智能井盖系统. 本文分享自华为云社区<基于STM32+NBIOT+华为云IOT设计的智能井盖>, ...

  5. 动手实践丨使用华为云IoT边缘体验“边云协同”

    摘要:"边云协同",即云端与边缘的协同.通过边云通道,部署在边缘节点上,并实现在云端远程管理应用,保障部署在边缘的应用能够正常运行,并通过与云端的连线,将业务执行结果在云端呈现. ...

  6. 直击Huawei Mate 40产线背后的华为云IoT智能制造

    摘要:数字孪生?在数字世界找到物理世界的设备! 本文分享自华为云社区<[云驻共创]Huawei Mate 40产线直击之华为云IoT智能制造助力工厂数字化转型>,原文作者:启明. Part ...

  7. IDC MarketScape:华为云IoT物联网平台位居领导者象限

    [摘要] 华为云IoT物联网平台在能力.战略和市场表现方面,均位列业界领导者阵营. 在全球权威信息与分析咨询公司IDC最新发布的<IDC MarketScape: 中国公有云物联网平台2019年 ...

  8. 华为云IoT设备接入服务全体验

    摘要:华为云IoT设备接入服务,海量设备,一键接入,你值得拥有! 本文分享自华为云社区<[云驻共创]Huawei Mate 40产线直击之 华为云IoT设备接入服务全体验>,原文作者:启明 ...

  9. 聊聊如何在华为云IoT平台进行产品开发

    本文分享自华为云社区<如何基于华为云IoT物联网平台进行产品开发>,作者: Super.雯 . 华为云物联网平台承载着南北向数据互通的功能职责.在华为云物联网平台基础上实现端到端物联网业务 ...

最新文章

  1. 布线须知:机柜在数据中心机房的三个新用途
  2. linux服务之drbd
  3. 不是技术也能看懂搜索引擎
  4. 【Python】青少年蓝桥杯_每日一题_9.19_三行英文字母
  5. Shell编程基础---shell的结构、执行及变量
  6. hibernate与jpa_将JPA Hibernate与OptaPlanner集成
  7. java gb13000 ucs2_采用GB 13000的UCS-2进行存储的文件怎么转换
  8. 面试中该如何介绍项目?
  9. Nginx模拟负载均衡
  10. 阅读笔记 火球UML大战需求分析4
  11. JavaEE Tutorials (7) - 在会话bean中使用异步方法调用
  12. 使用Ant打包Android应用具体解释——Ant使用解析
  13. 第二节:使用反射构建动态可扩展应用程序
  14. NYOJ74 - 小学生算术
  15. 数学基础加强2---概率论与贝叶斯先验
  16. Linux下查看CPU型号,内存大小,硬盘空间,进程等的命令(详解)
  17. CV笔记5:图像分割之最大类间方差法、自适应阈值分割(基于python-opencv实现)
  18. three.js 三维室内地图导航实例
  19. CC00416.CloudKubernetes——|KuberNetesNetworkPolicy.V08|——|NetworkPolicy.v08|隔离中间件服务.v04|
  20. Android开发之如何自定义垂直方向的SeekBar

热门文章

  1. HTML5 Canvas中绘制矩形
  2. Bootstrap 拼接式按钮菜单
  3. CSS 制作下拉导航
  4. ROS笔记(17) Gazebo
  5. php 星座运势_星座运势查询示例代码
  6. sql统计系统时间那一个月数量_关于BE00007图书借阅管理系统bug修复总结
  7. golang byte转string_golang版memcached之groupcache缓存入门
  8. webstorm 设置js或者html文件自动缩进为4个空格不生效
  9. Swift 全功能的绘图板开发
  10. leetcode 85 python