目录

物联网设备接入阿里云

目录

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

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

https://i-blog.csdnimg.cn/blog_migrate/39e6f1452703cbf041565be53916c645.png

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

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

https://i-blog.csdnimg.cn/blog_migrate/a6b8e0dd7e1ccfd33f86ab9db130c23b.png

https://i-blog.csdnimg.cn/blog_migrate/f2eadc912e4ab45fc7b07d9c6afcb135.png

主要步骤:

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

https://i-blog.csdnimg.cn/blog_migrate/723e589f5994cce5d9c43bb32ea081bb.png

https://i-blog.csdnimg.cn/blog_migrate/712d93db82608b85e644b63358a59dc7.png

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

https://i-blog.csdnimg.cn/blog_migrate/5be4e935e2cb34528f701d4df45ef98e.png

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

https://i-blog.csdnimg.cn/blog_migrate/1fe4585f75fba928d4e1c8d465a5b638.png

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

https://i-blog.csdnimg.cn/blog_migrate/6789bab868415ee55e3d7e1c75adb79f.png

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

https://i-blog.csdnimg.cn/blog_migrate/f9dae4f7a00f5706be71a2d42f51ad0c.png

https://i-blog.csdnimg.cn/blog_migrate/59983d3d0bf98bc1eb990605b0f5d5f2.png

采用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)功能等;

https://i-blog.csdnimg.cn/blog_migrate/cd7cd0ec014734d0e0b8ea92599ba90d.png

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

https://i-blog.csdnimg.cn/blog_migrate/06bbb34a596d0c35e3fd3bbe6a162707.png

程序调试:

https://i-blog.csdnimg.cn/blog_migrate/13cc9cdf61036cecb98345dfde2ee62d.png

编辑解析器脚本,具体程序代码为:

<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

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

https://i-blog.csdnimg.cn/blog_migrate/11268f92c855a68486fdf6f49c496ce8.png

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

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

https://i-blog.csdnimg.cn/blog_migrate/1e3efec34251aae74011bb1d52d9553f.png

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

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

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

https://i-blog.csdnimg.cn/blog_migrate/38ce6ef49e0e31154449027b61e74422.jpeg

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

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

https://i-blog.csdnimg.cn/blog_migrate/91eab00e817b1f21c609b68332ef0694.jpeg

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


作者:mayuanliang

链接:https://bbs.21ic.com/icview-3204928-1-1.html

来源:21ic.com

此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。