智能家居-智能家居系统开发样例_第1页
智能家居-智能家居系统开发样例_第2页
智能家居-智能家居系统开发样例_第3页
智能家居-智能家居系统开发样例_第4页
智能家居-智能家居系统开发样例_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章智能家居系统开发样例《物联网应用技术(智能家居)》教育部计算机类专业教指委-华为协同育人项目能力CAPACITY要求熟悉HiLink产品开发流程。掌握HiLinkDeviceSDK库地使用,可以进行API适配,编译,执行与调试掌握AppH5开发,以和JSAPI接口地使用。可以开发出一个简单地智能家居系统HiLinkDeviceSDK应用实例HiLink产品开发流程App设备H5页面开发HiLink产品创建指导HiLink产品开发流程HiLink产品设置指导HiLinkDevice固件开发指导HiLink产品创建指导打开华为HiLink官网主页HiLink产品创建指导单击右上角“跳入联盟”按钮,打开华为HiLink开发主页HiLink产品创建指导单击“注册”按钮,进入注册页面,如图8-3所示。可通过单击左上角地按钮“手机号“或“电子邮箱“按钮来选择不同注册方式。HiLink产品创建指导在注册页面中填入手机号/邮箱信息,进行验证后,单击“注册”按钮,弹出“华为账号通知”HiLink产品创建指导单击“同意”按钮,跳转到登录页面,如下图所示。单击“授权并登录”按钮HiLink产品创建指导登录HUAWEIHiLink认证平台后,在首页单击“跳入开发者联盟”按钮,进入开发者桌面HiLink产品创建指导选中左侧菜单栏中“生态服务”选项,右侧出现“开发服务”界面HiLink产品创建指导单击“HiLink智能家居-产品管理”按钮,进入智能家居产品管理界面HiLink产品创建指导单击“创建产品”按钮,弹出创建产品窗口HiLink产品创建指导在左侧菜单栏里单击选择某一个产品大类后,在右侧会出现相应地具体产品类型界面。以创建安防类为例,选中“安防”选项如果所选产品无法找到或所选产品处于“开发中”,请发邮件给相应界面中显示地华为工作人员地邮箱。HiLink产品创建指导在产品创建基本信息对话框中,分别填写产品基本信息:接入方式,品牌名称,产品名称,产品英文名称,产品连接方式,产品型号,产品硬件版本号,产品升级描述,上市时间,单击底部地“创建产品”按钮,完成产品地创建HiLink产品创建指导HiLink产品开发流程HiLink产品设置指导HiLinkDevice固件开发指导HiLink产品设置指导在产品创建成功对话框中单击“立即前往”按钮,进入产品设置界面接入方式硬件接入固件开发云云对接接口开发接下来演示地是接口开发功能定义单击“添加”按钮,可对标准功能,自定义功能与基本功能进行添加。HiLink产品设置指导功能定义完成后,单击“界面设计”按钮,进入App界面设计与开发界面参照本书7.2节EMUI智能家居UX设计地讲解进行UI界面地设计与开发,并上传H5文件包。HiLink产品设置指导单击“接口开发”按钮,进入接口开发界面HiLink产品设置指导单击“管理”按钮,进入调测界面HiLink产品设置指导接口开发完成后,单击“产品配置”按钮,进入产品配置界面HiLink产品设置指导单击“配网信息”栏地“管理”按钮,弹出如图8-18所示对话框,在对话框中上传配置文件与图片。HiLink产品设置指导单击“产品状态图配置”栏地“管理”按钮,弹出下图所示对话框,在对话框中上传配置图片。HiLink产品设置指导单击“设备联动配置”栏地“管理”按钮,弹出下图所示对话框,在对话框中上传配置文件。HiLink产品设置指导完成产品配置后,单击“产品认证”按钮,填写产品认证资料HiLink产品设置指导单击“进度详情”按钮,可查看该产品开发地进度,会出现下图所示页面。绿点表示已完成地步骤,灰点表示尚未完成地步骤。HiLink产品创建指导HiLink产品开发流程HiLink产品设置指导HiLinkDevice固件开发指导接入方式硬件接入固件开发云云对接接口开发接下来演示地是固件开发HiLinkDevice固件开发指导选中“照明”选项HiLinkDevice固件开发指导选中“智能台灯”选项,之后单击对话框下方地“下一步”按钮,弹出“创建产品”“编辑产品基本信息”对话框选中“硬件接入”选项然后填入相应信息单击“创建产品”按钮。HiLinkDevice固件开发指导创建产品后进入“产品配置页面”HiLinkDevice固件开发指导开发方式与模组选择模块界面HiLinkDevice固件开发指导在模块选择模块中,在“模组品牌”下拉列表中选择要开发地产品使用地模组HiLinkDevice固件开发指导单击“MCUSDK下载”,下载SDK开发所需材料HiLinkDevice固件开发指导开发包doc目录MCUSDK集成指导书文档hilink_mcu_sdk目录HiLinkMCUSDK代码XXXX.json文件设备功能描述json文件,用于用户直接阅读参考HiLinkDevice固件开发指导在下图所示地“上传固件”模块中,补全所有固件信息,带*为必填项。(1)单击“上传文件”按钮,选择本地固件进行上传。(2)在“固件版本”框中填写固件版本号(固件版本指与产品配套使用地软件版本/安装包/升级文件…)。(3)模组/芯片型号:填写产品与该固件配套使用地模组和芯片型号(4)升级描述:首次提供版本,需描述设备支持地具体功能。版本更新时,需填写升级改动内容。建议格式【新增功能】XXX【修复Bug】XXXHiLinkDevice固件开发指导所有信息填写完毕后,单击“下一步”即可完成固件上传HiLinkDeviceSDK应用实例HiLink产品开发流程App设备H5页面开发智能灯泡实例HiLinkDeviceSDK应用实例智能开关实例包含智能灯泡地智能家居组网示意图用户可以通过智能家居App添加设备,添加地过程如下当设备入网正常并成功启用服务后,用户就可以通过智能家居App查看当前连网地设备状态,并进行设置例如“打开/关闭灯泡”与“调节灯泡亮度”功能。灯泡地profile地JSON描述{

"on":"1",//点亮灯泡

"brightness":"80",//灯泡亮度为80%

"hue":"200",//设置灯泡地颜色

"colorTemperature":"5000",//设置灯泡地色温

}智能灯泡实例HiLinkDeviceSDK应用实例智能开关实例智能开关实例完成配网功能参考在样例hilink_link_sample.c中关于配网流程地详细描述。部分芯片与OS相关函数需求集成方适配对应函数适配对应函数填写对应地prodID,调试阶段打印出来确认完成互联互通业务功能(1)入口文件hilinkmain.c,初期调试使用最简单地开关。基本功能调试完成后,可根据同华为协商下地profile格式以和HiLink认证表格地产品信息,修改代码中地产品信息,相关参考文件:hilink_process.h,hilink_process.c。完成互联互通业务功能(2)hilink_profile.c完成设备控制,数据上报与信息获取,升级,恢复出厂,WIFI密码主要功能,根据设备功能做修改。3)hilink_osadapter.h与hilink_socket.h文件跟设备OS有关系,如有需求请替换为平台OS相关函数,hilink_osadapter.chilink_socket_stub.c供参考。完成互联互通业务功能(4)请向华为申请CR(hilink_bi_get_cr)与AC(hilink_sec_get_Ac)文件替换函数内容,否则将影响业务。(5)设备控制与设备信息获取地数据格式都是JSONformat,请适配好JSON函数,如表8-3所示。样例代码地Json供参考,推荐使用cJSONJson函数开关样例本样例基于64位Linux环境,以开关为例:产品prodID"9004",build语句如下。./buildSmartSwitch配合调试App完成基本功能调试(1)选择服务器获取华为智能家居App调试版本APK——“smarthome-local-debug.apk”,建议使用Android版本调试,以下以Android版本为例。安装调试智能家居APK后,添加设备(SDKdemo使用地设备ID为9004)。登录智能家居App,注意首次打开App需求选择服务器,如图8-32所示,选择“武汉云”选项即可,后续无需再选择(在首次选择服务器后,如果需求切换服务器,可在“我地-设置-关于”页面选择“切换服务器”)。配合调试App完成基本功能调试(3)选择“切换分支”,选择分支“主线”,如图8-34所示。切换分支后App将自动关闭,请重启。配合调试App完成基本功能调试(4)重启App后再次进入“我地-设置-关于”页面,点击“切换环境目录”,在弹出地对话框中单击“开发环境(debug目录)”,如图8-35所示。之后App将自动关闭,请重启。配合调试App完成基本功能调试(5)最终“关于”页面地配置应如图8-36所示。进入首页下方,选择“添加设备”,即可扫描到需求对接地设备,设备id为9004,则App扫描结果将会将设备识别为“开关(调试)”:配合调试App完成基本功能调试按照提示一步步添加(注意如果使用华为路由,可直接添加设备,否则需输入wifi密码,按照提示操作即可)。配合调试App完成基本功能调试测试页面提供简单地按钮测试SDK集成效果,点击“开启/关闭”按钮,观察App下发给设备地消息,响应,以和设备上报地状态信息,如果能显示以下信息即表示SDK集成成功,数据通路已经打通。SDK调试打印信息

配网调试切频锁频收包成功互联互通调试设备注册成功上线HiLinkDeviceSDK应用实例HiLink产品开发流程App设备H5页面开发H5页面调试App设备H5页面开发厂商自定义H5加载开设备开始调试AppJSAPI接口开发实例H5页面调试安装调试智能家居APK后,登录智能家居App,注意首次打开App需求选择服务器,选择“武汉云”即可,后续无需再选择(在首次选择服务器后,如果需求切换服务器,可在“我地-设置-关于”页面选择“切换服务器”)H5页面调试选择“切换分支”,选择分支“主线”。切换分支后App将自动关闭,请重启。重启App后再次进入“我地-设置-关于”页面,选择“切换环境目录”,选择“开发环境(debug目录)”,之后App将自动关闭,请重启。H5页面调试添加设备添加设备(HUAWEIHiLinkSDKDEMO使用地设备默认ID为9004)。未配置设备控制页面地访问路径地情况下,点击进页面设备将会无法访问。在配置可访问地HTTP服务器后,点击控制页面,App将会访问对应地网页。本地设备控制测试页面环境搭建下载一个免费http服务器小工具:hfs,将PC与App所在地手机至于同一个局域网。在PC上打开hfs。打开后界面:本地设备控制测试页面环境搭建以华为地HiLinkJSAPIDemo.html为例子,将文件HiLinkJSAPIDemo.html置于文件夹tmp中,将tmp文件夹拖动至hfs界面内,选择tmp文件夹地路径0:8080/tmp本地设备控制测试页面环境搭建点击按钮“复制到剪贴板”复制服务器路径,浏览器中可以打开当前路径:点击HiLinkJSAPIDemo,打开新连接,获取当前页面地址:H5页面调试App设备H5页面开发厂商自定义H5加载开设备开始调试AppJSAPI接口开发实例本地设备控制测试页面环境搭建智能家居App提供H5页面调试功能,支持设备详情页面加载开发者自定义地地址:进入“我地-设置-关于”页面点击HiLinkJSAPIDemo,打开新连接,获取当前页面地址:本地设备控制测试页面环境搭建点击“H5地址配置”,在弹框内输入服务器地址,则后续打开设备详情页面时,App将访问所指定地地址。点击HiLinkJSAPIDemo,打开新连接,获取当前页面地址:H5页面调试App设备H5页面开发厂商自定义H5加载开设备开始调试AppJSAPI接口开发实例开设备开始调试进入“智家”页面,打开调试设备,例如“卧室地控客Wifi智能插座”,则当App下发指令到设备时,可以实时查看请求与响应信息,同时设备主动上报信息也可以查看:H5页面调试App设备H5页面开发厂商自定义H5加载开设备开始调试AppJSAPI接口开发实例智能家居App提供了在App内部加载呈现HTML格式web页面地功能,允许页面中通过JavaScript调用App所特有地JSAPI接口,从而实现对智能家居Appnative功能地联动控制。智能家居APPwebviewjssdkH5页面H5页面H5页面智能设备HiLink云/HiLink网关WiFiWiFi/3G/4G1)智能家居App中集成了JSSDK,提供了一套JSAPI供页面调用。2)H5页面可使用JavaScript调用JSAPI接口,将命令下发给App。3)此时,App将收到该JSAPI调用,进行解析处理。例如,智能设备地控制命令将通过智能家居云/HiLink网关下发到智能设备。功能流程JSAPI列表设备通信接口获取设备在云上地所有数据直接从设备获取数据下发设置到设备设备上报消息处理函数获取设备云上历史信息扩展接口退出设备页面设置标题栏是否可见拉起设备设置页面启用重写安卓物理返回键异常错误码描述当需求一次性获取App本地缓存地设备全部状态时,WEB中调用js方法如下。此接口一般用到设备界面刚刚打开时,快速展示设备界面。此接口仅涉和本地调用,不发出网络请求,将快速返回结果。获取设备在云上地所有数据hilink.getDevCacheAll(devid //string,请取”0”,表示当前设备,暂不支持其它取值body, //string,json格式,留空,可选resultCallback//string,传入回到函数名称。成功或失败时,将调用传入resultStr返回结果);请求消息当调用成功时,JSSDK将调用success对应地回调函数,将结果返回到resultStr中。resultStr地结构如右{"devId":"xxxxx","gatewayId":"xxxxx","nodeType":"xxxxx","devInfo":{"sn":"00E0FC018008","model":"SmartSpeaker","devType":"004","manu":"002","mac":"","hiv":"1.0","fwv":"10.01","hwv":"VER.C","swv":"V100R001C01B010","protType":1,"prodId":"000b"},回应"services":[{"st":"light","ts":"20151212T121212Z","sid":"/light1","data":{"characteristicName1":"value1","characteristicName2":"value2"}]}

【错误码】:{"errcode":12}如果设备响应超时,返回10HILINK_DEV_TIMEOUT如果设备不在线,返回1HILINK_DEV_OFFLINE如果数据校验失败,返回12HILINK_VALIDATE_ERR该接口为带proId地获取设备状态地接口。该接口为实时通过网络从设备获取,视网络情况可能比较耗时。当需求获取设备状态时,WEB中调用js方法如左:直接从设备获取数据hilink.getDevInfo(devid, //string,请取”0”,表示当前设备,暂不支持其它取值sid, //string,为该设备地serviceid,取值参见HiLinkProfile定义body, //string,json格式,可选,见下描述resultCallback//string,回调函数名称,成功或失败时,将调用传入resultStr返回结果);当调用成功时,JSSDK将调用success对应地回调函数,将结果返回到resultStr中。resultStr地结构如右回应{"characteristicName1":"value1","characteristicName2":"value2"}【错误码】:{"errcode":12}如果设备响应超时,返回10HILINK_DEV_TIMEOUT如果设备不在线,返回1HILINK_DEV_OFFLINE如果数据校验失败,返回12HILINK_VALIDATE_ERR当需求将下发命令给设备时,WEB中调用js方法如下。一般用在接收到用户对设备地操作指令时。下发设置到设备hilink.setDeviceInfo(devid,//string,请取”0”,表示当前设备,暂不支持其它取值body, //string,json格式,可选,见下描述resultCallback//string,回调函数名称,成功或失败时,将调用传入resultStr返回结果);web页面中需实现该函数,用来获取设备产生地事件设备上报消息处理函数functiondeviceEventCallback(event){varresult=event; //事件详情}当需求处理设备产生地事件时,WEB中需求实现如下方法获取event设备上报消息处理函数{"devId":"{deviceId}","gatewayId":"xxxxx","services":[{"st":"air_conditioner","ts":"20151212T121212Z","sid":"1","data":{"characteristicName1":"value1","characteristicName2":"value2"}}]}当需求获取Device历史信息时,WEB中调用js方法如右获取设备云上历史信息hilink.getDevHistory(devid, //string,请取”0”,表示当前设备,暂不支持其它取值pageNo, //string,缺省0pageSize,//string,缺省10startTime,//string,格式:20150501T010203ZendTime,//string,同上sid, //string,为该设备地serviceid,取值参见HiLinkProfile定义character,//string,为该设备地characteristicName取值参见HiLinkProfile定义"resultCallback"//resultCallback,成功或失败时,将调用传入resultStr返回结果);当调用成功时,JSSDK将调用success对应地回调函数,将结果返回到resultStr中。resultStr地结构如右回应{"totalCount":2,"pageNo":0,"pageSize":10,"list":[{"devId":"xxxxx","gatewayId":"xxxxx","sid":"/light1","data":{"characteristicName1":"value1","characteristicName2":"value2"},"timestamp":"20151212T121212Z"}]}如果设备响应超时,返回10HILINK_DEV_TIMEOUT如果设备不在线,返回1HILINK_DEV_OFFLINE如果数据校验失败,返回12HILINK_VALIDATE_ERR[错误码]{"errcode":1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论