摘要: 文章主要介绍了一种基于机智云iot开发平台的空调远程控制模块的应用开发,模块功能是通过智能手机的用户界面远程控制空调的工作,包括工作条件的设置和温度环境监测,开发内容包含了硬件和软件两部分,硬件开发部分主要解决空调控制模块的设计,软件开发部分主要解决互联网通讯问题。
引言
机智云IoT开发平台是面向个人、企业开发者的一站式智能硬件开发及云服务平台,平台提供了从定义产品、设备开发调试、应用开发、产品检测、云端开发、运营管理、数据服务等覆盖智能硬件接入到运营管理的全周期全链条服务,也是智能家居产品开发应用的理想服务平台。查看更多关于智能家电家居的方案,可到机智云官网行业方案查阅。机智云IoT开发平台的接入流程如图1所示。
1,系统设计
空调远程智能控制系统是一款基于机智云IoT开发平台的智能家居产品的嵌入式系统,设计原理是客户端1(空调控制器)通过互联网向服务器(机智云IoT开发平台)发出通讯请求,服务器响应请求后与客户端2(手机APP)建立联系,即建立数据接口,从而建立多客户端间的通讯,最终达到用手机APP实时检测和控制空调的目的。
系统架构如图2所示,空调控制器利用无线通信模块与机智云服务器连接进行通讯,空调控制器负责发送产品序列号和密钥,在机智云IoT开发平台订阅设备,手机客户端利用机智云平台提供的软件开发工具包来开发具有个性化的手机APP,同时使用工具包中提供的方法建立与机智云服务器的通讯,发送序列号和密钥,订阅对应的设备。
系统设计采用机智云的Gizwits Agent(WIFI模块/GPRS模块串口标准协议)和Open API(开放的应用编程接口),不需要研究底层协议,大大减少了开发周期及成本。
1.1系统硬件设计
系统硬件设计主要是空调控制器的设计,其工作原理是传感器采集环境的温湿度信号,MCU实时显示环境温湿度并根据设定阈值进行调节,同时把数据通过网络传送到手机端供客户远程控制。部分硬件模块电路如图3所示,MCU选用STM32F103C8T6单片机,它使用STM32Cube MX软件来生成所需要的外设代码,摒弃了传统的固件库,利用图形化的优势,更直观地配置外设,节省前期底层的代码编写,也缩短了编译时间。
无线通信模块采用esp8266系列芯片,是一款32位泰思立达处理器,具有性能稳定、功耗低的特点。温湿度采集模块采用DHT11温湿度传感器,它是一款性价比较高的单总线型温湿度传感器,性能满足设计需求。显示模块采用市场通用的OLED液晶显示屏,该显示屏可以实现彩色、柔软显示,具有体积小巧、厚度轻薄、携带方便、抗震能力强等优点。
图2系统架构
图3 空调控制器部分模块
1.2系统软件设计
系统软件的设计包括空调控制器程序开发、手机APP开发两个部分[1]。机智云IoT开发平台为开发者提供了开放的网络开发平台,机智云官网为https://www.gizwits.com/。用户进入相关界面,只需注册登入便可以添加属于自己的产品,添加产品时,平台自动分配产品标识码与密钥。在产品创建完成后,根据提示添加自己所需要的数据点,内容如表1所示。
1.2.1控制器程序开发
设备(空调)控制器程序开发方法是借用机智云提供的软件包完成,步骤如下:(1)根据产品密钥下载相应的软件工具包,内容包括官方提供的移植手册和设备控制程序。(2)用户需将MCU的通信接口参数配置好,同时将机智云所提供的系统固件程序烧录进无线通信模块芯片中,固件封装了设备与云端通信的协议以及通信流程,减少了开发者研究相关网络协议而花费的精力。
(3)设备MCU进行设备控制程序的代码移植[2]。这一步是关键,代码移植成功后马上调试单片机控制无线通信模块实现网络通信,过程比较复杂,无线通信模块必须先进行配网,以Air Link模式为例,设备MCU向无线通信模块发送指令进入配网模式,手机在连接WIFI路由的前提下,打开机智云提供的调试APP选择配网模式,APP会发送一个UDP(用户数据报协议)广播数据包,包中存放了WIFI路由器的账号和密码,无线通信模块接收到该包后对内容进行解析,获得WIFI路由器的账号和密码,然后配置本地无线通信模块直接连接WIFI路由器[3]。
(4)无线通信模块配网成功后,编写设备本地控制程序并调试。设备与云端通讯成功,手机调试APP会显示设备的名称与工作状态,网页端调试日志中也会显示设备已上线,这样设备MCU可以通过本地控制程序读写最初设置的数据点,实现设备与云端数据的交互,达到实现远程控制的目的。
1.2.2手机APP开发
机智云IoT开发平台为开发者提供了多种适合于快速开发的移动端开源框架,但框架存在耦合性过高、各类推送烦琐、云广告干扰频繁等缺陷,因此本系统采用Android studio开发环境,使用Java语言自行开发APP,同时采纳机智云平台所提供的SDK(软件开发工具包)进行APP开发设计,APP开发流程如图4所示。
APP首先完成GUI(图形界面)框架的搭建,GUI创建采用由Android studio内置的Base模板,引入腾讯推出的QMUI第三方库可以进行界面美化,最终设计界面如图5所示。
框架构建完成后,参考机智云官网提供的Android SDK集成指南通过Giz Wifi SDK类初始化SDK。具体方法是参考机智云官网提供的Android SDK集成指南,先对工程代码进行移植,将SDK中jar包以及应用程序二进制接口文件导入安卓工程中,再在安卓工程目录下对AndroidManifest.xml文件进行本地环境配置,配置参数说明如表2所示。由于Android 6.0新增了运行时权限动态检测,GizWifiSDK在使用权限的时候需要先进行判断,开发者还应在build.gradle中写入权限申请的动态检测代码,最后完成程序编写。
表1 数据点分析
图4移动端APP开发流程
图5设备控制页面
2 系统测试
软硬件开发完毕后进入联调联试阶段。测试开始时,首先设备需要入网,使设备进入配网模式,通过机智云提供的测试APP对设备进行配网,配网成功后,在测试APP的设备列表中会出现新的设备,此时可以使用测试软件来对硬件系统的数据接收与发送,以确保每个模块都能成功接收到云指令。
在软件测试部分中,可以使用开发者中心的虚拟设备收发数据来测试开发的APP是否能访问云服务器,通过此方式调试还可以确定数据的准确性。最后,将设备、机智云、APP整合完毕,就能够实现精确的数据上传及下发,从而实现智能家居的远程控制功能。
表2 权限说明
3 结语
该嵌入式系统是智能家居系统的典型应用,采用了M2M算法模型(一种模仿人类思维方式与解决问题方法的全新算法设计模型),可实现自动采集数据并上传到云端,打破时间与空间的束缚,真正做到远程的操控,为家庭提供24 h全方位的保障。
|