用树莓派快速搭建一个有 WebUI 的 LED 灯光控制
谢邀!
Allen 同学一直说想做智能家居方向的东西,但是半个学期过去了也不见他有什么起色,遂从他那儿偷了两根杜邦线,自己来玩玩。
连接信息:GPIO(4) -> 电阻 -> LED -> GPIO(5)(GND)
用 PHP 弄了个简易的 WebUI,按了按钮之后就调用同目录下的 Python 脚本 led4on.py
Python GPIO Controller
led4on.py
from gpiozero import LED
from signal import pause
from time import sleep
l = LED(4)
l.on()
pause()
WebUI
index.php 部分代码:
<div class="container">
<h1 class="m-100">RPI</h1>
<hr>
<form action="index.php"method="post">
<input type="hidden"name="status"value="on"class="form-control">
<button class="btn btn-lg btn-primary btn-block"input type="submit"> 开灯 </button>
</form>
<br>
<form action="index.php"method="post">
<input type="hidden"name="on"value="off"class="form-control">
<button class="btn btn-lg btn-primary btn-block"input type="submit"> 关灯 </button>
</form>
<br>
<form action="index.php"method="post">
<input type="hidden"name="on"value="blink"class="form-control">
<button class="btn btn-lg btn-primary btn-block"input type="submit"> 闪!</button>
</form>
<?php
if($_POST['status'] =="on")
{$tmp = `python3 led4on.py`;}
else if($_POST['status'] =="off")
{$tmp = `python3 led4off.py`;}
else if($_POST['status'] =="blink")
{$tmp = `python3 led4blink.py`;}
?>
</div> <!-- /container -->
这样就实现了一个非常非常简易的(且 Broken)的 IoT 设备了。 已知问题:
- 用
l.on()
之后灯只会闪一下,如果加了pause()
的话脚本就会挂起并且没法正常处理关灯的指令,不过仅仅是一个 PoC 而已,暂时还不需要考虑这么多。 - 设备必须再一个局域网中,没有中间设备中转,如果需要真远程控制的话还是需要一台有公网 IP 的服务器。
这简直一点技术含量都没有啊,Allen 你平时在做什么…