来源 | HaaS技术社区
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。