製作raspberry pi上傳自動分享與備份

9
製製 RaspberryPi 製製製製製製製製製 首首 imgur 首 Dropbox 首首 Facebook 首首首首首首首首 首首首 一,一 Dropbox 首 首 Imgur 首首首首首首首首首首首首 Facebook 首 製製製製製製 RaspberryPi Webcam 製製製製 首首首 一體, Dropbox-Uploader 首首首首 首首首首 : git clone https://github.com/andreafabrizi/Dropbox- Uploader/ 首首首 ,, : $chmod +x dropbox_uploader.sh 首首首首首首首 .sh $./dropbox_uploader.sh 首首首首 ./dropbox_uploader.sh COMMAND [PARAMETERS] DROPBOX-UPLOADER COMMAND upload [LOCAL_FILE/DIR] <REMOTE_FILE/DIR> 首首首首首首首 Dropbox 首首首首首首首 download [REMOTE_FILE/DIR] <LOCAL_FILE/DIR> 首首首首首 Dropbox 首首首首/首首首首首首首首首首/首首 delete [REMOTE_FILE/DIR] 首首 Dropbox 首首首首首首首首首 move [REMOTE_FILE/DIR] [REMOTE_FILE/DIR] 首首首首/首首首首首首首首首 copy [REMOTE_FILE/DIR] [REMOTE_FILE/DIR] 首首首首首首首首首首首 mkdir [REMOTE_DIR] 首 Dropbox 首首首首首

Upload: felix-lin

Post on 07-Aug-2015

659 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 製作Raspberry pi上傳自動分享與備份

製作 RaspberryPi上傳自動分享與備份

首先我們去了解了我們的服務需要使用到的平台與網站,最後我們決定是使用 imgur 與 Dropbox 還有 Facebook 來做服務的串流。

一開始我們先做的事情就是去申辦帳號,我們先申請了一個 Dropbox 用的帳號,至於 Imgur 是可以直接上傳不用註冊的,Facebook 的帳號則是使用我們自己的。

實作所需材料

RaspberryPi、Webcam。

教學文件

一開始先去查閱相關的軟體是否有提供套件,我們就查詢到了有 Dropbox-

Uploader 的套件。下載套件:

git clone https://github.com/andreafabrizi/Dropbox-Uploader/

之後必須將下載下來的檔案,給予執行權限,不然無法執行:

$chmod +x dropbox_uploader.sh

給予權限後執行.sh

$./dropbox_uploader.sh

執行格式./dropbox_uploader.sh COMMAND [PARAMETERS]

DROPBOX-UPLOADER COMMAND

upload [LOCAL_FILE/DIR] <REMOTE_FILE/DIR>

上傳本地檔案到 Dropbox 中的資料夾目錄 download [REMOTE_FILE/DIR] <LOCAL_FILE/DIR>

下載檔案從 Dropbox 的資料夾/目錄到本地端的資料夾/目錄 delete [REMOTE_FILE/DIR]

刪除 Dropbox 中的資料夾或是目錄 move [REMOTE_FILE/DIR] [REMOTE_FILE/DIR]

對資料夾/目錄做移動或是改名 copy [REMOTE_FILE/DIR] [REMOTE_FILE/DIR]

複製遠端資料夾或是目錄

Page 2: 製作Raspberry pi上傳自動分享與備份

mkdir [REMOTE_DIR]

在 Dropbox 中製作目錄 list <REMOTE_DIR>

將 Dropbox 文件夾的內容列出來 share [REMOTE_FILE]

拿到要分享的檔案與資料夾的連結(LINK)。 info

把你帳號下的資訊列印出來 unlink

斷開帳號與 Dropbox 的連結

Optional parameters:

-f [FILENAME]

Load the configuration file from a specific file

-s

在上傳與下載時,自動跳開已經存在的檔案 Default: Overwrite

-d

Enable DEBUG mode

-q

Quiet mode. Don't show progress meter or messages

-p

Show cURL progress meter

-k

Doesn't check for SSL certificates (insecure)

然後我們想去看看 imgur 的運作機制,於是我們去找了相關的文件來觀看,發現 imgur 做上傳後,會自動丟回網址到畫面中。那麼這邊要分兩個部分來說,第一個部分為如何使用指令,另一個部分為如何抓取網址。

Imgur Bash Script 語法

Imgurbash.sh <filename>

之後我們第一次想要嘗試利用 E-mail 的方式,將訊息藉由 Facebook 臉書專用的發訊息電子郵件,所以我們要做的事情有兩個,一個是找出發訊息用的郵件,另一個是開通 RaspberryPi 的 postfix。所以一開始我們需要安裝幫房轉發以及寄送郵件的 Postfix

sudo apt-get install postfix

Page 3: 製作Raspberry pi上傳自動分享與備份

之後選擇第二項的 Internet,然後輸入自己的 DomainName,如果沒有的話,BlueT 有提供他自己的 hostName.domainName(ex:如果是爽名@BlueT.org 就寫 爽名.BlueT.org )(沒有自己的 domain name 就用這個)

當然也可以自己去申辦一個。然後是發信件的格式vim 任意名稱.mail //新增郵件(郵件內容如下)

Subject:

From:<e-mail>

To:<e-mail> (自己的 E-mail)

內文

這個格式,不過使用這個格式會遇到的問題就是,你還沒有你的 Facebook 的專屬發文信箱,以及你根本不知道格式是怎麼寫。所以下面是來教學有關於 FB

的 EMAIL 申請以及發文格式。

首先登入 Facebook 點選帳號設定,或是進入 http://facebook.com/mobile 這個網址來開通。

之後點進手機板綁定手機

Page 4: 製作Raspberry pi上傳自動分享與備份

他會透過手機的簡訊來認證你的認證碼,輸入認證碼後就可以得到你專屬的發布貼文用的電子郵件(以下簡稱 mFacebook)

之後就可以開始寫電子郵件實際測試目的:就是要從電子郵件送到 Facebook 塗鴉牆Subject:要傳上去的內容(測試後,這就是顯示在 Facebook 塗鴉牆的內容了)

From: <自己的 e-mail>To: mFacebook

內容:任意(可以不打,測試後,發現不顯示)

但是如果將圖片的網址貼在 Subject 的話,縮圖並不會被顯示。所以我們尋求更好的解法。聽聞有 FB CommandLine 之後,我們又朝向這個目標前進。這時候我們要先解決用 Webcam拍照的問題,因為這畢竟是我們一開始的出發點,於是我們研究了 fswebcam。首先要確認 webcam 是否有安裝上,我們可以用下列指令來搜尋Lsusb,他就會有類似下面的畫面pi@raspberrypi ~ $ lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.

Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.

Bus 001 Device 004: ID 0ac8:332d Z-Star Microelectronics Corp. Vega USB

2.0 Camer

找到自己的 webcam 後就可以開始了。首先安裝 fsewbcam

sudo apt-get install fswebcam

最後指令只需要 Key

Page 5: 製作Raspberry pi上傳自動分享與備份

sudo fswebcam -r 960x720 -d /dev/video0 -p YUYV -s save

/home/pi/upload_pic/檔名他就會自動切成我們要的大小,如果超過格式,他就會以他能做到的最大輸出來拍攝。那麼相關的指令解釋如下-r 000X000:解析度,如果超過 webcam 的預設值會自動調整-d /dev/video:選擇 device,選擇你要使用的 webcam,預設為/dev/video0

-p colour formats:選擇顏色格式-s save 路徑: 設定截圖完的檔案儲存路徑當這些指令都確認過後,接下來就是寫入自動腳本,讓這些服務流可以自動串接起來,我們在這邊遭遇到了一些困難,因為我們不知道如何將 imgur 的網址抓取出來建立檔案以供讀取,所以我們一開始想更改 imgur 提供的 bash 檔案內的程式碼,可是在他的程式還沒有跑完之前他的 URL 並不會被生成,於是我們利用他會吐出資料的方法抓取值,指令如下

~/shell/upload.sh |grep ‘http’ >> out.txt

之後我們可以抓取值之後就是寫個腳本讓他可以自動執行。

execute.sh

Page 6: 製作Raspberry pi上傳自動分享與備份

之後我們使用另一個 Script 來呼叫之前的 Script。

upload.sh

再來是 Facebook 的 commandline

https://apps.facebook.com/cmdline/

請照他的指示去做

Step 0: install fbcmd

Step 1: grant basic access:

[fbcmd go access]

Step 2: generate AUTH code:

[fbcmd go auth]

Step 3: enter auth code:

[fbcmd auth XXXXX]

Page 7: 製作Raspberry pi上傳自動分享與備份

Step 4: grant extended permissions:

[fbcmd addperm]

Step 5: test your installation:

[fbcmd test]

Step 6: have fun

安裝後記得回你的 facebook 點確認這個程式對你的個人資料做存取。接下來他上面有 wiki裡面有更詳盡的解釋,我只取我們有用到的部分。POST

描述:

分享 故事,圖片,MP3 或是 Flash 動畫到你的塗鴉牆Parameters

POST

 1 (必填)  Text  Post Message. 輸入像是狀態更新的文字。所以可以撐家動態文字 For example "is loving this POST command". (see below)

 2 (選擇性填空)

 Text  Post Name.如果是填入 URL 的話,那麼他就會變成一個連結 (see below)

 3 (選擇性填空)

 URL  Post Link.  放置URL 的連結 (see below)

 4 (選擇性填空)

 Text  Post Caption. The Caption appears below the Name. (see below)

 5 (選擇性填空)

 Text  Post Description. The Description appears below the Caption. (see

below)

POST

Page 8: 製作Raspberry pi上傳自動分享與備份

POST IMG

 1 (必填)

 Text  Post Message.

 2 (必填)

 Image

URL Image Source.  你想分享的圖片的 URL。

 3 (必填)

 URL  Image Link. 讓你可以造訪圖片的來源網址。

 4..7  Post Name, Link, Caption, Description (see 2..5 above)

POST IMG

POST MP3

 1 (必填)  Text  Post Message.

 2 (必填)  MP3

URL

 Song Source.  This is a URL that points to the mp3 you want

to share.

 3 (選擇性填空)

 Text  Song Title.

 4 (選擇性填空)

 Text  Song Artist.

 5 (選擇性填空)

 Text  Song Album.

 6..9  Post Name, Link, Caption, Description (see 2..5 above)

我們使用了第一個 POST 指令,但是也是不會出現縮圖。但是我們發現下面有一個 POST IMG 的指令,使用後就可以 POST 出縮圖了。

指令為

Page 9: 製作Raspberry pi上傳自動分享與備份

fbcmd POST IMG "check out this photo!"

"http://example.com/image.jpg"  "http://example.com/link.html"

也可以寫成:fbcmd POST IMG 0 "http://example.com/image.jpg" 0

省下一堆廢話的空間。

最後就是執行我們的指令碼

~/shell/execute.sh

遇到困難fswebcam:截圖出來是一片黑,經過詢問 陳尚瑋學長 後發現,是 Logitech

C170 的問題,需要鍵入 –p YUYV ,設定他的 color format ,如此便能正常產出圖像