转:http://www.xiaomi.cn/content-156-14482-1.html
http://www.nenew.net/linux-camera-shot-camshot.html
camshot fswebcam
cat ./camshot.sh
1 #!/bin/sh
2 camshot -d /dev/video1 -W 640 -H 480 -p nenew_shot &
3 sleep 5
4 cat nenew_shot > $(date +%Y%m%d%H%M).bmp
5 killall camshot
6 rm nenew_shot
前言
浩子玩开源硬件也有一些时间了(如果不懂开源硬件是什么可以查看我之前的文章《开源硬件入门指南之——树莓派(Raspberry Pi)功能浅析》),不过之前一直在做的自动循迹机器人因为开发时间太久,到现在都还没有可以展现给大家的素材,而我也想把开源硬件的一些作品告诉大家,周末的时候我就在想,我想利用开源硬件做一个可以让小米手机远程监控的装备,说干就干,今天,我将会为大家展现如何利用开源硬件快速实现你的想法。
开源硬件最强大的职责就是在真正的产品出现之前,可以快速的将功能实现,也许使用开源硬件搭建出来的产品原型会比较难看(线、板子会很多),但是产品的功能基本完善了,而对对于硬件发烧友来说,使用开源硬件成本会很低,基本一块树莓派板子加一些线材和传感器就可以实现,而且这些东西是可以重复利用的。
需求分析
我这次想实现的是利用开源硬件开发板树莓派+一个摄像头,在小米手机上远程定时获取摄像头拍摄的图像。
需求:
1、通过摄像头获取图像
2、通过网络将图像上传到服务器
3、小米手机通过APP从服务器获取图像
根据需求以及手头现有的设备,简单的设计了实施方案:
使用一年前购买的微软LifeCam VX-800电脑摄像头做图像采集设备,分辨率应付一般的采集足够了。因为需要一个用于连接摄像头并采集图像的微型电脑,当然这次我们使用的是树莓派,树莓派可以起到两个作用:采集图像和将图像上传到网络。
另外需要图像存储服务,在这里我选用了更为方便的Yeelink平台,Yeeklink作为一个开放的公共物联网接入平台,目的是为服务所有所有的爱好者和开发者,使传感器数据的接入、存储和展现变得轻松简单。
实施方案
首先我们在树莓派安装Raspbian “wheezy”,一个基于Linux的Debian完整操作系统,安装方法参见我之前的文章《开源硬件入门指南之——树莓派(Raspberry Pi)系统安装》,在这里就不再累述。系统成功烧录到SD卡之后安装到树莓派上,将摄像头连接到树莓派USB口,连接电源,启动树莓派,登录账号为:pi,密码为:raspberry。然后会自动进入到命令行模式,因为是Linux系统,与我们平常的Windows、Mac OS都是不一样的,在这里我们依次输入如下红色标注的命令,然后按下回车:
1. 将USB摄像头接到Pi上, 安装驱动, 我所使用的版本(2012-10-28-wheezy-raspbian.img)已经包含了V4L2驱动, 略去xxx字. 有问题的话Google一下
pi@raspberrypi ~ $ ls -l /dev/video0
crw-rw---T 1 root video 81, 0 Jan 1 1970 /dev/video0
2. 安装抓图软件fswebcam
pi@raspberrypi ~ $ sudo apt-get install fswebcam
3. 登录Yeelink(http://www.yeelink.net/), 在用户中心增加一个设备, 再为之增加一个图像传感器。
4. 在/home/pi下准备脚本yeelink.sh(vi /home/pi/yeelink.sh), 内容为以下两行命令, 其中的ApiKey和URL请改为自己设备对应的信息。
sudo fswebcam -d /dev/video0 -r 320x240 --bottom-banner --title "RaspberryPi @ Yeelink" --no-timestamp /home/pi/yeelink.jpg
curl --request POST --data-binary @"/home/pi/yeelink.jpg" --header "U-ApiKey: xxxxxxxxxxxxxxxxxxxx" http://api.yeelink.net/v1.0/device/1022/sensor/1294/photos
为脚本增加可执行权限
pi@raspberrypi ~ $ chmod +x yeelink.sh
5. 将脚本加入cronjob定时任务
pi@raspberrypi ~ $ crontab -e
加入下面一行, 让脚本每分钟运行一次, 保存退出。
*/1 * * * * /home/pi/yeelink.sh
至此树莓派端的搭建已经完成,然后插上网线,连接电源,就可以自动进行传输了,到Yeelink个人中心看看你的成功吧,如下图所示。为了保证图片传输速率,我在树莓派端搭建的时候将图片设置成了320×240像素,一般使用已经足够了,间隔拍摄时间是1分钟,从Yeelink时间线中可以看到,基本每分钟都会传输一张图片。
完成效果
在小米手机上安装Yeelink客户端后可以很方便的获取图片传感器的数据,上面就是这个客户端的界面,这样,只要你的小米手机可以连接到网络,就可以查看到监控的图像了。
总结
利用开源硬件树莓派+摄像头 让小米手机成为远程监控利器,开源硬件可玩的地方还有很多,这只是冰山一角,当然主要原因是我刚刚入门,更为高深的编程知识还正在学习,如果你也想玩开源硬件,如果你有自己的创意想法,和浩子一起玩开源硬件吧,下次我计划在我的家里利用开源硬件做一些智能家居的事情,敬请期待。