前几天一直在忙实验的事情,今天有时间玩玩树莓派了。还记得在玩S3C2440的时候可以通过移植使之成为Web服务器,然后通过GCI来完成web对硬件资源的控制。于是心想这些对于树莓派来说更应该是小菜一碟。于是通过查询,下载nginx将树莓派成为了web服务器,但是好像nginx对cgi不是那么友好(看到后的结论是慢慢来完成)。今天搜到webiopi的软件可以支持web控制树莓派的GPIO资源,但是可惜的是由于树莓派升级(我的是B+),webiopi对于B+以后的库没有更新,使得在使用过程中有些限制。但幸运的是B+的GPIO兼容以前的树莓派GPIO。所以试试,以后再慢慢修改webiopi的文件吧(webiopi使用python语言编写的)。
后先下载webiopi文件,解压,运行setup.sh进行安装(运行不了需要修改权限sudo chmod 777 setup.sh)。之后运行 sudo webiopi,打开网页web,默认端口为8000,在浏览器里面输入:XX.XX.XX.XX:8080(XX.XX.XX.XX为您的树莓派的IP地址),之后就可以出现预先设置的网页。可以控制GPIO。如下图所示:
打开网页后的选择header GPIO:现在已11口为例子,选择端口为输出:
此时板子的11口成为输出,但是输出低电平,接在11口的LED不会亮:
再点击11口,会发现颜色发生变化,此时11口变为输出高电平如下所示。
此时板子上的LED灯也亮了。
PS:这只是用web调用GPIO资源的一种方法,如果把摄像头和GPIO的调用连在一起放在一个网页中可以实现硬件的远程控制。
下面将原来的26针GPIO分布和B+以上的40针引脚的分布对比一下,如下:
26针
40针