在Widora上用fswebcam来做个简单的远程监控

作者:midaszhou | 更新时间:2016-10-24

  我在Widora-NEO上安装了fswebcam,然后用python来调用它 ,并通过curl将图片发送到BIGIOT.net,这样就实现了简单的远程监控。

  以下是具体步骤和脚本,供大家参考。

1. 把支持UVC标准的USB摄像头插入widora-neo,正常情况下会在 /dev目录下出现设备video0。

2. 要想拍摄照片,你要安装fswebcam,这是一款小型摄像头程序。   (如果你另外装了motion, 与它可能有冲突。运行时需要将它停
止!)
先编辑下 vi   /etc/opkg.conf  增加下载源, 最后看起来这样:
src/gz attitude_adjustment http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ramips/rt305x/pack
dest root /
dest usb /usb/optware
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
option check_signature 1
保存一下opkg.conf, 然后更新一下下载源
opkg update
接着可以安装fswebcam了,直接用命令
opkg install fswebcam 

3. 安装curl: (直接用python的pyCurl模块应该也可以,我没有试过)
opkg install curl

 4. fswebcam安装完成后,在终端中运行下面的命令来拍摄一张照片:
 fswebcam --no-banner -r 640x480 /tmp/image.jpg    
这条命令可以抓取一张640x480分辨率的照片,并且用jpg格式保存在/tmp目录下。  --no-banner 表示图片中不要加入时间水印,  时间水印在
widora里好像加不上去,应该是字库的问题。

5. 安装python,也很简单:
 opkg install python
 这个可能要费点时间.

6. 用命令 vi  webcam.py 编辑一个如下的python脚本
 ( 其中 ***** 里分别是你的API-KEY, 设备ID 和接口ID ) 

#!/usr/bin/env python
from os import system
from time import sleep
str1="curl --request POST -F 'data=@"
str2="' --header 'API-KEY: *********' http://www.bigiot.net/pubapi/uploadImg/did/***/inputid/***"
strImage='/tmp/webcam.jpg'   #------webcam存放的图片位置
strcmd=str1+strImage+str2  #--- 完整的curl的命令格式,具体可以参考 BIGIOT.net的图片接口协议(http)
while(1):
   system("fswebcam -r 480x320 /tmp/webcam.jpg")   #---可以根据你的摄像头规格来调整,480x320大小一般的摄像头都可以做到
   system (strcmd)
   print "Webcam photo send!"
   sleep(15)       #-------等待一会  
 
 保存后,赋予脚本执行权限 chmod 755 webcam.py 。 然后试一下命令 ./webcam.py   看看是否能够正确运行。按下Ctrl+c退出。

7. 安装screen,让webcam.py 在后台运行。
安装screen是为了让程序能一直在后台运行,即使你关闭当前控制台Shell,程序也不会退出.
安装screen同样执行 opkg install screen 就可以了。
比如要将程序play一直放在后台运行,你可以执行 screen play ,等play运行的时侯按一下Ctl+a 再按一下d,它就放到后台去了. 如果要调到前台,
执行screen -r. 如果有多个程序在后台,它会提示各程序的PID. 执行 screen -r PID 就可以了.
安装完成后运行: 
screen ./webcam.py 
等程序运行的时候按一下Ctl+a 再按一下d, 让它在后台默默地运行吧!

最后你可以将上面的脚本整合到其他bigiot.net连接程序中。 


评论:共6条

贝壳物联 评论于:2016-10-24 20:16:32
非常感谢分享,正常测试,第一步就卡壳了-_-!!!
一切的基础是widora先连上网,使用:
connect2ap WIFI_SSID PASSWORD
bigiot 评论于:2016-10-24 20:39:44
fswebcam跟mjpg-streamer也有冲突,如开了mjpg-streamer,需要将其关闭再运行fswebcam。
/etc/init.d/mjpg-streamer stop
midaszhou 回复于:2016-10-24 22:07:59
回复 @bigiot: mjpg-streamer 我还没用过
贝壳物联 评论于:2016-10-24 21:16:01
还有一个权限问题,当出现:
/bin/ash: ./webcam.py: Permission denied

可改变文件执行权限:
chmod -R 677 webcam.py
midaszhou 回复于:2016-10-24 22:00:33
回复 @贝壳物联: 是的 这步忘写了 我补上去。
991766617 评论于:2018-12-03 16:20:43
good
评论支持使用[code][/code]标签添加代码
返回顶部