HaaS轻应用(JavaScript)- DTU功能示例

Posted HaaS技术社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HaaS轻应用(JavaScript)- DTU功能示例相关的知识,希望对你有一定的参考价值。

1、示例简介

在HaaS610开发板上把用户串口接收到的数据,通过物模型把数据上传到阿里云物联网平台。本示例适合实时性要求不高、数据量不大的应用场景。

1.1、连接示例

通过USB转TLL串口线(3.3V ),把PC与HaaS610的用户串口(上图序号 8处)连接起来。

1.2、流程

在PC上通过串口调试工具发送数据,HaaS610 Kit收到数据后触发uart监听事件。HaaS610 Kit在uart监听事件回调函数中把数据通过MQTT发送到物联网平台指定Topic。

2、示例代码

app.js

var iot = require('iot');
var network = require('network');
var uart = require('uart');

var net = network.openNetWorkClient();
var serial3 = uart.open({
    id: 'serial3'
});

function ArrayToString(fileData){
    var dataString = "";
    for (var i = 0; i < fileData.length; i++) {
      dataString += String.fromCharCode(fileData[i]);
    }
    return dataString;
}

serial3.on('data', function(data) {
    var data_str = ArrayToString(data);
    console.log('serial3:' + data_str);

    /* post props */
    device.postProps('{\\"serial3\\": ' + '\\"' + data_str + '\\"' + '}');

});

var productKey = 'xxxx';      /* your productKey */
var deviceName = 'xxxx';    /* your deviceName */
var deviceSecret = 'xxxx';    /* your deviceSecret */

var device;
var topic = '/sys/' + productKey + '/' + deviceName + '/user/haas/info';

function createDevice() {
    device = iot.device({
        productKey: productKey,
        deviceName: deviceName,
        deviceSecret: deviceSecret,
    });

    device.on('connect', function () {
        console.log('(re)connected');

        /* 云端设置属性事件 */
        device.onProps(function (res) {
            console.log('cloud req msg_id is ' + res.msg_id);
            console.log('cloud req params_len is ' + res.params_len);
            console.log('cloud req params is ' + res.params);
        });

        /* 云端下发服务事件 */
        device.onService(function (res) {
            console.log('received cloud msg_id is ' + res.msg_id);
            console.log('received cloud service_id is ' + res.service_id);
            console.log('received cloud params_len is ' + res.params_len);
            console.log('received cloud params is ' + res.params);
        });
    });

    /* 网络断开事件 */
    device.on('disconnect', function () {
        console.log('disconnect ');
    });

    /* mqtt消息 */
    device.on('message', function (res) {
        console.log('mqtt message')
        console.log('mqtt topic is ' + res.topic);
        console.log('mqtt payload is ' + res.payload);
    })

    /* 关闭连接事件 */
    device.on('end', function () {
        console.log('iot client just closed');
    });

    /* 发生错误事件 */
    device.on('error', function (err) {
        console.log('error ' + err);
    });
}

var status = net.getStatus();
console.log('net status is: ' + status);

if (status == 'connect') {
    createDevice();
} else {
    net.on('connect', function () {
        createDevice();
    });
}

app.json

{
    "version": "1.0.0",
    "io": {
      "serial3":{
        "type":"UART",
        "port":2,
        "dataWidth":8,
        "baudRate":9600,
        "stopBits":1,
        "flowControl":"disable",
        "parity":"none"
      }
    },
    "debugLevel": "DEBUG",
    "repl": "enable"
}

开发者支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号。

更多技术与解决方案介绍,请访问HaaS官方网站https://haas.iot.aliyun.com

以上是关于HaaS轻应用(JavaScript)- DTU功能示例的主要内容,如果未能解决你的问题,请参考以下文章

HaaS轻应用(JavaScript)快速开始 @HaaS100

来了!HaaS轻应用(JavaScript)2.0!It just works

HaaS轻应用(JavaScript)低功耗蓝牙案例

HaaS轻应用(JavaScript)快速开始 @HaaS EDU K1

HaaS轻应用(JavaScript)快速开始 @ HaaS610

HaaS轻应用(JavaScript)快速开始 @ HaaS600 EC600S