IoT Studio服务开发MySQL数据流转示例Demo

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 阿里云物联网平台的规则引擎功能支持将数据流转到MySQL数据库,但是仅支持同区域(上海--华东二)的数据流转,这里介绍使用IoT Studio服务开发:云数据库MySQL节点,通过MySQL数据库的公网地址,完成跨区域的数据流转。

Step By Step


物联网产品及设备的创建

1、创建产品
_

2、导入物模型
_

_

_

model.json

{
    "schema":"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json",
    "profile":{
        "productKey":"<替换为自己产品的productkey>"
    },
    "properties":[
        {
            "identifier":"Distance",
            "name":"距离",
            "accessMode":"rw",
            "required":false,
            "dataType":{
                "type":"double",
                "specs":{
                    "min":"0",
                    "max":"10000",
                    "unit":"m",
                    "step":"1"
                }
            }
        },
        {
            "identifier":"GeoLocation",
            "name":"自定义地理位置",
            "accessMode":"rw",
            "required":false,
            "dataType":{
                "type":"struct",
                "specs":[
                    {
                        "identifier":"Longitude",
                        "name":"经度",
                        "dataType":{
                            "type":"double",
                            "specs":{
                                "min":"-180",
                                "max":"180",
                                "unit":"°",
                                "step":"0.01"
                            }
                        }
                    },
                    {
                        "identifier":"Latitude",
                        "name":"纬度",
                        "dataType":{
                            "type":"double",
                            "specs":{
                                "min":"-90",
                                "max":"90",
                                "unit":"°",
                                "step":"0.01"
                            }
                        }
                    },
                    {
                        "identifier":"CoordinateSystem",
                        "name":"坐标系统",
                        "dataType":{
                            "type":"enum",
                            "specs":{
                                "1":"WGS_84",
                                "2":"GCJ_02"
                            }
                        }
                    }
                ]
            }
        },
        {
            "identifier":"CellSignalStrength",
            "name":"信号强度",
            "accessMode":"r",
            "required":false,
            "dataType":{
                "type":"int",
                "specs":{
                    "min":"-128",
                    "max":"127",
                    "unit":"dBm",
                    "step":"1"
                }
            }
        }
    ],
    "events":[
        {
            "identifier":"post",
            "name":"post",
            "type":"info",
            "required":true,
            "desc":"属性上报",
            "method":"thing.event.property.post",
            "outputData":[
                {
                    "identifier":"Distance",
                    "name":"距离",
                    "dataType":{
                        "type":"double",
                        "specs":{
                            "min":"0",
                            "max":"10000",
                            "unit":"m",
                            "step":"1"
                        }
                    }
                },
                {
                    "identifier":"GeoLocation",
                    "name":"自定义地理位置",
                    "dataType":{
                        "type":"struct",
                        "specs":[
                            {
                                "identifier":"Longitude",
                                "name":"经度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-180",
                                        "max":"180",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"Latitude",
                                "name":"纬度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-90",
                                        "max":"90",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"CoordinateSystem",
                                "name":"坐标系统",
                                "dataType":{
                                    "type":"enum",
                                    "specs":{
                                        "1":"WGS_84",
                                        "2":"GCJ_02"
                                    }
                                }
                            }
                        ]
                    }
                },
                {
                    "identifier":"CellSignalStrength",
                    "name":"信号强度",
                    "dataType":{
                        "type":"int",
                        "specs":{
                            "min":"-128",
                            "max":"127",
                            "unit":"dBm",
                            "step":"1"
                        }
                    }
                }
            ]
        }
    ],
    "services":[
        {
            "identifier":"set",
            "name":"set",
            "required":true,
            "callType":"async",
            "desc":"属性设置",
            "method":"thing.service.property.set",
            "inputData":[
                {
                    "identifier":"Distance",
                    "name":"距离",
                    "dataType":{
                        "type":"double",
                        "specs":{
                            "min":"0",
                            "max":"10000",
                            "unit":"m",
                            "step":"1"
                        }
                    }
                },
                {
                    "identifier":"GeoLocation",
                    "name":"自定义地理位置",
                    "dataType":{
                        "type":"struct",
                        "specs":[
                            {
                                "identifier":"Longitude",
                                "name":"经度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-180",
                                        "max":"180",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"Latitude",
                                "name":"纬度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-90",
                                        "max":"90",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"CoordinateSystem",
                                "name":"坐标系统",
                                "dataType":{
                                    "type":"enum",
                                    "specs":{
                                        "1":"WGS_84",
                                        "2":"GCJ_02"
                                    }
                                }
                            }
                        ]
                    }
                }
            ],
            "outputData":[
                
            ]
        },
        {
            "identifier":"get",
            "name":"get",
            "required":true,
            "callType":"async",
            "desc":"属性获取",
            "method":"thing.service.property.get",
            "inputData":[
                "Distance",
                "GeoLocation",
                "CellSignalStrength"
            ],
            "outputData":[
                {
                    "identifier":"Distance",
                    "name":"距离",
                    "dataType":{
                        "type":"double",
                        "specs":{
                            "min":"0",
                            "max":"10000",
                            "unit":"m",
                            "step":"1"
                        }
                    }
                },
                {
                    "identifier":"GeoLocation",
                    "name":"自定义地理位置",
                    "dataType":{
                        "type":"struct",
                        "specs":[
                            {
                                "identifier":"Longitude",
                                "name":"经度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-180",
                                        "max":"180",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"Latitude",
                                "name":"纬度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-90",
                                        "max":"90",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"CoordinateSystem",
                                "name":"坐标系统",
                                "dataType":{
                                    "type":"enum",
                                    "specs":{
                                        "1":"WGS_84",
                                        "2":"GCJ_02"
                                    }
                                }
                            }
                        ]
                    }
                },
                {
                    "identifier":"CellSignalStrength",
                    "name":"信号强度",
                    "dataType":{
                        "type":"int",
                        "specs":{
                            "min":"-128",
                            "max":"127",
                            "unit":"dBm",
                            "step":"1"
                        }
                    }
                }
            ]
        }
    ]
}

注意: 替换自己产品的ProductKey

3、添加设备
_


IoT Studio绑定产品+设备

1、创建项目
_

2、项目创建完成后分别关联创建的产品和设备
_

3、新建业务服务
_
_

4、业务流程搭建
_

_

_

5、云数据库MySQL节点配置介绍

  • 5.1 MySQL的版本

请使用MySQL5.7或MySQL5.6版本,其它版本兼容性会有问题,可能会出现连接异常。

  • 5.2 参数配置
{
    "table": "iotdevice1",
    "rows": [
        {
            "CellSignalStrength": "{{query.props.CellSignalStrength.value}}",
            "Distance": "{{query.props.Distance.value}}",
            "Longitude": "{{query.props.GeoLocation.value.Latitude}}",
            "Latitude": "{{query.props.GeoLocation.value.Longitude}}"
        }
    ]
}

也可以是(注意节点Id按照具体节点情况修改):


{
    "table": "iotdevice1",
    "rows": [
        {
            "CellSignalStrength": "{{payload.props.CellSignalStrength.value}}",
            "Distance": "{{query.props.Distance.value}}",
            "Longitude": "{{query.props.GeoLocation.value.Latitude}}",
            "Latitude": "{{node.node_339cdef0.props.GeoLocation.value.Longitude}}"
        }
    ]
}

payload表示上一个节点输出参数;query表示输入节点的参数;node.nodeId表示指定某一节点的输出参数。

  • 5.3 MySQL建表语句
/*------- CREATE SQL---------*/
CREATE TABLE `iotdevice1` (
  `CellSignalStrength` int(11) DEFAULT NULL,
  `Distance` double DEFAULT NULL,
  `Longitude` double DEFAULT NULL,
  `Latitude` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

设备在线模拟测试

1、部署调试
_

_

_

2、数据流转查看

_

3、流程测试正常后,发布即可

_

参考链接

云数据库MySQL
IoT Studio 服务开发概述

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
23天前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
94 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
104 2
|
2月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
2月前
|
SQL 关系型数据库 MySQL
PHP与MySQL协同工作的艺术:开发高效动态网站
在这个后端技术迅速迭代的时代,PHP和MySQL的组合仍然是创建动态网站和应用的主流选择之一。本文将带领读者深入理解PHP后端逻辑与MySQL数据库之间的协同工作方式,包括数据的检索、插入、更新和删除操作。文章将通过一系列实用的示例和最佳实践,揭示如何充分利用这两种技术的优势,构建高效、安全且易于维护的动态网站。
|
2月前
|
关系型数据库 MySQL 数据库
vertx 的http服务表单提交与mysql验证
本文介绍了如何使用Vert.x处理HTTP服务中的表单提交,并通过集成MySQL数据库进行验证,包括项目依赖配置、表单HTML代码和完整的Vert.x服务代码。
22 2
|
2月前
|
存储 关系型数据库 MySQL
MySQL 字符字段长度设置详解:语法、注意事项和示例
MySQL 字符字段长度设置详解:语法、注意事项和示例
246 0
|
3天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
45 15
|
3天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。