微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 一种基于嵌入式Linux的智能家居监控系统设计

一种基于嵌入式Linux的智能家居监控系统设计

时间:03-07 来源:互联网 点击:

在配置相关库文件选项时把这个库加入,再编译一下内核就可以使用libjpeg 库。

图像压缩封装调用image 类的compress 函数,如下所示:

Int image compress(image *newone,int quality)这个函数的功能是按照指定的quality 比率将图片压缩成JPEG 格式。函数中的两个参数分别是指向新的image 类数据的指针( 即压缩后的图像数据),另一个参数是指定压缩比率,一般范围为0~100.当数字越大,压缩得到的图片质量就越高,也就越清晰,但同时压缩后的数据文件容量越大。所以压缩比不是越大越好,需要根据实验的现实需求来确定,以满足实验功能要求且存储成本和传输成本最低为标准。

  2.5 短消息的收发

嵌入式监控系统通过使用串口与GPRS 连接,通过使用GPRS模块来进行短消息的收发。SMS 短信的收发有两种模式,即文本模式和PDU 模式。文本模式只能发送变通的ASCII 字符,短信内容简单,其最大不足之处是不能收发其他字符。PDU 模式将发送的信息按照一定的格式进行新的编码,一般是十六进制数的PDU序列为主,把所有中文或者图像进行编码后再予以发送(如图2 - 1)。

编程过程如下:

1) 打开串口

打开串口设备文件需要使用标准的I/O 操作函数。

Fd=open(“/dev/ttyS0”,O_RDWR|O_NDELAY|O_NOCTTY) ;

2) 设置串口属性

串口有一些规定的属性必须进行设置,否则就不能正常运行,一般要设置波特率、控制模式标志、本地模式标志、输入/ 输出模式标志、控制字符等相关串口属性。

3) 清空发送/ 接收缓冲区

为了避免以前的数据的干扰,必须对缓冲区的数据进行清空之后才能把数据读入缓冲区,这样做的目的是为了避免不必要的数据干扰。

4) 从串口读写数据

串口的数据读/ 写使用的是标准的读/ 写函数(read() 和write())。

5) 关闭串口

关闭串口为下次再使用串口提供方便。关闭串口的函数是close() 函数。

  2.6 彩信的发送

Linux 系统中的视频子系统为Video4Linux, 他为应用程序提供了一个完整、统一的API 函数,视频应用程序只要调用这些API 就能完成对视频捕捉设备的操作。设备的节点文件在#mknod/dev/video c810

1) 打开设备

用open() 函数来打开设备。

fVideo=open(“dev/video”,O_RDWR) ;

2) 获得设备参数

Ioctl(fVideo,VIDIOCGCAP,&vcap) ;

3) 设置图像采集参数

Ioctl(fVideo,VIDIOCGPICT,&vcap) ;

4) 图像采集

Ioctl(fVideo,VIDIOCMCAPTURE,&mem) ;

5) 等待采集结束,由于采集需要一段时间,所以应用程序需要有一个相应的等待期

Ioctl(fVideo,VIDIOCSYNC,&mem,frame) ;

6) 将采集的图像数据写入文件

Write_jpeg(buf++mb.offsets[0],mem) ;

7) 清空内存映射

Munmap(but,mb.size) ;

8) 关闭设备

Close(fVideo) ;

得到图像数据后,再把数据进行MMS 的封装,首先是加上MMS 头部分的数据封装,再对SMIL 部分封装,这里主要是指定显示MMS 的相关信息,最后对每个输入的多媒体信息进行编码。最后通过GPRS 模块把信息发送出去。

  3 系统功能的测试结果

本文测试基于jpeg 格式标准的视频数据的采集、传输以及显示。由摄像头完成视频数据的采集,通过由GPRS 封装后把图像数据传输到手机。红外感应到有人进入时,摄像头取下的图像照片,并再通过GPRS 模块把图像发到用户的手机上,从而完成了有效的监控动作。

一种基于嵌入式Linux的智能家居监控系统设计

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top