查看: 3987|回复: 0

Arduino Yun+摄像头=移动物体侦测并报警器

[复制链接]

该用户从未签到

发表于 2017-5-25 13:18:56 | 显示全部楼层 |阅读模式
分享到:
最近拿到一块Arduino Yun板,想来做个好玩的应用。既然带了Linux系统,那么还是要发挥他的性能,于是决定做一个侦测移动物体的应用,网上能找到的案例,大部分都是用人体感应检测人,然后拍照,上报。这种淘宝上的人体感应效果其实很差,很容易误报,工业上的人体感应一般采用红外加微波双鉴探测。既然有了摄像头,为何不直接用算法搞定呢。
开搞

先说下实现框架:采用USB免驱摄像头,移动探测采用motion库,探测到后自动运行Python脚本。脚本可以写一段发送邮箱、短信、微博。。。。。。,看你能想到的,只要有API提供基本都能实现。
Arduino YUN的联网基本配置,这里不多说了,传送门
登陆Arduino YUN页面,https://arduino.local。登陆Arduino Luci/System/Software

下载“kmod-video-uvc”摄像头驱动和 “motion” 移动侦测安装包。
先来看下摄像头是否可以用,网上很多摄像头不一定支持,我第一次用的一款,出来的图片严重失真,后来用了一个淘宝上写着支持树莓派、linux的摄像头,才成功。
用Putty,开启SSH,在命令行里输入dmesg,可以看到

输入lsusb,查看是否识别为USB了,也可以查看、/dev目录下是不是多了个video0设备。

接下来配置motion库

这里可以用WinSCP软件,采用SCP协议登陆。

在/etc目录下,找到motion.conf,下载到本地。
vi etc/motion.conf(里面的具体配置意义可以看它的注释,或者见https://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions
关键的几点配置:
daemon off #关掉deamon模式
locate_motion_mode on #探测到图像中有运动时,把运动区域用矩形框起来
videodevice /dev/video0 #加载USB摄像头的设备(对应自己的摄像头设备)
width 640 #图像宽度
height 480 #图像高度
target_dir /mnt/sda1/webcam #设置拍摄图片的存储目录,这里我们把SD卡设置成Arduino Yun的外部储存器。SD的配置参考传送门
threshold 3000 #这个是改变探测灵敏度,越小越灵敏。
stream_localhost off
webcontrol_localhost off
#关闭,让我可以通过浏览器查看视频。

on_motion_detected “python /mnt/sda1/allarme.py” #配置当侦测到移动物体时,自动执行相应的程序。这里是最关键的地方。
到这里我们可以在命令行里输入motion,启动。打开浏览器 ,输入 IP:8081,查看运行效果。对效果不满意,可以输入 IP:8080进入motion设置页面。

配置QQ邮箱
用QQ邮箱服务器发送邮件,需要设置下自己的QQ邮箱发送登陆口令。

把生成的授权码记录下。

这段Python脚本就是发送邮件的简单实现。注意发送内容不能中文,不识别。把脚本放在刚才配置的地方就可以了。
配置短信接口脚本


我这里使用了阿里云的短信API接口,官方就提供了Python事例,把参数设置下自己的就可以。
后记
实际运行的时候,视频还是有点卡顿,感觉是处理器性能不够,摄像头像素选的太低。后面准备换个主板和摄像头在试试看。图形库可以试试OpenCV。
来源开源硬件实验室
回复

使用道具 举报

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

本版积分规则

关闭

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

手机版|小黑屋|与非网

GMT+8, 2024-11-15 19:32 , Processed in 0.131679 second(s), 18 queries , MemCache On.

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

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.