今天开始学习制作智能家居网络系统,这个项目相对简单的多,但对于新手还是有难度的,所以今天我写出来,尽我最大努力写详细一点。
讲解过程中所涉及全部代码下载地址:[智能家居网络系统.rar](http://download.csdn.net/detail/qq_21792169/9215059)
写制作过程之前我先讲解一下基本的框架和思路。(主要是框架,自己掌握知识了自己就可以添加其他的功能,比如显示温度湿度,气体浓度,光照强度,摄像头模块,这些都只需要添加相应的驱动就可以了,其他的基本一样)。
首先在开发板上搭建好服务器,然后自己写一个HTML表单,HTML主要是用来作为人际界面来交互信息,比如账户登陆,数据显示,传递数据,仅仅是一个界面,这些数据是要用一个叫CGI脚本文件来处理的,脚本文件怎么源程序里面是有的,CGI脚本文件是可以嵌套的,这些都是放在服务器端,只要服务器运行boa服务器就可以在局域网任意一台电脑访问这个服务器的IP地址来访问这个网页,在网页上输入账户,密码在进入到控制界面,这些数据处理全是放在脚本文件,里面有一些配置文件,下面我们来具体分析下这些代码。
!!!在做这个项目的前提是你的开发板能够正常跑起来。
首先是搭建boa服务器:
下载boa源码,[boa-0.94.13](http://download.csdn.net/detail/qq_21792169/9214991)
~~~
# tar -xzvf boa-0.94.13.tar.tar
# cd boa-0.94.13/src/
# ./configure
# vi Makefile // : = gcc 和 CPP = gcc -E, 后 改 成 : = arm-linux-gcc 和CPP =arm-linux-gcc -E
#vi src/compat.h /*把 120 行改为如下内容: #define TIMEZONE_OFFSET(foo) foo->tm_gmtoff*/
# vi boa.c
/*
if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
}
即修改为:
#if 0
if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
}
#endif
*/
/*下面红色这部分有些系统需要修改,有些不需要修改,你可以先不加,如果出错了在修改,错误打印在日志文件中*/
if (passwdbuf == NULL) {
DIE("getpwuid");
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE("initgroups");
}
#endif
#if 0
if (passwdbuf == NULL) {
DIE("getpwuid");
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE("initgroups");
}
#endif
#endif
#make
#arm-linux-strip boa /* 这里的优化就是去除 boa 中的调试信息: */
~~~
把boa复制到根文件系统usr/bin目录下,这是一个应用程序。
配置boa.conf文件:
1 去掉boa.conf ServerName www.your.org.here 前的注释#
2 修改访问权限:修改User nobody 为 User 0 ; 修改Group nogroup 为 Group 0
3,修改DocumentRoot为DocumentRoot /etc/boa/www /* 存放网页的地方 */
DirectoryIndex index.html /* 网页名字,和这里要保持一致 */
ScriptAlias /cgi-bin//etc/boa/cgi-bin/ /* 存放cgi脚本的位置 */
4:在开发板/etc创建boa,在boa下创建www(用来放网页文件)和cgi-bin两个文件夹,并复制boa.conf到boa下,
在var文件下建立/log/boa文件下(这两个下面放ErrorLog /var/log/boa/error_log AccessLog /var/log/boa/access_log
)
拷贝PC上/etc/mime.types文件到开发板/etc目录下
现在boa服务器就搭建成功了,你可以拷贝 一个网页命名为index.html到开发板的/etc/boa/www下,记得把这些文件加可执行权限,在pc机上访问我们开发板,输入210.41.141.155(我的开发板ip是这么多,你只需要改成你的就可以了,但是移动要开发板和Pc机在同一个网段)就可以显示你写的网页了。
下一编文章中我们将介绍怎么写html网页。
下篇文章的地址:[http://blog.csdn.net/qq_21792169/article/details/50418560](http://blog.csdn.net/qq_21792169/article/details/50418560)