(江西理工大学 电气工程与自动化学院,江西 赣州 341000)
智能家居与传统意义的楼房相比,它更为舒适、便利、安全。除去建筑物原本的居住功能,它还具有远程通信、设备自动化等特点。智能家居管理系统能够将家庭中的设备进行相互连接,并连上互联网[1]。本文基于TCP/IP协议结合Socket通信、微控制器驱动等技术设计了一个智能云管家系统。
系统功能包括控制端对家居周围环境参数的检测和设备的控制;客户端显示环境参数以及远距离调控家居设备;服务端利用数据库管理用户信息以及传递控制端与客户端的信息[2]。系统框架如图1所示。
图1 系统总体框架
系统选用STM32F103ZET6芯片作为控制核心,负责控制硬件部分的各个模块以及家居设备,并将温湿度传感器采集的数据发送至服务器,同时接收从服务器发来的指令来对家居设备发出控制指令[3]。客户端使用安卓应用向服务器发送指令并获得反馈信息。服务器作为系统主体的一个过渡站,操作数据库存储和处理客户端和控制端的信息。
控制端的MCU以及各种模块初始化完成后向服务端发起连接请求,连接成功后等待服务端发出指令。若接收到的指令是控制指令则对家居设备进行相应控制,若接收到的指令是查询指令则采集温湿度参数。
温湿度传感器DHT11输出是数字信号,可以直接连接到STM32的引脚上。DHT11采用单个引脚完成数据传输,它传送的数据为二进制格式,长度为5 B即40 bit,低8位为校验和,其值为前4个字节相加。前4个字节则分别表示湿度整数部分、湿度小数部分、温度整数部分和温度小数部分,则可计算出温度和湿度的参数大小[4]。
ESP8266模块所有数据通过串口传输,和控制器在共地的前提下连接串口进行指令传输。控制器通过向网络模块发送AT指令将其设置为STA模式下的TCP客户端,当接收到设置成功的反馈信息后,就能够发送连接服务端的AT指令进行连接的建立及信息的传输。
服务端是整个系统中的消息处理中心,负责接收控制器端发送的数据并传送至客户端,接收客户端发送的指令发送至控制端,以及对数据库进行操作。
服务端选择一个空闲端口建立服务端套接字ServerSocket,等待其他设备连接。连接建立成功后开始收发消息,并通过访问数据库存储进行数据管理。设计选用MySQL关系型数据库管理系统来存储、管理用户信息等数据[5]。服务端流程如图2所示。
图2 服务端程序设计流程
用户需成功注册并登录后方可对家居设备进行控制以及对家居环境参数进行查询[6]。客户端功能实现包括注册、登录、请求、发送及其对应返回的用户信息反馈、控制请求发送及其对应的家居设备状态显示、查询请求发送及其对应参数显示。
根据界面设计要求,客户端实现功能见表1所列。
表1 客户端功能设计表
界面布局采用操作灵活的RelativeLayout[7]。布局中进行位置设置时用到三类参数:margin、padding和align。三者的区别是:margin表示当前组件距离其父组件在某方向上的边的距离;padding表示当前组件内的文本距离当前组件某边的距离;align表示当前组件与指定组件的某边对齐。
首先确保硬件部分包括控制器、温湿度传感器、WiFi模块引脚连接无误且各模块通信正常,随后确认手机APP处于正常网络连接状态且与硬件部分保持相应的测试距离。启动硬件系统,运行服务器通信程序,打开手机APP连接服务器[8]。用户登录成功后,即可对家居设备进行管理,客户端(手机)设备控制情况如图3所示。
图3 设备控制界面
手机控制界面包含各类被控设备的开关控制、数值设定、工作时长设置,以及火警提示图标。当火警提示图标变红时,用户确认火警信息无误后可直接点击页面下方的红色电话按钮紧急拨打火警电话。
经过多次从客户端发起注册登录、设备控制和查询参数请求进行测试[9],对成功次数进行统计,比对用户界面显示数据和实际数据,得到系统测试结果,见表2所列。测试结果表明,系统运行状态可靠。
表2 APP测试结果
本文通过三端系统设计,制作了一套智能云管家系统。控制端采集室内环境参数,并通过WiFi模块发送至服务器,实现数据上传。服务器使用MySQL系统管理数据。客户端完成云管家通信程序的开发和用户软件的设计,实现了指令下达。经测试,云管家系统运行状态良好、性能稳定。