本帖最后由 nightseas 于 2012-12-24 21:51 编辑
RaspberryPi到手有些时日了,除了尝试电影、游戏、VNC、服务器等基本功能之外,一直在琢磨该拿它做什么。忽然想起可用它实现智能家居的网关部分,不过我的那套无线模块不知道放哪里了,所以就先做个简单的测试小站吧。 效果如图:
网上最常见的方法是用PHP服务器或Yeelink这样现成的网站,可惜兔子不会PHP又希望能够用RPi做自己的服务器,索性还是采用兔子自己的懒办法吧。之所以说超简易,是因为这个网站除了实现基本的功能以外,就没有别的东西了,连界面也是用Word排版的。 网站的实现方法就是HTTPD外加HTML自动刷新。照片是用fswebcam访问USB摄像头拍摄的,保存成jpg文件,传感器数据通过USB转串口接收,保存在txt文件中。 HTTPD可以使用小巧的mini-httpd,安装指令如下: sudo atp-getinstall mini-httpd
配置方法也很简单,新建一个路径home/pi/mini-httpd/,在该路径下新建空白文件mini-httpd.conf,输入配置信息。 port=80 dir=/home/pi/mini-httpd/wwwroot cgipat=cgi-bin/* user=nobody pidfile=/home/pi/mini-httpd/mini-httpd.pid logfile=/home/pi/mini-httpd/mini-httpd.log
同时还需要在home/pi/mini-httpd/下建立wwwroot和cgi-bin文件夹。 运行指令如下: sudo mini-httpd-C home/pi/mini-httpd/mini-httpd.conf
界面可以用Dreamweaver之类的软件做,没有的话用Word也行,设计个看得过去的框架,保存成htm文件。
用编辑器编辑该文件,在对应的表格位置处插入要显示内容,如temp.txt文件里保存的温度信息。 <iframename=temp id=temp width=100 height=40 frameborder=0 src=temp.txt></iframe>
再在HEAD处将网页设为Unicode模式,并添加页面自动刷新以更新数据和图像,这里设置的是60秒刷新。 <metahttp-equiv=Content-Type content=”text/html; charset=unicode”> <metahttp-equiv=refresh content=60>
图片可以先在Word里添加一张,然后再修改HTML里的路径和文件名。 温湿度和光照用的以前做的一块板子,因为上面传感器蛮多的就用它来演示了。软硬件基本都是现成的,资料我已经开源了,可以参考我早期的博客:http://eefocus.com/nightseas
串口传输数据的格式为:温度+湿度+光照度,如15C20%100lx。这里兔子写了个小程序将串口数据分别保存在三个txt文件中,代码很简单就不再说明了,大家可以自己下载下来看。个人感觉Linux的串口编程比较麻烦,数据有时候会莫名其妙地接收不成功。 代码和网页文件: |