Raspberry Pi 教程:如何使用树莓派和摄像头制作 DIY 家庭报警系统

> 将一个简单的网络摄像头转换为具有运动检测功能的花式数字窥视孔查看器

传统的无线闭路电视摄像机便宜,但任何有无线接收器的人都可以看到你的信号 另一方面,IP摄像机是安全的,但它们可能相当昂贵,通常视频质量很差,除非你去买一个非常昂贵的机型。

最近我想安装一个家庭监控系统,所以我选择了一个便宜的罗技摄像头与树莓派和 motion——一个优秀的Linux程序,监控视频信号的变化和触发事件。

以下是您可以使用类似设置实现的功能:

  • 将 Raspberry Pi 设置为 24/7 网络摄像机服务器,并通过互联网流式传输视频。您也可以使用任何配备浏览器的移动设备远程查看您的信号。
  • 设置 motion 检测并触发任何喜欢的事件,例如检测到动作时存储图像,将图像上传到远程FTP服务器,发送通知到您的计算机,接收短信 - 基本上运行您喜欢的任何脚本!

好吧,这是我们将要做的内容。

硬件清单

  • Raspberry Pi Model B Revision 2.0(512MB)
  • 罗技高清网络摄像头 C270 或类似兼容的USB网络摄像头(兼容网络摄像头列表在这里)。
  • 带有外部电源的USB集线器 -(可选):一个usb延长线

步骤1:让你的摄像头隐身

我想把相机隐藏在门外一个不起眼的地方,所以我取下了摄像头的外壳。 罗技 C270 对于这个项目来说是一个非常好的选择,因为(1)它与 Raspberry Pi 兼容,(2)720P 高分辨率,(3)非常小。

您现在可以将您的摄像头连接到 USB 集线器。 您必须使用独立电源的外部USB集线器,因为树莓派无法为摄像头供电。

步骤2:设置你的树莓派

你的 Raspberry Pi 需要启动一个 Linux 操作系统才能运行 motion。 最受欢迎的选择是 Raspbian,这是一个基于 Debian 的操作系统,针对 Raspberry Pi 的硬件进行了优化。

准备你的 SD 卡,并安装 Raspbian,这里我推荐以下 Adafruit 的的优秀教程

由于您不会将您的pi连接到显示器或者有键盘和鼠标,因此我还建议在您的 Raspberry Pi 中启用 Secure Shell(SSH),以便您可以通过本地网络远程控制 Raspberry Pi。

最后,强制一个静态IP地址是一件好事,这样即使 Raspberry Pi 重新启动,您也可以轻松找到摄像头服务器。

为此,首先从命令提示符下键入:

ifconfig

这会显示您的路由信息。如果你有一个以太网连接,请检查 eth0 位。 如果您有无线连接,请检查 wlan0 位。 记下以下信息:

inet addr – 192.168.1.5 (pi’s IP Address)
Bcast – 192.168.1.255 (broadcast IP range)
Mask – 255.255.255.0 (subnet mask)

然后运行:

route -n

并注意以下几点:

Gateway Address – 192.168.1.1

然后,运行以下命令编辑网络配置:

sudo nano /etc/network/interfaces

并从以下位置更改以下条目:

iface wlan0 inet dhcp

为:

iface wlan0 inet static
address 192.168.1.5
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.0
broadcast 192.168.1.255

按下 CTRL 和 X 一起保存并退出 nano 编辑器。

如果你现在重新启动你的 Raspberry Pi,你应该有一个静态地址。

步骤3:设置 motion

首先,您需要使用 rpi-update 来为您的 raspbian 映像添加最初缺少的 UVC 支持:

sudo apt-get install rpi-update
sudo rpi-update

然后,更新你的包:

sudo apt-get update
sudo apt-get upgrade 

接着,你可以安装 motion:

sudo apt-get install motion

现在,如果你运行:

lsusb

你应该看到你的相机列为 USB 设备,如下所示:

Bus 001 Device 006: ID 046d:0825 Logitech, Inc. Webcam C270

(如果没有,那么也许你的网络摄像头不兼容 Raspberry Pi)

