作者:midaszhou | 更新時間:2016-10-24 | 瀏覽量:2989
我在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.eqytg.org/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連接程序中。
connect2ap WIFI_SSID PASSWORD
/etc/init.d/mjpg-streamer stop
/bin/ash: ./webcam.py: Permission denied
chmod -R 677 webcam.py