在网页上显示信息主要是通过.xml文件实现的。首先,网页通过BOA服务器,调用CGI(Common Gateway Interface,通用网关接口)程序控制网页线程,并发送命令给单板。然后,单板将采集到的数据发送给家电物联网服务器,服务器通过向.xml文件中写入采集到的数据,实现网页的实时信息动态显示。当网页客户端在浏览器中发送请求(如设置报警温度等)时,BOA服务器会调用CGI接口解码,区分提交过来的信息,然后把这个信息发送到单板,实现对单板的控制。Android手机客户端与家电物联网服务器的通信则主要是通过套接字进行的。
3.3 Android客户端软件设计
Android是一个专门为移动电话而设计的开放源码的操作系统,它将开辟新的应用,使家居智能化运用于普通家庭。Android客户端控制系统采用模块化的设计思想,主要包括应用层UI(User Interface,用户界面)、JNI(Java Native Interface,Java本地接口)、HAL(Hardwa re Abstraction Layer,硬件抽象层)和底层驱动等的设计。Android应用程序由一个或多个组件构成,组件包括activity、service等,每个组件在应用程序中完成不同的任务,可以被单独激活,也可以由其他应用程序激活,其具体流程如图4所示。
其中,HAL层包括LED灯、蜂鸣器和按键等设备,主要用于实现供JNI调用的接口。在函数实现中,HAL利用底层驱动提供的接口(即ioctl)来控制寄存器,实现对设备的控制操作。JNI层通过封装将Framework层调用的接口关联到JNI层,每个设备都有自己唯一的设备ID。应用层UI显示来自M0的模拟量,主要用于管理A8上各种设备的工作情况,可以实现LED控制、按键检测、蜂鸣器控制、A/D转换、温度传感器的数据读取和方向传感器模拟值的处理等功能,其控制程序客户端主界面如图5所示。图中,上侧为项目菜单栏,通过不同项目菜单下的信息和控制按钮,可以实现对家居设备的远程实时监控;中间部分是对不同设备的控制开关,通过这些开关可以实现对警报灯、电风扇和蜂鸣器等设备的控制,并可以根据需要对报警温度值进行设置;最后,通过对下侧不同测量点的选择,可以实现对不同位置房间的监控。
结语
将设计的Android手机客户端软件安装后,经反复测试,手机可以通过无线网络实现对家居设备的控制。同时,也可以通过Internet远程监控网页实现对家居设备的控制。通过本系统,可以实现对家居设备的集中管理和控制,随时随地掌控家中的状态,得到家中的最新状况。
此控制系统采用当前较新的控制方式——远程监控网页和智能手机软件控制,与其他终端控制方式相比优势明显。同时,设计开发的手机软件具有通用性强、易于移植、市场应用价值高、易于推广等特点。本系统的设计不仅涵盖了Linux系统开发的软硬件技术,同时也包含了嵌入式产品设计的各种综合素质和多项技能,具有一定的实用价值。