狠狠撸

狠狠撸Share a Scribd company logo
製作 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 中製作目錄

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
之後選擇第二項的 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 這個網
址來開通。
之後點進手機板綁定手機

他會透過手機的簡訊來認證你的認證碼,輸入認證碼後就可以得到你專屬的發布
貼文用的電子郵件(以下簡稱 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
sudofswebcam -r 960x720 -d /dev/video0 -p YUYV -s save /home/pi/upload_pic/檔名
他就會自動切成我們要的大小,如果超過格式,他就會以他能做到的最大輸出來拍攝。

那麼相關的指令解釋如下
-r000X000:解析度,如果超過 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

之後我們使用另一個 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:

[fbcmdauth XXXXX]

Step 4: grant extended permissions:

[fbcmdaddperm]

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

POST IMG

1 (必填) Text

Post Message.

2 (必填) Image

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

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

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

URL
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 出縮圖了。

指令為
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 ,如此便能正常產出圖像
Ad

Recommended

第四組 照片自動分享
第四組 照片自動分享
Felix Lin
?
如何幫樹莓派安裝常用的Python套件(How to Install Python Package on Raspberry Pi)
如何幫樹莓派安裝常用的Python套件(How to Install Python Package on Raspberry Pi)
Yanwei Liu
?
AWS EC2 for beginner
AWS EC2 for beginner
azole Lai
?
aiForge vs. TWCC vs. GoogleColab
aiForge vs. TWCC vs. GoogleColab
Yanwei Liu
?
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CI
Chu-Siang Lai
?
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
Chu-Siang Lai
?
Automate with Ansible basic (2/e)
Automate with Ansible basic (2/e)
Chu-Siang Lai
?
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
?
Using google appengine_1027
Using google appengine_1027
Wei Sun
?
Using google appengine (2)
Using google appengine (2)
Wei Sun
?
Openshift by mtchang
Openshift by mtchang
Chang Mt
?
OpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniter
Hung-yu Lin
?
应用程式部署
应用程式部署
Shengyou Fan
?
Rails gril
Rails gril
Aaron King
?

More Related Content

Similar to 製作Raspberry pi上傳自動分享與備份 (6)

Using google appengine_1027
Using google appengine_1027
Wei Sun
?
Using google appengine (2)
Using google appengine (2)
Wei Sun
?
Openshift by mtchang
Openshift by mtchang
Chang Mt
?
OpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniter
Hung-yu Lin
?
应用程式部署
应用程式部署
Shengyou Fan
?
Rails gril
Rails gril
Aaron King
?
Using google appengine_1027
Using google appengine_1027
Wei Sun
?
Using google appengine (2)
Using google appengine (2)
Wei Sun
?
Openshift by mtchang
Openshift by mtchang
Chang Mt
?
OpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniter
Hung-yu Lin
?

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

  • 1. 製作 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]
  • 2. 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 中製作目錄 list <REMOTE_DIR> 將 Dropbox 文件夾的內容列出來 share [REMOTE_FILE] 拿到要分享的檔案與資料夾的連結(LINK)。 info 把你帳號下的資訊列印出來 unlink 斷開帳號與 Dropbox 的連結
  • 3. 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
  • 4. 之後選擇第二項的 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 這個網 址來開通。
  • 6. 內容:任意(可以不打,測試後,發現不顯示) 但是如果將圖片的網址貼在 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 sudofswebcam -r 960x720 -d /dev/video0 -p YUYV -s save /home/pi/upload_pic/檔名 他就會自動切成我們要的大小,如果超過格式,他就會以他能做到的最大輸出來拍攝。 那麼相關的指令解釋如下 -r000X000:解析度,如果超過 webcam 的預設值會自動調整
  • 7. -d/dev/video:選擇 device,選擇你要使用的 webcam,預設為/dev/video0 -p colour formats:選擇顏色格式 -s save 路徑:設定截圖完的檔案儲存路徑 當這些指令都確認過後,接下來就是寫入自動腳本,讓這些服務流可以自動串接 起來,我們在這邊遭遇到了一些困難,因為我們不知道如何將 imgur 的網址抓取 出來建立檔案以供讀取,所以我們一開始想更改 imgur 提供的 bash 檔案內的程 式碼,可是在他的程式還沒有跑完之前他的 URL 並不會被生成,於是我們利用 他會吐出資料的方法抓取值,指令如下 ~/shell/upload.sh |grep‘http’>> out.txt 之後我們可以抓取值之後就是寫個腳本讓他可以自動執行。
  • 9. 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]
  • 10. Step 3: enter auth code: [fbcmdauth XXXXX] Step 4: grant extended permissions: [fbcmdaddperm] Step 5: test your installation: [fbcmd test] Step 6: have fun 安裝後記得回你的 facebook 點確認這個程式對你的個人資料做存取。 接下來他上面有 wiki 裡面有更詳盡的解釋,我只取我們有用到的部分。 POST 描述: 分享故事,圖片,MP3 或是 Flash 動畫到你的塗鴉牆 Parameters POST 1 (必填) Text Post Message. 輸入像是狀態更新的文字。所以可以撐家動態文字
  • 11. 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 POST IMG 1 (必填) Text Post Message. 2 (必填) Image Image Source. 你想分享的圖片的 URL。 URL
  • 12. 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 Song Source. This is a URL that points to the mp3 you want to shar URL 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 出縮圖了。 指令為
  • 13. 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 ,如此便能正常產出圖像