PHP+Nginx让树莓派远程点亮一盏灯
PHP+Nginx让树莓派远程点亮一盏灯
有一次突发奇想,想通过用手机来控制树莓派的远程IO接口,进行操作,例如点亮一盏灯。从网上查理很多资料,这里推荐一种,我个人实践成功,并且比较简单的方法,就是在树莓派上搭建Nignx服务器,然后通过网站PHP调用Python脚本,进行控制。废话不多说了,直接上步骤。
一,树莓派安装Nginx
sudo apt-get install nginx
二,启动Nginx
sudo /etc/init.d/nginx start
测试安装是否成功(nginx默认是80端口)。
将树莓派的ip地址设为静态ip(我的是192.168.1.106),先从内网测试是否安装成功,在同一个局域网的机子上的浏览器*问 192.168.1.106。如果出现下图则说明nginx安装成功;
三,编写PHP文件
话不多说,其实调用Python脚本就是一行代码的事。
之前我查了很多资料,很多都提议使用exec(),但是经过我的亲测system()方法,可以更可靠的运行。当然,如何调用可以查一下PHP的API,里面有详细的方法,在这就不赘述了。
四,编写控制 IO接口的Python脚本
import RPi.GPIO as GPIO
import time
LED = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED, GPIO.OUT)
GPIO.output(LED,GPIO.HIGH)
time.sleep(1)
GPIO.cleanup()
我们用过调用树莓派上的RPI.GPIO库,来控制接口的电平输出方式,进而控制LED灯泡的点亮。
五,用root方式 将PHP文件和Python脚本复制到服务器文件目录下
开启root账号 su root
利用 Linux 命令 cp [options] source dest 将文件强行复制到
var/www/html文件目录下,这个目录是Nginx服务器的访问目录,必须要用root账号权限才能进行操作。
六,通过网络访问你的PHP,既可以看见LED小灯亮起来了。