300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 阿里云HaaS100物联网开发板学习笔记(四)轻应用初步--用javascript连接阿里云物联网平台

阿里云HaaS100物联网开发板学习笔记(四)轻应用初步--用javascript连接阿里云物联网平台

时间:2018-10-31 06:39:20

相关推荐

阿里云HaaS100物联网开发板学习笔记(四)轻应用初步--用javascript连接阿里云物联网平台

摘要:本篇文章讲解如何使用JavaScript“轻应用”连接阿里云物联网平台并上报一个数据。仍然延续前几篇文章的结构,从安装软件环境开始讲,以使零基础的同学看了本篇文章之后,也能够知道每一步该如何做。

目录

实验目的

1 HaaS100轻应用固件操作步骤

2.阿里云生活物联网平台新增测试设备步骤

2.1 新建项目

2.2 新建产品

2.3 功能定义

2.4 支付

2.5 查看云端设备“三元素”

3.传输javascript程序到HaaS100开发板

3.1 下载amp工具

3.2 连接USB串口模块

3.3 修改app.js和app.json文件。

3.4 编译程序

4.查看物联网云平台日志

5.结论

硬件:HaaS100物联网开发板

软件:amp-win(命令行版),aos-cube(命令行版),win7 x64系统

实验目的

使用“轻应用”方式编程实现HaaS100开发板向阿里云物联网平台上报属性。下图是上报成功之后的日志截屏。

1 HaaS100轻应用固件操作步骤

下面这6个步骤的目的是搭建编程环境开始烧录支撑“轻应用”运行的固件,这个固件通过HaaS100自带的USB串口(就是板子左上角那个Micro USB接口)烧录的。

具体有以下几步,详细请参考链接:阿里云HaaS100物联网开发板学习笔记(三)轻应用初步--用js让小灯闪烁起来

1.1 搭建aos-cube编程环境

1.2 了解一下轻应用运行模式

1.3 使用aos-cube编译轻应用运行固件

1.4 烧录到HaaS100开发板中

烧录成功的标志是将GPIO47引脚与3.3V短接,按下复位键(短键柄)之后,双排指示灯中的LED2间歇性双闪。

此时开发板就处于等待接收js程序的状态。

到这一步之后,先不用着急编写js程序,因为云平台上没有准备好,需要进行一些设置才能让“云”和“板”成功通信。

2.阿里云生活物联网平台新增测试设备步骤

在阿里云生活物联网平台新增一个测试设备,那么在云端就有了一个HaaS100开发板对应的“物”,这个“物”,有若干个属性,当HaaS100开发板向上报送一个属性的时候,云端的“物”就做了相应的数据改变。

下面看一下具体的步骤:

2.1 新建项目

我们首先登陆“阿里云生活物联网平台”,新增一个项目,名字根据需要自己定,比如这里起个名字“haas生活测试”。

在写这篇文章期间,生活物联网平台改版了!!!看样子跟阿里云物联网平台合二为一了。

选择工作台,进入物联网设备管理

2.2 新建产品

品类选择电工照明---灯

节点类型选择直连设备,联网方式选择wifi,数据格式选择ICA标准数据格式。

确认之后,提示可以添加设备了。也就是说,你定义了自己的产品,但是还没有为真正的产品在云端建立一个“影子”。

2.3 功能定义

选择“前往定义物模型”。

功能定义就是让云端的“物”具有和现实物联网产品相同的功能描述,并且对各个属性进行命名。比如“灯”就可以有模式、亮度、类型、甚至颜色等属性。

如果您的产品具有更多的属性和功能,可以自定义添加相应的功能。

本步骤不做任何更改,只是为了测试用。

然后添加设备。在产品中选择下拉自己想添加的设备类型,如果你选择什么设备,那么这个设备就具有了上述的功能定义。

2.4 支付

每个云平台上的“物”,就如同真实世界中的“物”一样,是具有价值属性的,每个“物”也是需要支付一定的货款的。

通过购买界面进行购买,支付即可,如果大批量使用,请参加阿里正在进行的企业优惠推广活动。

2.5 查看云端设备“三元素”

云端设备,也就是“物”,有一个数字“身份证”,这个证件有3个信息,分别是ProductKey,DeviceName和DeviceSecret,就好像是一个人有地址、姓名和身份证号码一样。不过,为了通信安全,物联网数据传输都采用加密传输,这个身份证号是经过加密的。

可以通过选择设备页的“查看”来查看这张身份证的信息。

可以看到下列3个重要参数,分别是ProductKey,DeviceName和DeviceSecret。

在阿里云物联网平台登记这张“身份证”之后,只允许也拥有这张身份证的设备与之对应起来。所以一定程度上来说,阿里云物联网平台上设置的“物”,其实就像是现实世界中的设备在云端的“影子”一样。

记住这张“身份证”,接下来,将3个关键信息烧录在物联网开发板内部,那么这张开发板就与阿里云物联网平台的“影子”对应起来了。

那么怎么样将身份证烧录进开发板呢?请看下一步。

3.传输javascript程序到HaaS100开发板

在没有javascript“轻应用”开发模式之前,需要搭建比较复杂的编译和支持环境,想实现这个看似简单的步骤,需要大量的时间和经验。

可以看看/youngwah292/article/details/104124314了解MQTT的一些知识以及复杂的中间过程。

现在,这一切简单起来了。

