阿里云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“轻应用”开发模式之前,需要搭建比较复杂的编译和支持环境,想实现这个看似简单的步骤,需要大量的时间和经验。


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


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

上一篇文章详细介绍了如何用命令行版的amp工具将js程序传输到开发板。可以参考链接https://blog.csdn.net/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联网的,采用“轻应用”的方式进行开发,可以更加快速高效。

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

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

猜你喜欢

转载自blog.csdn.net/youngwah292/article/details/109542585