智能家居网络系统的设计(一)
2015-12-28 19:27
567 查看
今天开始学习***智能家居网络系统,这个项目相对简单的多,但对于新手还是有难度的,所以今天我写出来,尽我最大努力写详细一点。
讲解过程中所涉及全部代码下载地址:智能家居网络系统.rar
写***过程之前我先讲解一下基本的框架和思路。(主要是框架,自己掌握知识了自己就可以添加其他的功能,比如显示温度湿度,气体浓度,光照强度,摄像头模块,这些都只需要添加相应的驱动就可以了,其他的基本一样)。
首先在开发板上搭建好服务器,然后自己写一个HTML表单,HTML主要是用来作为人际界面来交互信息,比如账户登陆,数据显示,传递数据,仅仅是一个界面,这些数据是要用一个叫CGI脚本文件来处理的,脚本文件怎么源程序里面是有的,CGI脚本文件是可以嵌套的,这些都是放在服务器端,只要服务器运行boa服务器就可以在局域网任意一台电脑访问这个服务器的IP地址来访问这个网页,在网页上输入账户,密码在进入到控制界面,这些数据处理全是放在脚本文件,里面有一些配置文件,下面我们来具体分析下这些代码。
!!!在做这个项目的前提是你的开发板能够正常跑起来。
首先是搭建boa服务器:
下载boa源码,boa-0.94.13
# 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网页。
下篇文章的地址:/article/3605818.html
讲解过程中所涉及全部代码下载地址:智能家居网络系统.rar
写***过程之前我先讲解一下基本的框架和思路。(主要是框架,自己掌握知识了自己就可以添加其他的功能,比如显示温度湿度,气体浓度,光照强度,摄像头模块,这些都只需要添加相应的驱动就可以了,其他的基本一样)。
首先在开发板上搭建好服务器,然后自己写一个HTML表单,HTML主要是用来作为人际界面来交互信息,比如账户登陆,数据显示,传递数据,仅仅是一个界面,这些数据是要用一个叫CGI脚本文件来处理的,脚本文件怎么源程序里面是有的,CGI脚本文件是可以嵌套的,这些都是放在服务器端,只要服务器运行boa服务器就可以在局域网任意一台电脑访问这个服务器的IP地址来访问这个网页,在网页上输入账户,密码在进入到控制界面,这些数据处理全是放在脚本文件,里面有一些配置文件,下面我们来具体分析下这些代码。
!!!在做这个项目的前提是你的开发板能够正常跑起来。
首先是搭建boa服务器:
下载boa源码,boa-0.94.13
# 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网页。
下篇文章的地址:/article/3605818.html
相关文章推荐
- http post 请求(下)
- http post请求(上)
- 全站 HTTPS 来了
- Objective-c语言_计算机网络和URL(代码1)
- java中的TCP客户端与服务器
- 使用Let's Encrypt手动创建https证书
- 程序员常见面试之 计算机网络 知识点小结
- android中网络请求中页面关闭了会怎么样
- Android 使用 HttpURLConnection 出错
- Objective-c语言_计算机网络
- 仿微信朋友圈图片查看-glide加载网络图片,photoview 实现缩放
- 使用Fiddler捕获java的网络通信数据包
- http压力测试
- http请求流程
- 进程间通信之TCP demo1
- http://www.dexcoder.com/selfly/article/3961
- Android使用OkHttp post 键值对
- TCP服务端和客户端的框架
- 判断有线网络连接的方式
- 理解 HTTPS 的工作原理