树莓派+Motion动作捕捉+腾讯云轻量服务器实现简易监控设备
最近在读Vamei大神的《树莓派开始玩转linux》,当读到第13.4节的时候发现了Motion这个轻量级的监控软件,在树莓派上复现的时候遇到了一些问题,在解决的过程中看到了连接数据库的【入坑树莓派】motion点亮摄像头 + frp 的智能家居方案http://t.csdn.cn/U6Eou,觉得这个想法很不错,租借一台腾讯云轻量服务器的时候发现可以白嫖一个月!!!!所以对这个想法进行复现,对此做一下记录。
Motion动作捕捉
Motion可以提供网络摄像头的功能,在拍摄的过程中,如果画面出现了变动时,Motion可以保存动作发生时的图片和视频。
- 安装
sudo apt-get install motion
- 启动Motion后台守护进程
sudo vim /etc/default/motion
第一次操作的时候/etc/default/motion是没有的,直接利用vim创建并写入。
- 修改配置配置文件
vim /etc/motion/motion.conf
# 修改的值如下:
daemon on # 让motion作为背景的守护进程运行
stream_localhost off # 让网络的其他主机也可以看到流媒体 如果是on只能树莓派自己看到
framerate 30 # 帧速率为每秒30帧
# 新增的值如下:
stream_maxrate 30 # 流媒体的帧速率最大为每秒30帧
配置文件中有很多设置,可以自行百度了解。其中介绍一些比较重要的设置:
target_dir:默认值为/var/lib/motion 存储动作捕捉结果的地方
stream_port:流媒体的输出端口,默认值是8081 结合着ip进行访问流媒体
threshold:动作捕捉阈值,默认值是1500 超过这个阈值的像素点发生变化,认为有动作发生
- 常用操作motion的常用操作命令
- 启动服务
sudo service motion start
- 开启motion
sudo motion
此时输入树莓派的ip:输出端口号,即可访问motion拍摄的画面
- 关闭motion进程
sudo killall -TERM motion
腾讯云轻量服务器frp设置(服务端配置)
frp功能可以简单的理解为可以轻松实现公网访问内网。
- 登录服务器下载并解压frp
wget https://github.com/fatedier/frp/releases/download/v0.35.0/frp_0.35.0_linux_amd64.tar.gz
tar -zxvf frp_0.35.0_linux_amd64.tar.gz
- 修改配置文件frps.ini
cd frp_0.35.0_linux_amd64/
vim frps.ini
修改frps.ini的内容为:
[common]
bind_port = 7000
vhost_http_port = 8000
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = # 服务器的用户名
dashboard_pwd = # 服务器的密钥
注意:编辑frp相关文件的时候不要加中文注释
-
腾讯云服务器防火墙设置
-
启动frps
./frps -c ./frps.ini
树莓派frp设置(客户端配置)
操作大致与服务器操作相同,仅仅修改的文件不同
-
登录树莓派并解压frp同时修改配置文件frpc.ini
注意:下载的文件不同
wget https://github.com/fatedier/frp/releases/download/v0.35.0/frp_0.35.0_linux_arm.tar.gz
tar -zxvf frp_0.35.0_linux_arm.tar.gz
cd frp/frp_0.35.0_linux_arm/
vim frpc.ini
修改frpc.ini的内容为:
[common]
server_addr = # 服务器地址
server_port = 7000
tls_enable = true # 免login to server failed: EOF报错
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 远程端口号
[ssh2]
type = tcp
local_ip = 127.0.0.1
local_port = 8081
remote_port = 6001 # 远程端口号
- 启动frpc
./frpc -c ./frpc.ini
访问
此时我们只需要用服务器的公网IP:6001,就可以访问motion画面了
并且在服务器可以看到访问记录
换成手机4G访问: