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+Nginx让树莓派远程点亮一盏灯
三,编写PHP文件
话不多说,其实调用Python脚本就是一行代码的事。

<?php system("sudo /usr/bin/python LED.py"); echo 'OK' ?>

之前我查了很多资料,很多都提议使用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小灯亮起来了。

PHP+Nginx让树莓派远程点亮一盏灯