树莓派实现远程监控motion(通过ngrok)

最近在学习树莓派顺手做了一个小监控,下面我来介绍一下过程:

1.硬件准备

        (1)准备一个树莓派(我用的是4B版本,系统是bulllseye)

        (2)一个CSI或者USB摄像头

2.树莓派配置 

(1)安装motion

 sudo apt-get install motion

 (2) 打开motion daemon守护进程,使得motion可以一直在后台运行。

 sudo nano /etc/default/motion打开配置文件并添加 start_motion_daemon=yes

                 

(3)编辑/etc/motion/motion.conf

          sudo nano /etc/motion/motion.conf后会出现如下界面,这个是motion默认配置文件,修改里         面的配置参数。

  • 将daemon修改为on
    target_dir /home/pi/Motion  设置图像保存路径设置
    stream_port 8081                确认视频流接口是8081
     width 800 height 600         设置分辨率
    stream_localhost off            关闭localhost本地限制
    为了防止视频流畅最好设置  stream_maxrate 70    framerate 100
    //可以使用ctrl+w查询逐个修改 nano自带功能

    (界面如下)

                       

(4)开启或关闭motion服务

sudo motion   //开启motion服务
sudo kilall -TERM motion  //关闭motion服务

(5)开启或关闭motion服务

ifconfig查看电脑的ip地址

(6)在内网(局域网)的电脑或其他设备上登录ip地址+端口号

在chorm上登录http://192.xxx.xx.xxx:端口号。

                         

 3.外网控制树莓派

        首先,需要一个内网穿透的工具。即当你不在家的时候,你可以利用网络连接到家里正在连着路由器的树莓派(或者电脑)。这里我选择的穿透工具为ngrok。看见好多人也选择花生壳,但是真的有点太贵了。

ngrok的下载网址:Setup - ngrok,请自行下载。(在访问 ngrok.com 会创建一个Ngrok账号,这里推荐使用github来注册一个账号,因为其他的方式我注册不下来。。。。。)

(1)  花生壳下载完成后可以根据网站步骤,自行安装。(这里我安装的是linux的arm64版本)

 下载完成后您可以使用以下命令从终端解压缩 ngrok。或者在在视窗上,只需双击 ngrok.zip即可将其解压缩。

unzip /path/to/ngrok.zip

(2) 在注册账号时会给你一个身份码,将其与自己的树莓派绑定即可。(只需要绑定一次,你的ngrok账户就和树莓派连接在一起了)在树莓派终端输入下面这行命令。

ngrok config add-authtoken 2F9xtsemWGRiX3ui1E7euwP6Nml_xxxxxxxxxxxxxxxx

ps:这里我花费了好长时间。因为总是说没有ngrok命令。。。。。但是我已经按照步骤下载好了啊,最后我发现自己有两个重要的却很弱智的问题。第一个是没有切换到ngrok的目录下,ngrok下载到哪里就cd到哪里。。第二个是命令行前面要加./,如果不加这个shell会找不到你程序的路径。

终端中命令搜索规则

  • 如果在路径名中存在 ./ 字符,那么就不搜索 $PATH
  • 如果 ./ 不在路径名中,那么只在 $PATH 中搜索。

 (3)根据需要,运行命令开发端口

   ngrok http 8081

        需要注意的是,这里的端口8081可以根据需要替换成其他端口。这条命令的意思是将本地8081端口对应的服务暴露到外网中。(而我的8081端口现在正好是开启着摄像头)执行完成后代码如下,需要注意的是这个forward。

这样,凡是访问http://xxxxxxxxxxx的请求都将发送到localhost:8081。

最终在外面也能观看家里的摄像头。

猜你喜欢

转载自blog.csdn.net/weixin_45348216/article/details/127023363