上一篇文章详细介绍了如何用命令行版的amp工具将js程序传输到开发板。可以参考链接/youngwah292/article/details/109540717

本篇文章只介绍基本的步骤,默认大家已经掌握了amp工具的使用方法。

3.1 下载amp工具

请点击下方蓝色字体下载。或者通过阿里云官方文档点击下载,下载后解压到我的文档目录下。C:\Users\Administrator\amp-win

阿里云官方推荐轻应用命令行工具

3.2 连接USB串口模块

按照下图所示将线接好

实物连接图如下:

连接好开发板之后,“轻应用”的准备工作就完成了,下面开始编写“轻应用”程序

3.3 修改app.js和app.json文件。

“轻应用”的源代码分布在两个文件中。

在C:\Users\Administrator\amp-win\app目录下的app.js和app.json。

这个程序就是提供联网和报送属性功能的,app.js就是javascript源文件。

app.js文件代码如下

var iot = require('iot');var network = require('network');var net = network.openNetWorkClient();//下面这些就是阿里云生活物联网平台注册的“灯”的“身份证”信息var productKey = 'a19xxxxxxxx';/* your productKey */var deviceName = 'haas-ltv1';/* your deviceName */var deviceSecret = 'e22735xxxxxxxxxxxxxxxxxxxxxcc2'; /* your deviceSecret */var device;function createDevice() {device = iot.device({productKey: productKey,deviceName: deviceName,deviceSecret: deviceSecret,region: 'cn-shanghai',success: function () {console.log('iot: [success] connect');onConnect();},fail: function () {console.log('iot: [failed] connect');}});device.on('connect', function () {console.log('iot: [success] iot.on(\'connect\')');});/* 网络断开事件 */device.on('disconnect', function () {console.log('iot: [success] iot.on(\'disconnect\')');});/* 关闭连接事件 */device.on('close', function () {console.log('iot: [success] iot.on(\'close\')');});/* 发生错误事件 */device.on('error', function (err) {throw new Error('iot: [failed] iot.on(\'error\') ' + err);});/* 云端设置属性事件 */device.on('props', function (payload) {console.log('iot: [success] iot.on(\'props\'), payload: ' + JSON.stringify(payload));});/* 云端下发服务事件 */device.on('service', function (id, payload) {console.log('iot: [success] iot.on(\'service\'), id: ' + id + ', payload: ' + JSON.stringify(payload));});}var lightSwitch = 0;function onConnect() {/** post properties */lightSwitch = 1 - lightSwitch;device.postProps({payload: {LightSwitch: 'lightSwitch'},success: function () {console.log('iot: [success] iot.postProps');},fail: function () {console.log('iot: [failed] iot.postProps');}});/** post events */device.postEvent({id: 'Error',params: {ErrorCode: 0},success: function () {console.log('iot: [success] iot.postEvent');},fail: function () {console.log('iot: [failed] iot.postEvent');}});}var status = net.getStatus();console.log('net status is: ' + status);if (status == 'connect') {createDevice();} else {net.on('connect', function () {createDevice();});}//下面的ssid和password就是你要连接的wifi用户名和密码,手机怎么连上的,你就怎么填net.connect({ssid:'TP-LINK_3XXB',password:'zXX000XXX'});

注意,文件的末尾添加了自己的wifi信息,这样的话,烧录完成之后,就可以立即联网了。

文件的顶端部分,写了三个关键参数,就是“身份证”信息。

app.json文件比较简单,仅有几句话。

{"version": "1.0.0","io": {},"debugLevel": "DEBUG"}

3.4 编译程序

编译“轻应用”程序需要用到amp软件。这种软件是通过命令行形式调用的。

在3.1步已经下载并解压amp工具到了C:\Users\Administrator\amp-win文件夹下,amp工具就是下图中红框选中的这个。它不能被双击直接打开,需要cmd进入命令行再运行它。

打开windows命令行

使用cd命令进入amp工具

然后查看串口,注意是两个串口,选择与USB串口对应的那个

用到的两条指令分别是:

第一条指令是显示当前的串口号

amp seriallist

第二条指令是用USB串口对应的串口号进行烧录

amp serialput app com14

烧录时,需要确认LED灯是否间歇性双闪,如果没有,请确认GPIO47是否于3.3V短接,如果短接了,那么就再按下复位键。

只有LED灯间歇性双闪,才能确定“轻应用”固件已经成功运行起来了,这样才能等待js程序的到来。

当出现如下的界面时,就证明烧录成功了。

烧写成功后,断开GPIO47与3.3V之间的连接,让开发板处于正常运行状态,然后按一次复位按键,这个程序就运行起来了。

经过了这一系列步骤,程序就运行起来,但是怎么样确认它成功与阿里云物联网平台成功通信呢?还需要登录后台看日志。

4.查看物联网云平台日志

最近生活物联网平台改版了,参考下面的图示,选择物联网设备管理。

选择设备菜单,可以看到设计的产品已经在线了。

查看日志,可以看到从设备到云端的消息了。

查看详情,可以更加详细地观察发送过来的消息。

5.结论

HaaS100开发板是通过wifi联网的,采用“轻应用”的方式进行开发,可以更加快速高效。

本篇文章撰写期间,生活物联网平台改版了。看样子与物联网平台整合到了一块,界面更加统一,也更加便于操作。

还有彩蛋,以后找时间写一下。

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