爱板网论坛

查看: 1247|回复: 0

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

[复制链接]

89

主题

5

好友

2491

积分

版主

Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    奋斗
    昨天 20:31
  • 签到天数: 193 天

    连续签到: 3 天

    [LV.7]常住居民III

    发表于 2017-12-2 00:24:37 |显示全部楼层
    本帖最后由 可乐丸子 于 2017-12-4 20:08 编辑

    首先在此感谢爱板网、感谢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, 下载次数: 1)
    由于笔者准备使用网易163邮箱发报警邮件到QQ邮箱,笔者首先登陆163邮箱,按下面网易教程开通SMTP服务(需要认证手机号),设置授权码,接着msmtp配置文件
    1. sudo vi /etc/msmtprc
    复制代码
    加入下面内容,其中myemail填写网易邮箱用户名,pass填写上面设置是授权码
    1. defaults
    2. account 163
    3. port 465
    4. tls on
    5. tls_certcheck off
    6. tls_starttls off
    7. auth on
    8. host smtp.163.com
    9. user myemail
    10. from myemail@163.com
    11. password pass
    12. logfile ~/.msmtp.log
    复制代码
    接着设置Muttrc
    1. sudo vi /etc/Muttrc
    复制代码
    在最下面一行加入下面代码,其中myemail为网易邮箱用户名
    1. set sendmail="/usr/bin/msmtp"
    2. set use_from=yes
    3. set realname="myemail"
    4. set from="myemail@163.com"
    5. set editor="nano"
    6. set envelope_from=yes
    7. set crypt_use_gpgme=no
    复制代码
    保存后下面测试一下邮件发送情况和树莓派摄像头拍摄情况,先raspstill命令拍摄一张照片test.jpg
    1. raspistill -v -o test.jpg
    复制代码
    接着输入下面命令发送带附件照片的邮件到QQ邮箱
    1. mutt reciever@qq.com -s "树莓派相机测试和邮件发送" -a test.jpg
    复制代码
    2017-12-02_115416.png

    出现下图
    2017-12-02_115028.png

    2017-12-02_115426.png

    输入主题
    2017-12-02_115450.png

    按Y键发送邮件
    2017-12-02_115518.png

    打开接收邮箱收到邮件如下图表示msmtp和mutt设置成功
    2017-12-02_115628.png

    附件图片发送正常
    2017-12-02_115638.png

    图片像素很高文件达2.52mb
    2017-12-02_115651.png


    接着在home文件夹下面创建一个motion文件夹,在文件夹里面创建一个send_alert.sh脚本
    1. sudo mkdir /home/pi/motion
    2. sudo vi send_alert.sh
    复制代码
    输入下面附件中代码,将其中reciever@qq.com修改为需要接收报警图片的邮箱即可
    send_alert.txt (1.05 KB, 下载次数: 1)
    考虑到移动报警会不停产生报警图片,为了保护树莓派的TF卡,笔者决定将报警图片存储到U盘,将一个FAT32或者exFAT文件格式U盘插到树莓派USB口,输入下面命令挂载U盘
    1. sudo mkdir /mnt/usb
    2. sudo mount -t vfat /dev/sda1 /mnt/usb
    复制代码
    或者
    1. sudo mkdir /mnt/usb
    2. sudo mount -t exfat /dev/sda1 /mnt/usb
    复制代码
    然后在U盘根目录创建motion文件夹用于存放抓拍的图片
    1. sudo mkdir /mnt/usb/motion
    复制代码
    最后运行motion
    1. sudo motion
    复制代码
    当有人或物在摄像头前移动时会有照片抓拍到前面设置的QQ邮箱,如下图
    2017-12-01_124440.png

    2017-12-01_124311.png

    2017-12-01_124125.png

    2017-12-01_162149.jpg

    2017-12-01_162244.jpg

    如需局域网查看实时视频可以在浏览器输入
    1. 树莓派局域网IP:8081
    复制代码
    2017-12-02_150934.png

    如需局域网登陆网页管理界面可以在浏览器输入
    1. 树莓派局域网IP:8080
    复制代码
    2017-12-02_152602.png

    2017-12-02_152510.png

    2017-12-02_152520.png

    单摄像头默认端口为8081,可以在/etc/motion/motion.conf里面修改stream_port一行设置为其他端口
    如需外网远程查看实时视频,就需要内网映射,可以使用花生壳(收费服务)、ngrok(免费服务和收费服务,其中免费服务有时不大稳定)、蒲公英路由器(最简单和稳定方法),设置方法如下
    首先给蒲公英路由器上电联网,具体参考笔者下面帖子
    蒲公英X3路由器上电、联网、设置无线密码、升级
    然后登陆管理界面选择绑定账号后注册一个花生壳账号,也可以直接使用蒲公英路由器SN号产生的花生壳账号
    2017-12-02_143337.png

    2017-12-02_143346.png

    2017-12-02_145207.png

    自己注册的账号需要绑定账号
    2017-12-02_145517.png

    内置账号也可以直接使用
    2017-12-02_145628.png

    将树莓派连接上蒲公英路由器,然后查看路由器管理界面可以看到局域网IP
    2017-12-03_190632.png

    登陆路由器管理界面选择智能组网,将路由器添加到网络成员
    2017-12-03_191552.png

    然后在需要外网访问树莓派的设备(电脑、手机、平板等)上安装蒲公英路由器客户端
    https://pgy.oray.com/download/
    Windows电脑下载安装如图
    2017-12-03_120916.png

    打开
    2017-12-03_120924.png

    登陆之前申请的Oray花生壳账号,然后进入路由器管理界面可以看到客户端显示如下
    2017-12-03_121636.png

    将客户端加入网络成员以便外网访问,客户端添加需要设置密码
    2017-12-03_121721.png

    电脑断开蒲公英路由器后使用其他网络登陆客户端
    2017-12-03_122040.png

    搜索树莓派连接的蒲公英路由器的局域网IP
    2017-12-03_123014.png

    双击上面树莓派那项开始ping,或者WIN+R输入cmd后输入ping+上面树莓派ip测试响应
    2017-12-03_123059.png

    外网ping测试OK,接着外网访问摄像头测试,在浏览器输入树莓派在蒲公英路由器下局域网IP:8081,显示如下
    2017-12-03_123643.png

    上图红色标出的电脑局域网IP和蒲公英路由器不在一个网络中,浏览器中为蒲公英路由器中的树莓派局域网IP,可知外网访问树莓派查看摄像头成功
    接着介绍在手机配置查看方法
    笔者手机为安卓,首先下载安装蒲公英客户端安卓版本
    Screenshot_2017-12-03-20-52-52.png

    Screenshot_2017-12-03-20-53-21.png

    打开客户端
    Screenshot_2017-12-03-20-53-35.png

    登陆之前注册的Oray账号
    Screenshot_2017-12-03-20-54-41.png

    打开MXPLAYER或者VLC视频播放器,选择打开网络串流,输入蒲公英路由器下的树莓派局域网IP后点确定
    Screenshot_2017-12-03-21-09-16.png

    树莓派摄像头的实时视频播放如下,硬解码不能播放的话需要切换为软解码即可正常播放,这样就实现了外网查看蒲公英路由器下的树莓派摄像头
    Screenshot_2017-12-03-21-08-33.png

    若出现上面摄像头画面显示时间不正确则需要调整时区,默认固件是UTC,中国是UTC+8,
    2017-12-04_120153.png

    设置方法如下,输入
    1. sudo raspi-config
    复制代码
    选择4
    2017-12-04_120202.png

    选择I2
    2017-12-04_120211.png

    选择Shanghai
    2017-12-04_120232.png

    再次查看发现时区和时间正确了
    2017-12-04_120245.png


    下面介绍外网远程查看抓拍目录的方法,首先登陆树莓派终端,输入下面命令安装samba
    1. sudo apt-get install samba
    复制代码
    如果需要密码查看,按下面设置查看密码,需要输入两次密码
    1. sudo smbpasswd -a pi
    复制代码
    接着修改配置文件
    1. sudo vi /etc/samba/smb.conf
    复制代码
    在最下面一行后面加入下面代码
    1. [USB]
    2. path = /mnt/usb
    3. comment = USB Flash Drive
    4. valid users = pi
    5. writeable = yes
    6. browseable = yes
    7. create mask = 0777
    8. public = yes
    复制代码
    保存后输入下面命令重启samba服务
    1. sudo /etc/init.d/samba restart
    复制代码
    接着在外网手机上登陆蒲公英客户端并打开ES文件浏览器,点击网络-局域网
    在服务器里面输入
    1. 蒲公英路由器下树莓派局域网IP/usb
    复制代码
    在用户名里面输入pi
    在密码里面输入上面设置的samba密码,然后点确定后显示如下
    Screenshot_2017-12-03-20-56-08.png

    点击进去
    Screenshot_2017-12-03-20-56-13.png

    由于抓拍照片在motion文件夹内,点击进去即可查看
    Screenshot_2017-12-03-20-56-31.png

    可以随意查看,相当方便,这样就实现了外网直接查看树莓派抓拍文件
    由于是VPN网络查看,所以必须登陆蒲公英客户端、必须登陆蒲公英客户端、必须登陆蒲公英客户端才能成功,重要的事情说三次
    Screenshot_2017-12-03-20-59-42.png

    这样就完成了这次的树莓派家庭网络监控的项目,实现了移动抓拍存储文件到U盘和发送指定邮箱功能、实现了远程实时视频查看、远程直接查看抓拍文件等功能,最后感谢爱板网、感谢E络盟、感谢上海贝锐信息科技提供的产品!
    4.硬件连接图
    与树莓派摄像头模块连接图
    IMG_20171202_140802.jpg

    与USB摄像头连接图
    IMG_20171202_111459.jpg


    已有 1 人评分铜板 收起 理由
    ky123 + 20 铜板周年庆有用奥~

    总评分: 铜板 + 20   查看全部评分

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    手机版|爱板网 |网站地图  

    GMT+8, 2017-12-13 07:35 , Processed in 0.148352 second(s), 12 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部