基于ARM的智能家居安防监控系统的设计与实现
各种设备由于功能不同,驱动程序提供的函数接口也不相同,但Linux为能够统一管理,规定了Linux下设备驱动程序必须使用统一的接口函数file_operations。根据功能填充对应的file_operations中的接口函数。为便于开机启动,统一地将驱动程序静态编译到内核。
另外,涉及设备节点的创建,选择了udev机制来自动创建设备节点,具体步骤如下:
1)在一开始定义一个类class,再在类下面定义一个设备class_dev;2)xx_init()函数中,使用class_creat()和device_creat()创建设备节点;3)xx_exit()函数中,使用class_destory()卸载设备节点。其中,设备号的选择,通过查询内核中Documents/device.txt选用空闲的设备号,当然也可以用major=register_chrdev(0,name,file_operation)自动生成。
3.2 串口通信程序设计
系统的主要功能是实现家居环境参数的采集、上传和监控页面控制命令的下发,所以数据传输是整个应用程序的关键部分,即S5PC100与GPRS模块的串口通信程序的设计。
在定义与串口相关寄存器地址的基础上,以结构体构造新的串口数据类型,结构体成员为函数指针,它们指向编写的具体实现函数,而函数体中的数据直接操作串口寄存器,实现了串口驱动程序,实际上就是上面驱动程序思想,填充对应的file_operations中的接口函数,实现我们自己的驱动程序。以下是实现串口数据类型的主要源代码:
串口采用中断方式接收数据,提高了串口数据处理的实时性和整个CPU的工作效率。具体来说,S5PC100的串口1收到输入模块发送的家居环境参数,进行逻辑判断,结合输出模块处理后,传输到监控页面,实现数据的上传;S5PC100的串口1收到监控页面发送的指令后,调用相应的处理函数,把指令同步到各个模块,实现数据的下发。
3.3 Web服务器的搭建
为方便用户通过internet或GPRS网络接入互联网,远程监控家里情况,提供远程Web服务。本模块主要包括2个部分:
1)BOA服务器模块设计:在嵌入式系统中移植BOA服务器,提供Web服务;
2)cgi模块详细设计:根据监控页面上的不同按钮,发送不同信息给S5PC100,S5PC100调用相应的处理函数,执行网页按钮相应功能。
3.4 应用程序整体设计
在搭建好系统环境,成功移植硬件驱动后,在Ubuntul2.04上Linux2.6内核环境下进行程序的开发调试。系统中主要的进程,包括3个线程等待控制命令,在代码中采用轮询的形式来对线程状况进行检测,发生问题的时候进行相应得处理,用户可通过网络访问本系统并远程进行控制操作。调用了两个线程分别操作thief处理线程和fire处理线程。thief线程和fire线程分别调用GPRS模块和摄像头模块进行短消息的发送和图像的采集及保存。同时调用FS_S5PC100开发板自带的,蜂鸣器模块和LED模块实现报警,另外利用流水灯模拟灭火的操作。具体框架如图3所示。
输入模块和输出模块也是分别创建线程处理不同的任务,模块之间通信选用了消息队列,对于共享资源采用了互斥锁和条件变量,保证资源的共享和原子操作。
4 测试结果
整个系统在实验室环境下进行了测试,利用S5PC100开发板上自带的按键key1模拟外人闯入,按键key2模拟主人进入,温度的采集使用了LM75温度传感器采集,同时为便于调试我们同时也利用ADC来模拟温度变化。整个监控界面效果图如图4所示。
通过点击页面上的用户设置按钮,可以设置用户名、密码的修改及新用户的增加;手机短信号码的修改及新手机号码的增加;短信中心号码更改;报警温度设置,这些参数设置好后都保存在数据库中。点击用户基本信息按钮,可以查看用户信息,及报警功能的开关状态等。点击历史照片查看,会跳转到,页面首先显示第一张照片,可以在查看照片的页面上点击上一张、下一张、返回主页面按钮。点击历史照片下载按钮,历史照片会以_tar.gz格式打包。点击连拍按钮,摄像头会自动连续拍照5张并存储。另外,在开发板上配置并开启crontab定时服务,实现历史照片的定时删除功能。
在测试报警功能时,先要点击主页面开报警功能按钮,当按下S5PC100开发板上的key1键,蜂鸣器响,指定手机收到报警短信,抓拍的照片可以通过点击页面历史照片查看按钮查看。通过点击主页面关闭当前报警按钮,关闭蜂鸣器。当调节电压协调器使模拟的温度过高时,蜂鸣器响,指定手机收到报警短信,流水灯不断闪烁模拟灭火。点击报警日志查看报警记录,效果如图5所示。
5 结论
以上提出的基于ARM的智能家居安防监控系统的实现方案,有机结合了ARM高效的处理技术、GPRS可靠的远程数据传输技术、动态网页设计等技术,不仅实现了安防方面的迅速报警、记录证据和远程监控等功能,而且误报率低、成本低。实验证明,该系统运行可靠,达到了远程监控的要求。另外,本系统还需继续改进,比如,将开发板上时间调整到标准时间;增加利用tftp实现远程更新应用程序等功能。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码