赞
踩
HaaS: Hardware as a Service。
HAAS510
是一种开板式 DTU
,旨在为用户已开发好的设备快速增加 4G
连云能力的 4G CAT1
数传模块。它通过将模组与用户设备集成到一个外壳内,既保持设备的一体性,又降低重新开发 PCB
的时间消耗和模组开发的难度。 HAAS510
产品采用了 JavaScript
脚本的方式,将模组的本地串口通信和通过 4G
连接云端平台的能力开放给用户。同时,它还为用户提供了编写本地业务逻辑的能力,使得用户可以根据不同的应用场景,在设备侧完成数据清洗甚至一些简单的控制功能,从而给用户带来更大的创新自由度。
依托阿里云物联网平台,结合 HAAS510
的连云能力、实际生产环境中的电气火灾监控系统以及4G物联网卡,实现对电气火灾的远程监测。
硬件设备
软件环境
HAAS510
上有两个 UART
,并且为方便接线,对杜邦线做了分组: Main UART
(用于烧录部署应用)和 Debug UART
(用于调试与查看日志),由于我先接了 Debug UART
,所有 COM
口的情况如下:
实际连云的接线图如下:
根据 HAAS510
的文档,下载了 amp-win
,结合 SSCOM V5.13.1串口调试助手
进行了测试:按下复位键,apm shakehand begin。
在 VSCode
的插件市场搜索 haas-studio
安装,点击左下角的激活 Aos
插件。
在 VSCode
的已安装插件列表中修改了 haas-studio
的版本,从 v2.3.1
降到了 v2.2.0
,支持创建 JavaScript
的项目。
创建的 JavaScript
项目中自带了 HelloWorld
示例程序,点击部署运行,选择本地更新——>选择串口(我这里是COM4:Main UART)——>波特率:115200。
或者使用以下命令进行烧录:
c:\Users\nxq01\.vscode\extensions\haas.haas-studio-2.2.0/amp/amp-win/dist/amp.exe serialput d:\JavaScript\Node.js\haas-test\test_demo\solutions\test_demo COM4 -b 115200
根据提示复位 DTU
板(板子上的reset按钮),可以通过串口工具在 Debug UART
,我这里是 COM3
,查看调试输出。
分别连接了 Main UART
(用于烧录部署应用)和 Debug UART
(用于调试与查看日志)。
注意:
添加产品——>添加设备——>编辑物模型。
{
"ProductKey": "ibneFAfjvhy",
"DeviceName": "ElectricalFireMonitoringSystem",
"DeviceSecret": "9dc9c43e02ad25448de2d0913b49f802"
}
实际编码之前,先用 MQTTX
工具测试下设备的连接性。
根据实际的电气火灾监控系统监测指标,模拟了剩余电流、电压、电流以及功率等参数。
以下代码修改自创建的模板项目中的实例: iot-device
。
let iot = require('iot'); let network = require('network'); let net = network.openNetWorkClient(); /* 设备三元组信息 */ let productKey = 'ibneFAfjvhy'; let deviceName = 'ElectricalFireMonitoringSystem'; let deviceSecret = '9dc9c43e02ad25448de2d0913b49f802'; let device; let topic = '/sys/' + productKey + '/' + deviceName + '/thing/event/property/post'; /* 模拟属性数据:JSON字符串*/ let json = '{"RC":0.5,"LineCurrent":8.0,"LineVotage":210.0,"LinePower":20.0}'; function createDevice() { device = iot.device({ productKey: productKey, deviceName: deviceName, deviceSecret: deviceSecret }); device.on('connect', function() { console.log('(re)connected'); device.subscribe({ topic: topic, qos: 0 }); setInterval(function() { /* post props */ device.postProps(json); }, 5000); /* 云端设置属性事件 */ 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); }); } let status = net.getStatus(); console.log('net status is: ' + status); if (status == 'connect') { createDevice(); } else { net.on('connect', function() { createDevice(); }); }
注意: JSON
字符串中的值类型与物模型中定义的值类型要一致;一开始将在字符串中将传感器的值写成了字符串类型,导致云平台无法解析为 Double
,报错。
将上述代码通过 Main UART
发布至 HAAS510
。
从 Debug UART
串口可以看到属性上报的记录。
阿里云物联网平台上可以看到设备已在线。
以下是在日志服务、在线调试以及物模型数据在设备上报属性时的记录与展示。
这篇文章主要介绍了 HaaS510
开板式 DTU
(数据传输单元)的真机连云过程,以及如何将监测数据上报至阿里云物联网平台。文章提供了硬件和软件环境的准备步骤,包括硬件设备和软件工具的连接和配置。然后,文章演示了如何使用 HaaS510
的 HelloWorld
示例程序和 JavaScript
编码实现真机连云上报数据的功能。最后,文章验证了连云效果,并提供了参考资料供进一步学习和开发。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。