手把手教你把IoT传感器数据存储到数据库
1. 云起实验室实验资源方式介绍
本实验支持开通免费试用、个人账户资源两种实验资源方式。
在实验开始前,请您选择其中一种实验资源,单击确认开启实验。
- 如果您选择的是开通免费试用,下方卡片会展示本实验支持的试用规格,可以选择你要试用的云产品资源进行开通。您在实验过程中,可以随时用右下角icon唤起试用卡片。
说明:试用云产品开通在您的个人账号下,并占用您的试用权益。如试用超出免费试用额度,可能会产生一定费用。
阿里云支持试用的产品列表、权益及具体规则说明请参考开发者试用中心。
2. 领取免费试用资源
实验前必看!
- 本实验使用的物联网平台和表格存储Tablestore均为付费资源。这两个产品支持免费试用,如果您的阿里云主账号符合开通免费试用的资格,建议您开通免费试用物联网平台和表格存储Tablestore的免费试用,物联网平台标准版免费试用时长为1个月,表格存储Tablestore的免费试用时长为3个月,超出免费额度的用量,计入按量付费,会产生后付费账单,具体计费详情,请参见计费概述。
- 如果您的阿里云账号只能领取部分免费试用产品,请您领取符合免费试用资格的产品,然后进入实验,不满足免费试用资格的产品将会使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。
- 为了避免资源浪费并造成账号扣费的情况,请严格按照本文提供的参数进行配置。在实验完成之后,请您及时删除或禁用压测任务。
- 在实验开始前,请您选择领取免费试用额度。
- 开通物联网平台免费试用。
2.1 在实验室页面下方,选择物联网平台,单击立即试用。
- 开通表格存储Tablestore免费试用。
3.1 在实验室页面下方,选择表格存储Tablestore,单击立即试用。
3.2 在表格存储Tablestore面板,选中服务协议,然后单击立即试用,如弹出新的页面,您可先忽略。
- 领取完免费试用后,返回资源领取界面,单击我已开通,进入实验。
说明:如果您的阿里云账号只能领取部分免费试用产品,请您领取符合免费试用资格的产品,然后进入实验,不满足免费试用资格的产品将会使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。
3. 物联网平台设备开发
本实验中我们将工业传感器(温度、湿度、压力)数据通过4G网络实时采集到阿里云IoT物联网平台,再配置规则引擎流转规则,实现设备数据存储到数据库中。
物联网开发实战完整链路参考如下:
其中PLC工控机上报数据格式如下:
Topic格式 /${productKey}/${deviceName}/user/update Payload格式示例 {"temperature":23,"humidity":65,"pressure":2546}
您在物联网平台控制台操作如下:
- 您需要先登录阿里云账号,进入物联网平台https://iot.console.aliyun.com/。
说明:如果您未开通物联网平台,请您根据页面提示,开通物联网平台。
- 在实例概览页面,选择您的实例。
说明:本实验以公共实例为例,如果您领取物联网平台免费试用额度,您也可以通过物联网平台生产环境下的标准型实例进行实验操作。
- 在左侧导航栏中,选择设备管理>产品。
- 在产品页面,单击创建产品。
- 在新建产品页签,产品名称输入PLC工控机,所属品类选择自定义品类,其他配置保持默认即可,单击确认。
- 创建完成后,单击查看产品详情。
- 在Topic类列表的自定义Topic页签,检查是否有/g*****M/${deviceName}/user/update,操作权限为发布,该Topic的作用为设备端传感器数据采集上报。
- 检查完成之后,你可以在产品详情页面单击添加设备,添加具体设备。
- 在设备详情,可以查看设备证书信息,如下图。
4. 创建表格存储数据库
接下来,我们需要创建表格存储数据库,用来存储PLC工控机的数据。
- 前往表格存储控制台https://ots.console.aliyun.com/。
- 在华东2(上海) 地域,单击创建时序模型实例。
- 在创建时序模型实例对话框中,实例名称输入minApp4IoT,实例规格选择容量型实例,单击确定。
(注:实例名称不允许重复,您可以按规则自定义名称)
- 在左侧导航栏中,单击全部实例。
- 在全部实例页面, 您可以看到创建的数据库实例,单击实例名称。
- 在创建数据表对话框中,数据表名称输入devices_data,其中主键为deviceId字符串和timestamp整型,单击确定。
创建完成后,数据库实例中数据库表如下。
数据库表基本详情。
至此,我们完成了表格存储数据库miniApp4IoT和数据库表devices_data的创建。
5. 配置云产品流转OTS
然后,我们配置云产品流转表格存储数据库。先创建数据源,数据目的地,再通过解析器串联起数据源和数据目的地。
- 在物联网平台控制台的导航栏中,选择规则引擎>云产品流转。
- 在数据源页签,单击创建数据源。
- 在创建数据源对话框中,数据源名称输入PLC数据上报,并添加Topic如下。
添加完成后,可以看到如下Topic列表。
至此,完成PLC工控机设备的数据源配置。
- 在数据目的地页签,单击创建数据目的为表格存储devices_data,选择操作存储到表格存储(Tablestore),选择上一章节创建的数据库miniApp4IoT和数据库表devices_data,如下图
完成后,你会看到数据目的地列表,如下图。
- 接下来,在解析器页签,单击创建解析器:PLC数据存储到OTS数据库。在数据源中添加PLC数据上报
- 在数据目的中,单击关联数据目的,数据目的选择表格存储devices_data。
- 在解析器脚本的编辑脚本区域中,输入如下脚本,单击发布。
参考文档https://help.aliyun.com/document_detail/270937.html。
//通过payload函数,获取设备上报的消息内容,并按照JSON格式转换。 var data = payload("json"); //设备信息 var deviceId = deviceName(); var ts = timestamp(); //设备感知数据 var temperature = data.temperature; var humidity = data.humidity; var pressure = data.pressure; // 表中添加主键deviceName、id,在writeTableStore方法中,可以按column:value的形式,将温湿度值写入对应的列。 writeTableStore(替换成目的地id, {"deviceId":deviceId, "timestamp":ts, "temperature":temperature, "humidity":humidity, "pressure":pressure});
至此,完成了解析器配置。
- 最后,在解析器页签,我们启动解析器脚本,状态为运行中。
6. 启动设备,完成数据入库
当我们完成以上物联网平台、表格存储数据库、云产品流转配置后,就可以测试完整物联网场景了。
- 我们在物联网平台控制台的导航栏中,选择设备管理>设备模拟器,启动PLC设备plc2023。
- 选择自定义Topic消息上报主题,并输入数据内容,单击消息上报。
Payload数据参考如下
{"temperature":26,"humidity":78,"pressure":2546}
- 然后,我们会在表格存储的数据库表devices_data查看到上报数据,如下图。
当然您也可以调整模拟数据值,观察数据库记录的变化。
- 最后,在物联网平台控制台,运维监控的日志服务里,可以查看到消息处理记录。
7. 资源释放
本场景的部署过程是免费的,但是在后期的使用过程是会产生一定的费用,主要包括:
所以您之后如果需要商品下单以及库存更新等操作,可能都会涉及到相关费用,为了避免费用的产生,您可以删除相对应的资源:
- 删除表格存储表格。
前往表格存储控制台https://otsnext.console.aliyun.com/,进入对应实例中,单击删除表格。
- 删除表格存储实例。
前往表格存储控制台https://otsnext.console.aliyun.com/,找到对应实例,单击释放。
8. 总结
恭喜你,完成了本次物联网开发实战。
让我们再回顾一下完整开发过程:
- 在阿里云IoT物联网平台创建PLC工控机,并注册新设备。
- 在表格存储创建数据库和数据表,用于存储物联网平台流转过来的PLC工控机数据。
- 配置云产品流转规则,把IoT数据流转到表格存储数据库表。
- 启动设备模拟器,模拟PLC工控机数据上报,在数据库表中实时查看到设备数据记录。
注意:
在完成实验之后,若您想保留实验相关的云产品资源,请随时关注账户扣费情况。若您不想保留实验相关的云产品资源,释放云产品资源即可。
欢迎加入阿里云IoT物联网在线交流群,如果实验有任何问题,可以进群咨询。
实验链接:https://developer.aliyun.com/adc/scenario/69795f59e7674c048bf5f8f42fa98772