2013年9月2日 星期一

Facebook 「讚」電子顯示器

有自己的粉絲專頁還不夠酷,Facebook 粉絲專頁上都有個「讚」計數器,如果可以把它搬到實體的電子顯示器上,那才叫酷!

image

江湖一點訣,說穿不值一文錢。要取得 Facebook 頁面「讚」次數,其實很簡單,只要在網址列上輸入:http://api.facebook.com/restserver.php?method=links.getStats&urls=,然後加上想要看的 Facebook 頁面,就會得到一個像底下這樣的 XML 格式的回應,比如 https://www.facebook.com/cutespring 這個粉絲專頁:

image

其中 total_count 就是「讚」的次數了。(PS: 按 Facebook 這裏的說明,totaol_count 是 like_count + comment_count + share_count 的總合,按道理來說,「讚」次數應該是 like_count 才對,不過咱們不是 Facebook 工程師,沒必要那麼深入)。

知道怎麼取得 Facebook 「讚」的數目後,接下來是把它搬電子顯示器上。

其實在 Maker Faire Taipei 2013 的工作坊上,Ben6 就用 OpenWrt + Arduino + TM1638 LED Display 搭配 Bash Shell Script 示範過了。因為想練習 Lua,所以底下我便用 Lua 重新改寫了程式。簡單說明一下步驟:

1. 首先,連接 Arduino 與 TM1638 (本例將 DIO, CLKC, STB1 分別接到 Arduino 的 8, 7, 6 接腳)

2.https://code.google.com/p/tm1638-library/ 下載並安裝 tm1638 library

3. 上傳底下的程式到 Arduino:

程式說明:

  • 使用 TM1638 module(8, 7, 6) 定義 TM1638 物件,DIO 接在 pin 8, CLK 接在 pin 7, STB1 接在 pin 6
  • 使用 module.setDisplayToDecNumber(1, 0, false) 讓 LED Display 一開始顯示數字 1,第二和第三個參數的意思是不要顯示小數點也不要 Leading Zero。
  • 在 Loop() 函式中,不斷讀取輸入的數值,小數點 '.' 字元代表封包結束,所以遇到小數點時便把收到的「讚」數目搬到 TM1638 顯示器上

4. 把底下的 Lua script 存檔為 fblikes.lua,傳到 OpenWrt 上並改為可執行:

完成後,啟動 fblikes.lua 程式。過幾秒鐘後...

image

耶!大功告成!

參考資料

0 意見: