摘要: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报送设备属性相关推荐

  1. 阿里云开发板HaaS510响应UART串口指令

    摘要:开发物联网设备时,常用MCU+物联网模块的硬件结构,HaaS510就是一款非常好的物联网模块.本文与大家分享HaaS510在成功上云基础上,如何响应UART串口指令. 实验目的:通过haas51 ...

  2. 【技术详解】阿里云AIoT物模型支撑设备规模已超亿级

    简介:本文介绍的物模型技术,对于阿里云AIoT来说,物模型技术早已沉淀多年,所以能够让各种硬件产品实现真正的智能化连接. 物模型技术对于物联网企业来说是一项非常重要的技术,因为要实现万物互联,必须要有 ...

  3. 移动云物联网预研及阿里云开发对比分析

    1 移动云物联网预研总体架构 本方案采用Layui作为前端框架,选用了华为云耀云服务器存储网站应用,用户可通过访问公网IP的方式浏览网站,网站页面根据用户选择的功能定时与OneNET云端进行数据交互. ...

  4. 安信可 ESP8266机智云开发板:编译与烧录

    安信可 ESP8266机智云开发板:编译与烧录 编译:1.SDK 开发环境搭建见 安信可ESP系列一体化开发环境搭建                        下载地址:http://pan.ba ...

  5. 阿里云开发大会——体验云效智能代码补全

    简介:5月29日阿里云开发大会「智能开发与高效运维」分论坛上,云效请来12位阿里巴巴开发运维领域专家,聚焦分享阿里云赋能开发者的系列工具和实践.现场动手训练营吸引近千位开发者体验云原生开发部署.代码安 ...

  6. uniapp 阿里云开发微信小程序一键登录

    1.插件市场导入uni-id公用模块 插件市场 uni-id : https://ext.dcloud.net.cn/plugin?id=2116 导入成功后会在项目云文件夹下自动生成common目录 ...

  7. 阿里云开发——Node JS模拟钢琴的开发与部署

    [安工云原生大赛]利用阿里云开发平台模拟实现在线钢琴 开发网页钢琴的意义 钢琴是所有乐器中唯一能以最轻松的姿势坐着,以肩.臂.肘.腕最自然放松的状态操作演奏的乐器,使人学习起来最少身体上的负担和动作上 ...

  8. 阿里“云开发“小程序(uniCloud)

    博主ps: 网上资料少的可怜,哎,腾讯云涨价了,论服务器,我肯定选的阿里,再着你们对比下uniCloud的报价就知道了,如果有钱就另当别论了. 所以这片博文,博主试过之后,先抛出来答案,阿里云的云开发 ...

  9. 阿里云开发月老盲盒纸条交友小程序源码及配置教程

    说明: 阿里云开发的超火月老忙盒交友小程序 可自定义存取价格,配置流量主 可选择抽取同城和全国范围的纸条 安装简单,无需服务器,采用阿里云开发相比腾讯云成本更低 采用vue开发,运行响应速度快 前端是 ...

最新文章

  1. 智能车竞赛云上比赛第二天
  2. 音乐游戏 简单模拟,字符串,cin.get,getchar,流同步(女赛)
  3. 【Java5】String类,StringBuilder类,ArrayList类,Object类(toString,equals,hashCode)
  4. ActiveMQ 消息持久化到Mysql数据库
  5. WPF Grid动态显示或隐藏一列的一种方法
  6. CF11D-A Simple Task【状压dp】
  7. logging模块(* * * * *)
  8. iview -- vue modal 显示到最顶层 层级
  9. 面试官系统精讲Java源码及大厂真题 - 15 CopyOnWriteArrayList 源码解析和设计思路
  10. electron 解压zip_node.js实现简单的压缩/解压缩功能示例
  11. java datainputstream_Java中DataInputStream的用法
  12. getFullYear 方法
  13. spring整合大全
  14. Sklearn fit , transform ,fit_transform
  15. WebService接口实际场景应用(一)
  16. 给editplus加一个主题
  17. 怎样识别app网站服务器在国外,APP服务器你了解多少?什么是海外app服务器
  18. excel插入图片(利用vba)
  19. ajax技术的实质是什么意思,什么是Ajax?Ajax的原理是什么?Ajax的核心技术是什么?Ajax的优缺点是什么?...
  20. cocos2dx2.2添加音乐音效以及设置音量

热门文章

  1. vulnhub之hacksudo FOG
  2. 【网络】HTTP协议详解
  3. liunx 系统 一键安装
  4. ROS2 humble + windows10,如何安装调试rplidar a1激光扫描传感器
  5. 十四届全国大学生“恩智浦”杯智能汽车竞赛信标组总结(4)
  6. 网摘-按键精灵屏幕找色原理分析
  7. 思科JABBER显示头像配置文件
  8. mysql front和navicat_Navicat for MySQL与MySQL-Front比较
  9. asp.net webs制作(包括连接数据库)
  10. python global 变量_python中global变量释疑