开发平台:
ARM板:TQ2440/GQ2440
内核:linux-2.6.30
硬件配置:
无线路由器
无线网卡
Usb摄像头
电机驱动模块+小车
整体介绍:
本项目选用S3C2440作为主控制器,驱动小车为载体,裁剪linux2.6.30内核,使其具备无线上网功能,支持usb接口功能。然后构建根文件系统,移植boa服务器,编写html+css静态界面。然后利用无线路由器构建一个局域网,使得用户可以通过浏览器来查看小车终端的相关信息,并通过cgi脚本程序/java applet 进行用户端和终端的交互。
总共是四个界面:
l 首页:欢迎界面,以及用来扩展显示后续的温湿度等传感器采集到的信息。
l 网络控制LED灯:是用来控制arm板的led灯显示,作用主要有两个,一个是测试用户端和终端是否建立连接了。例外一个是用来根据温室内传感器传递回来的信息,来控制温室内相关的照明设备
l 智能小车操纵:用来控制小车在温室内行走。
l 网络摄像头:java applet技术,用来接收显示arm端摄像头采集到的视频信息
整个界面采用html+css实现,非常易于扩展。
知识剖析:
1. B/S结构的实现
B/S结构即基于浏览器/服务器的工作模式。在这个项目中是如何构建这样一个B/S结构的呢?
首先需要一个无线路由器,对路由器进行配置,共享热点。然后在arm上移植无线网卡驱动,配置无线上网,使其连接到此无线路由器的热点上。然后移植boa服务器到arm上。编写网页文件。这样服务器端就搭建好了。客户端只要连上此路由器的热点,及可以通过浏览器来访问网页了。
2. cgi脚本程序实现交互
平时我们上网,访问的大多数网页已不再是以前的静态网页了【html】,动态交互是非常常见的,如注册、登陆界面。通用计算机领域,客户端和服务器的动态交互主要是采用asp,php,.net等动态脚本语言。这些语言都被web服务器如iis,apache等支持。而在嵌入式环境中,由于设备硬件资源有限,所以无法支持常见的web服务器,需要有专门的web服务器,本项目中选用的boa服务器,非常轻巧,编译后只有几十kb。Boa服务器不支持asp等服务器端脚本语言。所以选用了cgi。【最早的服务器端脚本语言,后因为编写困难,功能单一逐渐被目前的这些脚本语言替代】cgi:公共网关接口,本身并不是一门编程语言,只是个开放的脚本语言。可以用shell,c等来实现。这里因为c语言可移植性好,本人比较熟悉,所以选用他。
在html中可以通过提交表单、超链接、SS来进行调用CGI脚本程序。然后在CGI脚本程序中完成对arm硬件的相关操作。
3. 视频传输服务
本项目最大的特色及亮点就是视频传输服务。那么视频如何进行传输的呢。
首先是在配置linux内核支持摄像头驱动,然后编写摄像头应用采集程序。客户端是通过网页中嵌入JAVA applet来进行视频信息的接收。
这篇是大体介绍,后面会详细介绍具体技术的实现