1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 阿里云开发板HaaS510报送设备属性

阿里云开发板HaaS510报送设备属性

时间:2019-03-21 12:06:51

相关推荐

阿里云开发板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开发环境搭建/youngwah292/article/details/120356887?spm=1001..3001.5501

2.物联网云平台设备注册

如果已注册完成,请跳过此步。

如果没有,请参考文章

阿里云开发板HaaS510连接物联网平台--HaaS征文/youngwah292/article/details/120358210?spm=1001..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":""}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 用于格式化输出

运行效果如下图所示。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。