树莓派+Motion动作捕捉+腾讯云轻量服务器实现简易监控设备

发布时间 2023-08-29 21:26:41作者: 不做签到员

最近在读Vamei大神的《树莓派开始玩转linux》,当读到第13.4节的时候发现了Motion这个轻量级的监控软件,在树莓派上复现的时候遇到了一些问题,在解决的过程中看到了连接数据库的【入坑树莓派】motion点亮摄像头 + frp 的智能家居方案http://t.csdn.cn/U6Eou,觉得这个想法很不错,租借一台腾讯云轻量服务器的时候发现可以白嫖一个月!!!!所以对这个想法进行复现,对此做一下记录。

Motion动作捕捉

​ Motion可以提供网络摄像头的功能,在拍摄的过程中,如果画面出现了变动时,Motion可以保存动作发生时的图片和视频。

  1. 安装
sudo apt-get install motion
  1. 启动Motion后台守护进程
sudo vim /etc/default/motion

第一次操作的时候/etc/default/motion是没有的,直接利用vim创建并写入。

  1. 修改配置配置文件
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 超过这个阈值的像素点发生变化,认为有动作发生

  1. 常用操作motion的常用操作命令
  • 启动服务
sudo service motion start  

  • 开启motion
sudo motion

此时输入树莓派的ip:输出端口号,即可访问motion拍摄的画面

  • 关闭motion进程
sudo killall -TERM motion

腾讯云轻量服务器frp设置(服务端配置)

frp功能可以简单的理解为可以轻松实现公网访问内网。

  1. 登录服务器下载并解压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 

  1. 修改配置文件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相关文件的时候不要加中文注释

  1. 腾讯云服务器防火墙设置

  2. 启动frps

./frps -c ./frps.ini

树莓派frp设置(客户端配置)

操作大致与服务器操作相同,仅仅修改的文件不同

  1. 登录树莓派并解压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 # 远程端口号 

  1. 启动frpc
./frpc -c ./frpc.ini

访问

此时我们只需要用服务器的公网IP:6001,就可以访问motion画面了

并且在服务器可以看到访问记录

换成手机4G访问: