本帖最后由 Genius 于 2017-5-23 17:00 编辑
如何让设备与云服务器建立关联?分五部走。
1)创建产品 为了能让实际设备(空气净化器、智能灯、智能插座等等)与云服务器建立关联,定义设备功能,管理设备,因此需要一个开发平台。机智云IoT PaaS服务正是为此需求而生,为IoT开发者提供智能设备自助开发工具、后台技术支持服务,实现设备远程操控管理、数据存储分析、第三方数据整合、硬件社交化等技术服务,快速实现产品互联网化,让硬件开发变得更快、更有创意。 本项目我们按照步骤在机智云开发者中心创建一个名为“室内智能环境监测仪”产品,机智云为该产品分配Product Key和Product Secret参数,Product Key参数由开发者写入设备MCU(设备主控板),并告知WiFi/GPRS模块,WiFi/GPRS模块登录机智云后,机智云将会识别该ProductKey的产品,Product Secret参数是APP开发或服务器对接时所使用的参数,简单的说就是机智云平台给你创建的产品分配一个唯一的“身份证号码”用于通信时身份识别,并在机智云服务器“登记”了。
2)定义数据点
创建了产品还不够,因为刚刚我们只是给产品起了个名字而已,然后登记了下,接下来要做的是:定义产品功能,即这是个室内智能环境监测仪,那它都些什么功能呢?不同厂家的环境监测仪功能不同,高级货和低级货功能肯定也不同。 机智云发明了一个名词:数据点,它是设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点有三个作用:一、让产品智能化,明确产品功能,并逐一在平台上创建对应的数据点来描述功能;二、用于嵌入式开发的MCU 协议将会根据创建的数据点自动生成,根据自动生成的协议,开发者即可完成智能设备的开发;三、用于MCU/APP代码自动生成服务中,一键生成可编译的代码包。 创建数据点后,设备与云端通讯的数据格式即可确定,设备、机智云可以相互识别设备与机智云互联互通的数据。举个栗子,环境监测仪需要提供传感器检测空气温度,然后把温度值传到机智云服务器,然后在手机APP上的显示区域显示,那么如何建立温度传感器数值和手机APP显示区的关联呢?我们可以用个符号表示,这就是数据点,相当于某个功能的唯一的名字,它拥有一些属性,对于温度,属性有:它是一个数值,只能去读取它而不能人为的通过APP设置按钮去改变它,它有范围(这个范围取决于传感器输出量)等。 机智云定义了一组数据点属性,如下图所示: 显示名称:自定义功能点名称(可以是中文),用于在手机APP等直观显示。 标识名:用于应用层传输,客户端或业务云开发时需要使用(编程用的变量名差不多)。命名规则遵循标准的开发语言变量名命名规范,支持英文字母、数字和下划线,以英文字母开头。 读写类型支持:只读、可写、报警、故障 (学过C语言即可理解) 数据类型支持:布尔值、枚举类型、数值、扩展类型 (学过C语言即可理解) 备注: - 用一段文本描述当前数据点的功能及定义方法,对字符格式不做限制。只用于提高数据点的易读性,如果需要团队协作开发,建议规范填写。
- 数据点数值型分辨率、增量换算实现原理
- 扩展类型:填写数据长度,数据内容由用户自定义。对于上述功能点无法满足的复杂功能可采用。目前机智云不建议使用此类型数据,设备上报该数据点的数据,机智云无法识别。
- 在定义数值型数据点的时候,取值范围可以使用包括小数、负数等非uint类型数值,熟悉嵌入式开发的开发者会知道,这些数值在设备端都是不被支持的。
- 机智云为了让设备功能定义更加简单直接、所见即所得,研究出来一套算法,用于将用户输入的数值转换成设备能够识别的uint类型,这套算法的核心公式是:y=kx+m。y表示“显示值”,x表示“传输值”,k表示“分辨率”,m表示“取值偏移量”或“增量”,
3)根据产品需求,分析硬件开发需求 “室内智能环境监测仪”的产品需求是:将测得的温湿度数值同步到手机APP,将测得的空气质量指数数值同步到手机APP,可以使用APP远程控制风扇(用直流小电机模拟)的启停和转速。因此需要在微控制器STM32上编写温湿度传感器DHT11驱动程序、编写空气质量传感器MQ-135驱动、编写直流小电机驱动。
4)结合设备功能需求,分析设备数据点需求 本次项目需要把MCU获取的温度、湿度、空气质量指数3个参数上传到服务器,前两个参数为数值类型,对于云端来讲只读,后一个参数为枚举类型,对于云端来讲只读;直流电机的控制,实际上是手机APP端推送一个具体数值给MCU,MCU利用此数值来控制电机,参数类型为数值,对云端来讲可写;数据点可从excel导入或者导入机智云提供的范例后再修改。
5)创建对应数据点
基于机智云的智能硬件开发流程:创建产品及数据点、设备与应用开发、调试产品、申请发布、正式量产。
|