阿里云开发板HaaS510报送设备属性
摘要:HaaS510开发板可以使用移动网络通信,从而拜托wifi信号依赖。它还支持JavaScript语言,用极简的语句实现非常可靠的上云操作。本文与大家分享上云之后,如何将设备的属性报送到物联网平台。
实验目的:通过haas510间隔5秒钟上报一次智能灯的开关属性LightSwitch,每次翻转。
硬件:haas510 (2.0版本),USB串口
软件:win7 x64,vscode
目录
1.开发环境准备
2.物联网云平台设备注册
3.连接硬件
4.编写代码
5.运行效果
6.延伸阅读:JSON.stringify
1.开发环境准备
如果您已经配置好了基于vscode的haas-studio开发环境,请跳过此步。
如果没有,请参考文章
阿里云开发板vscode开发环境搭建https://blog.csdn.net/youngwah292/article/details/120356887?spm=1001.2014.3001.5501
2.物联网云平台设备注册
如果已注册完成,请跳过此步。
如果没有,请参考文章
阿里云开发板HaaS510连接物联网平台--HaaS征文https://blog.csdn.net/youngwah292/article/details/120358210?spm=1001.2014.3001.5501
3.连接硬件
按照下图方式进行连接
4.编写代码
代码如下所示。请注意,作者将错误的代码也展示出来了,便于大家对比学习。Interval的中文意思是“间隔; (时间上的)间隙; 间歇”。这里我们设置间隔5秒钟。
每隔5秒的操作是通过调试串口发送一个信息,这个信息就相当于指示灯,告诉开发者,程序正常运行中。
每隔5秒钟,510开发板还会向物联网平台报送一次属性。属性的名字是LightSwitch,值是0或者1。语句lightSwitch = 1 - lightSwitch的意思就是每次报送之前都会翻转。
var iot = require('iot');
var network = require('network');
var net = network.openNetWorkClient();
/* 设备三元组信息获取请参考common目录下的iot组件说明 */
var productKey = 'gcXXXXXjX';
var deviceName = 'light001';
var deviceSecret = 'b25XXXXXXXXXXXXXXXXXXXXXXXXXXX6db';
// 构建物联网连接实例
var device;
var lightSwitch = 0;
net.on('connect', function () {device = iot.device({productKey: productKey,deviceName: deviceName,deviceSecret: deviceSecret,region: 'cn-shanghai',success: function () {console.log('iot: [success] connect');},fail: function () {console.log('iot: [failed] connect');}});
})setInterval(function () {lightSwitch = 1 - lightSwitch;console.log('Hello World, time: ' + new Date());/* 错误示范 iot.postProps({payload: {LightSwitch:'0'}})*/
/*正确示范,要想发送属性,就得使用stringify才行*/device.postProps(JSON.stringify({LightSwitch: lightSwitch}));}, 5000);
注意,我们用到了一个方法。如果不用这个方法,比如我们直接用payload: {LightSwitch:'0'}将会带来语法错误。如下图所示,这个截图来自于连接到DEBUG UART的串口助理程序。
修改这个错误的方法也很简单,就是调用JSON.stringify。这个方法起到什么作用?
它的作用是方法用于将 JavaScript 值转换为 JSON 字符串。
使用这个方法,就可以非常简便地实现属性上报。
5.运行效果
登录物联网平台,观察指定设备(本文是light001)的物模型数据,可以看到属性成功上报。
打开串口助理,观察DEBUG UART的输出,可以看到间隔5秒钟显示hello world字符串。假如有错误,间隔5秒钟,除了helloworld,还有其他错误信息。
也可以让物模型实时刷新,这样就可以观察“主灯开关”属性,间隔5秒钟就变化一次。实验成功。
haas-studio提供了一个比较完整的温度测试程序iot-sensor(LM75温度检测程序)。这个例程提供的是IIC接口驱动代码。显得比较复杂。对于新手来说,代码越简单越便于学习。所以本文就做了一个简单的定时发送翻转属性的例子。程序简单,只突出关键问题。
上报属性是一个基本功能,也是物联网知识中的关键内容。做出物联网设备之后,能够将设备状态报云平台感知,是一项物联网设备开发的难点,编程时,经常会犯错。
尤其是参考阿里云的文档之后,出现错误不知如何解决的同学,掌握本文所述的技能是一个非常必要的工作。
6.延伸阅读:JSON.stringify
本部分参考6.延伸阅读:JSON.stringify
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
它的语法是
JSON.stringify(value, replacer, space)
要转换的 JavaScript 值通常为对象或数组。例如我们使用的bool型数据0或者1.
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。
如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。
space是文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。
下面用一个例子来演示JSON.stringify() 的详细用法和运行效果。
var str = {"name":"菜鸟教程", "site":"http://www.runoob.com"}
str_pretty1 = JSON.stringify(str)
document.write( "只有一个参数情况:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty1 + "</pre>" );document.write( "<br>" );
str_pretty2 = JSON.stringify(str, null, 4) //使用四个空格缩进
document.write( "使用参数情况:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty2 + "</pre>" ); // pre 用于格式化输出
运行效果如下图所示。
阿里云开发板HaaS510报送设备属性相关推荐
- 阿里云开发板HaaS510响应UART串口指令
摘要:开发物联网设备时,常用MCU+物联网模块的硬件结构,HaaS510就是一款非常好的物联网模块.本文与大家分享HaaS510在成功上云基础上,如何响应UART串口指令. 实验目的:通过haas51 ...
- 【技术详解】阿里云AIoT物模型支撑设备规模已超亿级
简介:本文介绍的物模型技术,对于阿里云AIoT来说,物模型技术早已沉淀多年,所以能够让各种硬件产品实现真正的智能化连接. 物模型技术对于物联网企业来说是一项非常重要的技术,因为要实现万物互联,必须要有 ...
- 移动云物联网预研及阿里云开发对比分析
1 移动云物联网预研总体架构 本方案采用Layui作为前端框架,选用了华为云耀云服务器存储网站应用,用户可通过访问公网IP的方式浏览网站,网站页面根据用户选择的功能定时与OneNET云端进行数据交互. ...
- 安信可 ESP8266机智云开发板:编译与烧录
安信可 ESP8266机智云开发板:编译与烧录 编译:1.SDK 开发环境搭建见 安信可ESP系列一体化开发环境搭建 下载地址:http://pan.ba ...
- 阿里云开发大会——体验云效智能代码补全
简介:5月29日阿里云开发大会「智能开发与高效运维」分论坛上,云效请来12位阿里巴巴开发运维领域专家,聚焦分享阿里云赋能开发者的系列工具和实践.现场动手训练营吸引近千位开发者体验云原生开发部署.代码安 ...
- uniapp 阿里云开发微信小程序一键登录
1.插件市场导入uni-id公用模块 插件市场 uni-id : https://ext.dcloud.net.cn/plugin?id=2116 导入成功后会在项目云文件夹下自动生成common目录 ...
- 阿里云开发——Node JS模拟钢琴的开发与部署
[安工云原生大赛]利用阿里云开发平台模拟实现在线钢琴 开发网页钢琴的意义 钢琴是所有乐器中唯一能以最轻松的姿势坐着,以肩.臂.肘.腕最自然放松的状态操作演奏的乐器,使人学习起来最少身体上的负担和动作上 ...
- 阿里“云开发“小程序(uniCloud)
博主ps: 网上资料少的可怜,哎,腾讯云涨价了,论服务器,我肯定选的阿里,再着你们对比下uniCloud的报价就知道了,如果有钱就另当别论了. 所以这片博文,博主试过之后,先抛出来答案,阿里云的云开发 ...
- 阿里云开发月老盲盒纸条交友小程序源码及配置教程
说明: 阿里云开发的超火月老忙盒交友小程序 可自定义存取价格,配置流量主 可选择抽取同城和全国范围的纸条 安装简单,无需服务器,采用阿里云开发相比腾讯云成本更低 采用vue开发,运行响应速度快 前端是 ...
最新文章
- 智能车竞赛云上比赛第二天
- 音乐游戏 简单模拟,字符串,cin.get,getchar,流同步(女赛)
- 【Java5】String类,StringBuilder类,ArrayList类,Object类(toString,equals,hashCode)
- ActiveMQ 消息持久化到Mysql数据库
- WPF Grid动态显示或隐藏一列的一种方法
- CF11D-A Simple Task【状压dp】
- logging模块(* * * * *)
- iview -- vue modal 显示到最顶层 层级
- 面试官系统精讲Java源码及大厂真题 - 15 CopyOnWriteArrayList 源码解析和设计思路
- electron 解压zip_node.js实现简单的压缩/解压缩功能示例
- java datainputstream_Java中DataInputStream的用法
- getFullYear 方法
- spring整合大全
- Sklearn fit , transform ,fit_transform
- WebService接口实际场景应用(一)
- 给editplus加一个主题
- 怎样识别app网站服务器在国外,APP服务器你了解多少?什么是海外app服务器
- excel插入图片(利用vba)
- ajax技术的实质是什么意思,什么是Ajax?Ajax的原理是什么?Ajax的核心技术是什么?Ajax的优缺点是什么?...
- cocos2dx2.2添加音乐音效以及设置音量
热门文章
- vulnhub之hacksudo FOG
- 【网络】HTTP协议详解
- liunx 系统 一键安装
- ROS2 humble + windows10,如何安装调试rplidar a1激光扫描传感器
- 十四届全国大学生“恩智浦”杯智能汽车竞赛信标组总结(4)
- 网摘-按键精灵屏幕找色原理分析
- 思科JABBER显示头像配置文件
- mysql front和navicat_Navicat for MySQL与MySQL-Front比较
- asp.net webs制作(包括连接数据库)
- python global 变量_python中global变量释疑