接下来我们继续配置 motion:

sudo nano /etc/motion/motion.conf

这是一个配置文件,您可以在其中定义参数,例如 motion 的运行端口,或检测到运动时将触发的操作。

以下是您最想要配置的参数列表:

  • daemon(守护进程):设置为 ON,则会在 Raspberry Pi 启动时,将 motion 作为守护进程服务启动,
  • webcam_localhost:设置为 OFF,以便您可以从其他计算机访问运动,
  • stream_port:视频流的端口(默认 8081),
  • control_localhost:设置为 OFF 可以通过 web config 界面远程更新参数,
  • control_port:您将访问 Web 配置界面的端口(默认8080),
  • framerate(帧速率):网络摄像机每秒捕获的帧数。 警告:设置在 5 fps 以上会影响你的 Raspberry Pi 的性能!
  • post_capture:指定检测到动作后要捕获的帧数。

如果要将 motion 作为守护程序服务运行,还需要编辑以下文件:

sudo nano /etc/default/motion

然后将 start_motion_daemon 设置为 YES:

start_motion_daemon=yes

输入以下的代码则可以启动 motion:

sudo service motion start

等待约 30 秒, motion 将会启动,然后打开来自 VLC 或类似的程序,可以显示视频流的视频流。

如果你使用 VLC 播放器,进入 File -> Open Network,然后输入你的 Raspberry Pi 的 IP 地址,然后输入 stream_port,例如:

192.168.1.5:8083

步骤4:额外的好东西

您可以设置 motion 来触发检测到移动时的各种动作。

例如,为了增加安全性(万一有人闯入你的房子并窃取你所有的设备):你可以将图像上传到远程 FTP 服务器

为此,编辑 motion.conf 文件并添加以下外部命令:

On_picture_save wput –B ftp://username:password@yourftpserver %f

您还可以运行一个 shell 脚本,并将通知发送到另一台计算机。每次侦测到动作时,我都会使用 growl 向我的 Mac 发送一个快速弹出警报。

Growl 是一个极好的 macOS 专用通知系统,幸运的是有一个非常好的 Python 库,可以用来轻松访问 Growl 网络传输协议(或 GNTP)并向 Mac 发送 growl 通知。 以下是如何做到这一点:

首先获取 'pip',一个允许你轻松安装 python 软件包的工具:

apt-get install python-pip

然后安装 GNTP Python 库:

pip install gntp

然后在 Growl 首选项中,启用传入网络连接并设置密码:

Growl

这里是我写的一个简单的 python 脚本发送通知:

# use standard Python logging
import logging
logging.basicConfig(level=logging.INFO)
import gntp.notifier

growl = gntp.notifier.GrowlNotifier(
 applicationName = “Rasp”,
 notifications = [“New Updates”,”New Messages”],
 defaultNotifications = [“New Messages”],
 hostname = “192.168.1.4", # Here enter your Mac IP address
 password = “yourpass” # Here enter your growl password
)
growl.register()
# Send one message
growl.notify(
 noteType = “New Messages”,
 title = “Camera Alarm”,
 description = “Movement detected”,
 icon = “https://www.iconfinder.com/icons/48991/download/png/128", #you can optionally define an image icon to appear with the notification
 sticky = False,
 priority = 1,
)

从 Raspberry Pi 的 SSH 命令行运行它来测试脚本:

python test.py

您应该在 Mac 屏幕中看到 growl 通知!

要在 motion 中使用此脚本,请将以下行添加到 motion.conf 中:

On_motion_detected python test.py

现在,每次 motion 检测到时,python脚本将运行,你就会看到在 Mac 中的 growl 通知。

你可以用 motion 做各种事情。每当警报被触发时,你甚至可以收到一个短信或 Twilio 打电话给你。

原文链接:https://medium.com/@Cvrsor/how-to-make-a-diy-home-alarm-system-with-a-raspberry-pi-and-a-webcam-2d5a2d61da3d

尚未评分
您的评分将帮助我们做出更好的玩法

观光\评论区

Copyright © 2017 玩点什么. All Rights Reserved.