发新帖本帖赏金 30.00元(功能说明)我要提问
返回列表
打印

物联网设备接入——阿里云

[复制链接]
1485|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 mayuanliang 于 2022-3-14 10:09 编辑

#申请原创# @小跑堂 背景:近年来,物联网技术在工业、农业、环境、交通、物流以及安保等领域具有广泛的应用,其核心框架为:1. 传感器实时采集现实世界的的物理信息; 2. 通过计算机技术实现系统的全局优化,进行资源的合理分配,进而提高加工生产效率。因此,近来购买了dtu模块(FS724模块),实现mcu与阿里云平台的连接;整个过程中完成了物理模型创建,数据解析程序的编写调试,规则的创建以及数据保存等环节的调试工作,在此基础上,相关的内容进行了简要的整理,具体如下所示:



目标:1. 将传感器采集数据的上传到阿里云平台;2. 将数据保存到云平台;

需要准备的材料:1. dtu模块(FS724模块);2. 阿里云平台账号申请;3. ttl串口工具;4. 电源;5. 导线若干;



主要步骤:
1. 注册阿里云平台,创建产品及设备,获取设备证书(三元组)(网上有大量的教程,该过程不赘述),具体结果如下图所示:



2. 通过usb-TTL串口工具,将FS724模块与电脑连接;主要引脚有:VIN、GND、TX、RX;其中,电路板需要单独的电源供电(非常关键)(血泪教训);具体过程如下图所示:

  


模块与电脑连接成功后,点击“读取所有参数”按钮,返回读取成功的信息提示;




3. 打开YunDTU ConfigTool工具,点击socket参数,配置阿里云接口信息,将产品三元组信息填写到相应位置;



4. 登录阿里云平台,配置解析程序;(后续步骤较为关键,核心内容)








采用Javascipt脚本语言,将解析程序嵌入到阿里云平台


<font size="3" color="#000000">/**
* 将设备自定义topic数据转换为json格式数据, 设备上报数据到物联网平台时调用
* 入参:topic string 设备上报消息的 topic
* 入参:rawData byte[] 数组 不能为空
* 出参:jsonObj JSON 对象 不能为空
*/
var ALINK_PROP_REPORT_METHOD = 'thing.event.property.post'; //物联网平台Topic,设备上传属性数据到云端。

function transformPayload(topic, rawData) {
    var jsonObj = {};

    var dataSrc = String.fromCharCode.apply(String, rawData);
    var data = dataSrc.split(',');
   
    jsonObj.method = ALINK_PROP_REPORT_METHOD; //ALink JSON格式,属性上报topic。
    jsonObj.version = '1.0'; //ALink JSON格式,协议版本号固定字段。
//    jsonObj.id = '' + dataView.getInt32(1); //ALink JSON格式,标示该次请求id值。
    var params = {};
    params.v =  parseInt(data[1]); //对应产品属性中prop_int16。

    jsonObj.params = params; //ALink JSON格式,params标准字段。

//  jsonObj.v = parseInt(data[1]);

    return jsonObj;
}</font>

5. 云平台能够将传感器采集的数据保存在服务器端,后续通过算法解算设备的运行状态,其中,具体过程为:创建数据源,开通存储到表格(tablestore)功能等;





6. 配置数据流转规则,创建解析器,将数据源与表格存储链接到一起;(关键步骤)






程序调试:





编辑解析器脚本,具体程序代码为:
<font size="3" color="#000000">//通过payload函数,获取设备上报的消息内容,并按照JSON格式转换。

var data = payload("json");

//直接流转物模型上报数据。

//var dianyatest = data.items.dianya.value;

var dianya_value = getOrNull(data, "items", "dianya", "value");

writeTableStore(1001, {"timestamp":timestamp(), "dianya":dianya_value});</font>


7. 结果展示:通过阿里云平台,将传感器数据保存到表格中,后续可以进行特征识别





展示了阿里云平台将传感器传输的数据进行了保存的结果;


8. 钉钉助手配置:添加条件控制命令,当采集信号触发后,能够给后台提供预警信息,具体如下图所示;





图b-c展示了系统对传感器采集的数据进行分析,当满足触发条件后(例如:传感器电压过低),能够通过钉钉将设备状态告知用户端,实现设备的远程管理。

整个过程中问题及解决方案



1. 数据传输过程中出现断开连接问题;



解决方案:最开始测试中,发现信号传输的延时达到2s左右(震惊),后来发现电脑端口输出功率为2-4w,不能满足Fs724模块的功率(7W),引发连接不稳定的现象。

3.数据解析功能;当整个系统对网络流量较为敏感、底端硬件配置较低或者资源受限等应用场景中,设备与阿里云进行通信时,一般采用透传/自定义数据格式的方式。例如:LoRaWAN温湿度传感器与阿里云进行通信时,传输的数据源文件为:000102(三个字节),后续通过阿里云平台的数据解析程序,转换为JSON格式数据;{"method":"thing.event.property.post","id":"12345", "params":{"Temperature":1,"Humidity":2}, "version":"1.1"}



阿里云物理模型采用json格式数据,需要配置解析程序代码;

74827622db5eba0ccb.png (933.43 KB )

74827622db5eba0ccb.png

16277622db75077697.png (540.36 KB )

16277622db75077697.png

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 30.00 元 2022-03-15
理由:恭喜通过原创文章审核!请多多加油哦!

相关帖子

发新帖 本帖赏金 30.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

7

帖子

1

粉丝