查看: 8912|回复: 3

[大赛作品提交] 移动抓拍与邮件提醒功能的树莓派家庭网络监控

[复制链接]
  • TA的每日心情
    奋斗
    2019-10-1 12:54
  • 签到天数: 313 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2017-12-2 00:24:37 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 ky123 于 2018-2-5 11:10 编辑

    首先在此感谢爱板网、感谢e络盟、感谢上海贝锐信息科技,感谢e络盟提供的树莓派3B、感谢贝锐信息科技提供的蒲公英路由器X3、感谢爱板网提供的一个很好电子交流平台让更多人可以学习、交流、提高电子技术。
    今天要介绍的是使用e络盟提供的树莓派3B、摄像头打造一个支持移动抓拍和邮件提醒功能的树莓派家庭网络监控,同时使用贝锐信息科技提供的蒲公英路由器X3突破内网,在外网下查看摄像头实时视频和抓拍的文件
    一、项目名称
    移动抓拍与邮件提醒功能的树莓派家庭网络监控
    1.原理介绍
    目前树莓派网络监控使用得比较多的是MJPG-Streamer和Motion,笔者下面项目使用motion,硬件上使用树莓派、USB摄像头(树莓派摄像头模块)、贝锐蒲公英路由器,然后软件方面使用motion、msmtp(ssmtp)、mutt,移动抓拍功能主要依靠motion来识别和拍摄下入侵者,邮件提醒功能主要依靠msmtp和mutt,使用网易邮箱开通SMTP功能,通过SMTP协议给QQ邮箱发送带抓拍附件的报警提醒邮件,另外使用贝锐蒲公英路由器实现外网查看实时视频和抓拍的文件,外网查看树莓派上抓拍到的文件需要把树莓派连接蒲公英路由器并在树莓派上安装配置samba,然后将树莓派上的抓拍目录使用samba协议共享局域网,这样即可通过外网远程访问蒲公英路由器来实现外网查看抓拍文件
    2.系统版本
    RASPBIAN STRETCH LITE
    最新版本下载地址
    https://downloads.raspberrypi.org/raspbian_lite_latest
    使用内核版本如下
    2017-11-28_114739.png
    3.应用源代码
    首先安装所需组件
    1. sudo apt-get update
    2. sudo apt-get install msmtp mutt motion
    复制代码
    对于使用树莓派摄像头模块的用户还需要打开摄像头,运行下面命令
    1. sudo raspi-config
    复制代码
    2017-11-28_114919.png
    按下图设置
    2017-11-28_114836.png
    2017-11-28_114845.png
    2017-11-28_114852.png
    2017-11-28_114859.png
    设置完成后输入下面命令拍照测试
    1. raspistill -v -o test.img
    复制代码
    出现下图字样表示配置成功
    2017-11-28_115220.png
    UVC USB摄像头直接插到USB口即可,然后输入下面命令查看摄像头支持的像素格式和分辨率
    1. v4l2-ctl -d /dev/video0 --all
    复制代码
    下图显示USB摄像头支持像素格式为YUYV,最大分辨率为640*480 30FPS
    2017-11-29_121011.png
    接着设置motion配置文件
    1. sudo vi /etc/motion/motion.conf
    复制代码
    如果想motion自动启动设置daemon on,如果想手动启动设置daemon off,
    v4l2_palette根据摄像头支持像素格式设置,例如上面支持格式为YUYV应该设置数值15,如下图
    2017-11-30_200632.png
    使用USB摄像头需要将input设置-1,树莓派摄像头模块设置为0
    width设置摄像头支持分辨率的宽,height设置摄像头支持的分辨率的高,framerate设置摄像头支持的FPS帧率
    threshold设置移动检测的灵敏度,数值越小越灵敏,默认为1500,设置为3000-5500即可
    event_gap是事件间隔事件,设置为0为不间断拍摄,默认为60秒
    target_dir是拍摄照片或视频存储目录,这里设置为挂载U盘的/mnt/usb/motion目录
    stream_localhost是只允许本机查看视频流,默认on,如果需要局域网或者外网查看设置为off
    stream_authentication是视频流加密,设置用户名:密码后需要输入用户名和密码到登陆框才能查看视频流
    webcontrol_localhost是只允许本机网页管理,默认是on,如果需要局域网或者外网登陆网页管理界面需要设置为off
    webcontrol_authentication是网页管理加密,设置用户名:密码后需要输入账号密码才能登陆网页管理界面
    on_event_end是事件结束后运行指定脚本,这里设置个发送邮件脚本/home/pi/motion/send_alert.sh
    on_picture_save是照片拍摄后运行特定脚本,这里设置发送邮件脚本/home/pi/motion/send_alert.sh
    主要设置上面选项,笔者设置的配置文件如下
    motion.txt (28.4 KB, 下载次数: 24)

    评分

    参与人数 1与非币 +20 收起 理由
    ky123 + 20 铜板周年庆有用奥~

    查看全部评分

    回复

    使用道具 举报

    该用户从未签到

    发表于 2017-12-17 01:06:53 | 显示全部楼层
    非常感谢楼主的分享,帮了我大忙,但有一个小问题,希望楼主可以完善下,脚本编写好后没有执行的权限,得自己赋予,建议楼主在帖子中写明。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-10-1 12:54
  • 签到天数: 313 天

    连续签到: 1 天

    [LV.8]以坛为家I

     楼主| 发表于 2017-12-17 08:54:48 来自手机 | 显示全部楼层
    本帖最后由 可乐丸子 于 2017-12-17 09:32 编辑
    zeefeng 发表于 2017-12-17 01:06
    非常感谢楼主的分享,帮了我大忙,但有一个小问题,希望楼主可以完善下,脚本编写好后没有执行的权限,得自 ...

    运行sudo motion就可以了 如果想要自启将motion.conf里面的daemon设置为on即可
    脚本设置可运行
    chmod +x send_alert.sh
    帖子里面已经加上 谢谢反馈
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-9-9 14:32:20 | 显示全部楼层
    楼主你好,send_alert的脚本里有个问题请教一下。
    LISTFILES=`find $MOTIONDIR -maxdepth 1 -type f | grep jpg$`
    这一行命令得到的LISTFILES似乎不是一个数组,LISTFILES[0]包含了所有的图片路径。
    如果文件夹里每次只增加一张图片的话,那么这个命令是可以正常工作的,因为循环不到LISTFILES[1]
    如果一次性多了好多图片的话,就会报文件路径错误。
    请问如何将各个图片的路径以数组的方式保存在LISTFILES里呢?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-31 15:29 , Processed in 0.165957 second(s), 26 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.