如何利用 Arduino 快速的 PO 文,跟朋友們搶頭香呢?
答案是利用 Arduino 與簡單的電子零件、python,
加上預設好的文章就可以『一鍵搞定』!
這個題目的執行流程如下:
1. 首先將撰寫好的 Arduino 以 USB 與電腦連接
2. 利用 python 撰寫一個監聽 serial port 的 script檔,
持續監聽是否 Arduino 上的按鈕有無被按下
3. 執行結果如下:
- 若被按下: 透過 twitter API PO預設字句到 twitter 上
- 若沒有被按下:Arduino 將持續執行直到按鍵被按下為止
所需材料:
-- Arduino 一片、麵包板一個、按鍵按鈕一個、10k歐姆電阻一個、單心線數條
-- 在電腦端安裝好 python 2.7版本
-- Twitter API key
-- Twitter API key
-- python 相關函式庫:
- pyserial ,這個函式庫可以用來監聽 serial port 的觸發事件
- simplejson、httplib2、python-oauth2,這三個函式庫要在安裝 python - twitter 之前安裝好
- python-twitter ,這是讓我們得以使用 twitter API 發文的函式庫
Arduino 端:
以上材料準備完成後,開始先將 Arduino 的程式與硬體設定完成,
硬體電路,請參考以下圖形連接完成:
硬體線路安裝完成後,將以下程式下載至 Arduino 上,並開啟 Arduino 中內建的 Serial Monitor 觀察電路上的按鈕有無按鍵變化。若沒有任何反應,請檢查電路是否有誤。
int buttonPin = 10; //定義按鈕連接腳位
int val = 0; //按鈕狀態
void setup()
{
pinMode(buttonPin, INPUT); //將按鈕腳位設定為輸入模式
Serial.begin(9600); //設定 serial 傳輸速率
}
void loop()
{
val = digitalRead(buttonPin); //讀取按鈕狀態
if(val == HIGH) { //如果按鈕被觸發
Serial.println("這裡是想PO文在Twitter上的內容"); //將預先設定的字串傳到 serial port
delay(1000); //延遲等待一秒鐘,避免連續觸發,並可減少機械彈跳造成的錯誤
}
}
以上步驟若沒有任何問題,那麼 Arduino 端的電路與程式就算完成了,接著換電腦端。
電腦端:
首先到 python 下載 python 2.7 版本安裝至電腦上,
下載頁面:http://www.python.org/download/,請依照電腦系統版本下載適合的安裝檔
安裝完成後,將python設定至環境變數,以便系統執行python 命令時能連結至正確檔案,
1. 在「電腦」上點右鍵,點選「內容」
2. 在 Windows 7 裡,進入內容選項後,還要從左側挑選「進階系統設定」
3. 於「進階」頁面中,進入「環境變數」
4. 「系統變數」欄位中,找到「path」,並點選「編輯」
5. 先按一下鍵盤上的方向鍵「右」,並輸入一個「分號;」
6. 在分號後放填入 python 2.7 的安裝路徑,一般而言,安裝過程中若沒有指定其他安裝路
徑,python將會安裝在 C:\Python27
安裝完成後,開啟「命令提示字元」,並輸入:python
確認是否有安裝成功
若 python 安裝成功,將會出現上述畫面。對 python 有興趣的人,可以到網路上看看你教學文件,在此將不繁述。離開此畫面,只需要 ctrl + c 即可離開。
安裝好 python 後,我們還有什麼需要安裝、設定呢?
-- Twitter API key
點選建立一個 app 後,將要求你登入 twitter,登入後將跳轉至申請頁面,
在頁面中所要填選的資料為:作品名稱、作品簡易說明、網址
填選完成後畫面將跳至申請完成後的 API key 資訊頁面
此頁面請保留,不要離開,因為待會填寫資料將會用到
接著將尚未安裝的 python 相關函式庫全部下載、按照順序安裝:
- pyserial ,這個函式庫可以用來監聽 serial port 的觸發事件
- simplejson、httplib2、python-oauth2,這三個函式庫要在安裝 python - twitter 之前安裝好
- python-twitter ,這是讓我們得以使用 twitter API 發文的函式庫
下載解壓縮後,可看到檔案中有一個 setup.py 檔,
記下這個 setup.py 檔的路徑後,請開啟命令提示字元,並輸入 cd 這個指定,
切換至該目錄底下
切換至該目錄底下後,輸入以下命令,將完自動完成安裝
python setup.py install
其他函式庫安裝步驟相同,請自行安裝
安裝完成後,開啟記事本或 其他編輯器(Notepad++),輸入以下程式碼,並儲存副檔名為「. py」 的程式,例如: test.py。但先別急著複製貼上就存檔,還有兩個地方要修改一下
##Import Libraries
import twitter
import serial
import time
##Authenticate with Twitter API
api = twitter.Api(consumer_key='your key here', consumer_secret='your key here', access_token_key='your key here', access_token_secret='your here here')
##Configure Serial Port
arduino = serial.Serial('/dev/ttyUSB0', 9600)
while 1: ##Infinite Loop
status = arduino.readline() ##Wait for new line to come across Serial
api.PostUpdate(status) ##Post message to Twitter
time.sleep(3600) ##Wait 3600 seconds
del status ##Clear status
1. 填入 API key
api = twitter.Api(consumer_key='your key here', consumer_secret='your key here', access_token_key='your key here', access_token_secret='your here here')
其中上列這行裡的:
- consumer_key
- consumer_secret
- access_token_key
- access_token_secret
全都在稍早申請 Twitter API key 頁面中,請自行填入
2. 修改 serial port
2. 修改 serial port
arduino = serial.Serial('/dev/ttyUSB0', 9600)
在 Linux 底下可以不必修改太多上面這段程式碼,只需要瞭解 Arduino 佔用了哪一個 port即可。Windows 底下就要將 /dev/ttyUSB0 改為你所使用的 COM port 。
如何得知所使用的 COM port ? 打開 Arduino IDE 後,將 Arduino 透過 USB 接至電腦,
並觀看 IDE 右下角就會顯示 COM port 是哪一個了
全都完成設定、安裝後,接著就可以執行看看結果如何了。首先打開命令提示字元,並切換到當初儲存 test.py 檔的目錄下,輸入: python test.py
輸入完成後,python 就開始持續的偵測 serial port 有無被觸發,若有觸發,將會在 Twitter 上PO出你所預設要 PO 出的文字。
以下影片為執行結果,影片觀看過程中若影像為橫的,請挑選 720P 畫質觀看:
沒有留言:
張貼留言