0.前言
最近想法比较多,突然想到的就记到便笺里,抽时间再实践一下
后面还有修改esp8266+oled显示(micropython)
买了树莓派的CSI摄像头,10几块钱,拿回来拍照试了下还可以,想了一下还能有什么用途
突然想起来之前的树莓派NAS+内网穿透,查了一下可以用来做摄像头持续输出视频信号
1.实验目的
使用树莓派+CSI摄像头+cpolar,实现网络摄像头的功能
用手机/PC远程访问实时查看摄像头内容
2.实验过程
- 连接CSI摄像头并进行配置
树莓派默认是不开启Camera的,需要在设置中启用,并重启
查看是否识别,返回结果为1即识别
vcgencmd get_camera
使用拍照命令,查看摄像头是否正常
raspistill -o test.jpg -t 2000
test.jpg 为照片存储的名字
存储在当前运行命令的目录下
-t 参数为延迟拍照,单位为ms
- CSI摄像头实时监控
安装motion
apt install motion
配置移动图像监测
sudo nano /etc/default/motion
start_motion_daemon=yes # 默认为no 修改成yes
修改motion配置
nano /etc/motion/motion.conf
webcontrol_localhost off
daemon on #off改成on
width 640
height 480 #可以修改
framerate 80 #帧率 0-100 80比较流畅
stream_maxrate 70 # 帧数 默认为1,70比较流畅
stream_port 8081 # 视频监听的端口,默认8081
stream_localhost off #设为off 外网可以访问视频流
stream_auth_method 1 # 设置为1 默认为0 0访问视频不需要密码 1需要账号密码
stream_authentication username:password # 输入账号:密码
webcontrol_port 8080 # WEB控制台监听的端口,默认8080
webcontrol_localhost off #设为0ff 外网可以访问控制台
重启树莓派
sudo reboot
运行motion
sudo motion
关闭motion
sudo killall -TERM motion
- 配置cpolar内网穿透
配置cpolar链接树莓派 刚才设置的视频流端口为8081
直接在树莓派上运行映射本地8081,用手机访问链接
cpolar tcp 8081
还可以通过VNC连接树莓派,映射本地5900(vnc)
cpolar tcp 5900
3.实验结果
直接映射视频流端口(8081),穿透后访问延迟大概1s左右,可接受
映射vnc端口(5900),可以执行其他命令,通过树莓派内置浏览器访问
如果直接在同一局域网下,访问摄像头,延迟基本在0.5s以内
4.问题解决
会遇到配置后摄像头访问灰屏,显示没有连接,但是运行设备检查,又能够检测到摄像头
运行单个拍照命令会卡死
解决办法: 不知道是什么原因导致的这个问题,尝试解决,重启树莓派;运行单个拍照命令;然后再运行motion,应该可以解决。摄像头红灯不亮即为目前无法使用。