背景:近年来,物联网技术在工业、农业、环境、交通、物流以及安保等领域具有广泛的应用,其核心框架为: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脚本语言,将解析程序嵌入到阿里云平台

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

将设备自定义topic数据转换为json格式数据设备上报数据到物联网平台时调用
 

入参:topic string 设备上报消息的 topic
 

入参:rawData byte[] 数组不能为空
 

出参:jsonObj JSON 对象不能为空
 

 */
 

//物联网平台Topic,设备上传属性数据到云端。
 

 
 

function transformPayload(topic, rawData) {
 

    var jsonObj = {};
 


 

    var dataSrc = String.fromCharCode.apply(String, rawData);
 

    var data = dataSrc.split(',');
 

   
 

//ALink JSON格式,属性上报topic
 

'1.0'//ALink JSON格式,协议版本号固定字段。
 

格式,标示该次请求id值。
 

    var params = {};
 

parseInt//对应产品属性中prop_int16
 


 

//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格式数据,需要配置解析程序代码;
---------------------
作者:mayuanliang
链接:https://bbs.21ic.com/icview-3204928-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

更多推荐