树莓派车库门开启器加视频流:磁性门状态传感器与实时画面集成
项目背景
本指南扩展两个基础项目——树莓派车库门开启器 和 PiMyLifeUp 树莓派网络摄像头服务器。新增磁性门状态传感器,并在控制页面直接显示实时视频流。
步骤 1:完成前置教程
继续前请先完成上述两个引用项目的说明。确保树莓派已配置 GPIO 控制继电器和网络摄像头流媒体服务器。
步骤 2:更新网页样式
编辑位于 /var/www/css/style.css 的样式表:
nano /var/www/css/style.css
用下方片段替换全部内容,将 YOUR_PI_IP 替换为树莓派局域网地址:
html, body {
margin: 0; padding: 0;
background: #263238;
background-image: url("https://YOUR_PI_IP:8081/videostream.cgi");
background-size: 980px 735px;
background-repeat: no-repeat;
text-align: left;
}
div.awrap {
position: fixed;
height: 150px;
left: 110px;
top: 792px;
width: 760px;
text-align: left;
}
a {
display: inline-block;
border-radius: 15px;
border: 2px solid #263238;
width: 760px;
height: 150px;
background: #B5B1B1;
box-shadow: inset 0 0 10px #000;
-webkit-tap-highlight-color: rgba(255,255,255,0);
}
a:active {
background: #263238;
box-shadow: inset 0 0 50px #000;
}
步骤 3:修改首页
调整 /var/www/index.php 加入触发车库继电器的按钮。(此处插入你的 PHP 逻辑。)
步骤 4:创建继电器服务脚本
创建 /etc/init.d/garagerelay,内容如下:
#!/bin/bash
# /etc/init.d/garagerelay – 控制车库门继电器
case "$1" in
start)
echo "Starting Relay"
# GPIO 0 驱动继电器;1 = 关
/usr/local/bin/gpio write 0 1
/usr/local/bin/gpio mode 0 out
# GPIO 2 (BCM 27) 读取磁性传感器,上拉
/usr/local/bin/gpio mode 2 in
/usr/local/bin/gpio mode 2 up
;;
stop)
echo "Stopping GPIO"
;;
*)
echo "Usage: /etc/init.d/garagerelay {start|stop}"
exit 1
;;
esac
exit 0
赋予执行权限并设为开机自启:
sudo chmod 755 /etc/init.d/garagerelay
sudo update-rc.d garagerelay defaults
步骤 5:配置 Motion 开机自启
设置 Motion 服务:
sudo nano /etc/init.d/cam_motion
写入以下内容:
#!/bin/sh
# /etc/init.d/cam_motion – 启动树莓派摄像头 Motion
case "$1" in
start)
echo "Starting Camera Motion"
nohup /home/pi/mmal/motion -n -c /home/pi/mmal/motion-mmalcam.conf &>/dev/null &
;;
stop)
echo "Stopping Camera Motion"
killall motion
;;
*)
echo "Usage: /etc/init.d/cam_motion {start|stop}"
exit 1
;;
esac
exit 0
赋予执行权限并启用开机自启:
sudo chmod 755 /etc/init.d/cam_motion
sudo update-rc.d cam_motion defaults
sudo reboot
最终说明
重启后,树莓派将从摄像头流式传输实时视频,叠加门状态,并提供单一按钮切换车库继电器。深度故障排查请参考 原版开启器 和 网络摄像头服务器指南 的文档。
制造工艺
- 树莓派2上使用DS18B20读取温度完整指南
- 树莓派结合 Maxim 1-Wire 传感器与 DS2482 I2C 桥接器的多点温度测量
- 树莓派精准监测机柜温度:DS18B20 多点部署实战
- 树莓派 Home Assistant 安全监控:PIR 运动检测、报警面板与视频抓拍
- 树莓派与 AS3935 闪电检测传感器实战指南
- 树莓派 2 无头模式水浸报警器:基于 Adafruit T‑Cobbler Plus 构建
- 树莓派与 BrickPi 构建 ThingSpeak 温度监测系统
- 树莓派自动化气雾栽培系统:湿度传感器智能控制
- 树莓派无需 LIRC 捕获红外遥控指令:Python UART 方案
- 树莓派摄像头安装鸟屋完整指南:NoIR 相机、LED 补光与环境监测
- 树莓派优雅关机与休眠模式:DIY电源管理电路
- 树莓派与Python构建机器人:完整指南