電子貨幣匯率追蹤器

September 15, 2015
Facebook
Twitter

即時獲知你最愛的電子(加密)貨幣現值。目前支援比特幣(Bitcoin)、狗幣(Dogecoin)和萊特幣(Litecoin)。

這一款電子貨幣匯率追蹤器,會持續追蹤以下三種電子貨幣的價值比特幣、萊特幣、狗幣,並計算這三種電子貨幣對美金的兌換現值。
硬體的部分包含一臺Raspberry Pi、一臺16×2液晶顯示器(液晶顯示器)、一張SD卡、乙太網路線與USB micro連接線與電源線。這個追蹤器的軟體是建立在Raspberry Linux上,並使用python程式庫來控制一臺Hitachi牌液晶顯示器控制器,搭配我們的python程式碼來做JSON(JavaScript Object Notation)指令,拉出每種不同電子貨幣的市場指數。
在Make: 第19期中有更多關於微控制器與穿戴式電子裝置的訊息,如果手邊沒有這一期雜誌的話,歡迎到訂購頁面訂購喔!
图片

電子貨幣匯率追蹤器組裝

這些程式碼從網路上把這些電子貨幣的匯率拉出來,而且,還會把之前的價錢存在以下這個變數中:

  • self.last_price

之前的價錢會顯示在16×2液晶顯示器的下排,上排則是現在的價錢。
下圖中呈現的是比特幣(Bitcoin、簡稱BTC),現值為587.46美元,之前則是587.22美元。

图片

特製電子貨幣匯率追蹤器外殼,可以顯示美金現值和之前的價錢喔!

電子貨幣背景知識
不管懂不懂電子貨幣,程式碼都還是可以跑,不過,如果學一點背景知識還滿有趣的啦,至於那些嚴謹(而無趣)的部分也就不在我們的討論範圍了。

歷史
電子貨幣的概念來自2009年左右中本哲史(Satoshi Nakamoto)發表的論文,裡頭列舉了比特幣協定內容,其實這個名詞在1990年代末期就有了,只是在比特幣之前都沒有實際執行。
到了2011年,繼比特幣技術上大獲成功之後,萊特幣跟著問世,希望可以修正一些比特幣遇到的問題,尋求創新。
電子貨幣的特色之一在於市面上貨幣的總量管制,這與各國央行印製的實體貨幣非常不同,萊特幣(Litecoin)的上限是八千四百萬、比特幣(Bitcoin)上限是兩千一百萬,這個數量加上一些其他變數,使得來特幣比較容易掌握。

順著這股潮流,狗幣(Dogecoin)在2013年問世,以柴犬作為吉祥物,並用Comic Sans(譯注:一種擬手寫的字體)為官方字體,充滿趣味。狗幣的數額上限遠大於比特幣與萊特幣,高達一千兆單位!單就這個驚人的天文數字,加上廣告中搭著火箭的狗兒,帶出了狗幣著名的廣告詞:「衝向天際,直到月球」(To the Moon)!

比特幣是怎麼來的?
在比特幣的「常見問題」中是這樣解釋的:
新的比特幣透過一個去中央化的競爭過程「探勘」(mining)而生,這個過程基本上就是使用者透過他們的服務獲得網絡中他人的酬賞。比特幣的「探勘者」(miner)們透過特製的硬體進行交易、使他們的社群網絡更加穩固,目的就是蒐集更多的比特幣。
根據比特幣協定,新比特幣產生的速率固定,因此,比特幣探勘這們生意就變得十分搶手。如果網絡中的探勘者持續增加,探勘的工作就益發困難,因此,探勘者必須試著降低營運成本。在比特幣的世界中,沒有所謂「權貴」或任何工程師可以透過操縱系統的方式增加利潤,世界上每一個比特幣節點都會拒絕違規的操作。
比特幣的產量逐年遞減,生產率公開,每一年新產生的比特幣都會減半,直到世界上的比特幣達到兩千一百萬這個數量為止。到那個時候,比特幣探勘者可能只會賺到小量的交易費用了。
https://bitcoin.org/en/faq#how-are-bitcoins-created

電子貨幣相關資訊
如果想要接觸更多與數位貨幣相關的資訊,可以到BitcoinLitecoinDogecoin看看。
在此特別推薦這個網頁,裡面介紹了大部份數位貨幣領域中的專業語彙。

所需材料
Raspberry Pi新手套件包(Raspberry Pi Starter Kit):RadioShack網站商品編號#277-196。
液晶顯示器(16×2):Maker Shed網站商品編號#MKAD15。
Enercell牌的AC電源轉接器:Micro USB以及USB適用,RadioShack網站商品編號##23-1747。

所需工具
電腦或筆記型電腦:連接Raspberry Pi與SSH。
乙太網路線:將Raspberry Pi連接家用網路。

步驟#1:安裝主要零件
將Pi Cobbler、16×2的液晶顯示器、10K的電位計插上一片大的麵包板。
10k電位計要用來調整液晶顯示器上的對比。 
注意:請確認Pi Cobbler的凹槽不可以朝你,是朝你相反的方向。
步驟#2:電位計接線
從電位計左側針腳接一條紅線到電源軌。
從電位計中間針腳(電刷)接一條黃線到液晶顯示器.
從電位計又側針腳接一條黑線到接地軌。
步驟#3:16×2 液晶顯示器接線(一)
將液晶顯示器的1號針腳接到一條黑線到接地軌。再進行下一步之前,請確認液晶顯示器的方向,早期發現,早期治療。
將液晶顯示器的2號針腳接到一條紅線到電源軌。
從液晶顯示器的4號針腳接一條黃線到Cobbler的25號針腳。
從液晶顯示器的5號針腳接一條黑線到接地軌。
從液晶顯示器的6號針腳接一條綠線到Cobbler的24號針腳。
图片

步驟#4:16×2 液晶顯示器接線(二)
[protected-iframe id=”7f87207423357adf961809dda13655c6-30206320-52394698″ info=”7f87207423357adf961809dda13655c6″ width=”120″ height=”150]

從液晶顯示器的11號針腳接一條藍線到Cobbler的23號針腳。
注意:請重複確認11號針腳上的是藍色電線,步驟3中的綠線和這條藍線之間應該要有四條空白列。
從液晶顯示器的12號針腳接一條綠線到Cobbler的17號針腳。
從液晶顯示器的13號針腳接一條橘線到Cobbler的21號針腳。
從液晶顯示器的14號針腳接一條白線到Cobbler的22號針腳。

步驟#5:為16×2 液晶顯示器接線(三)
從液晶顯示器的15號針腳接一條紅線到電源軌。
從液晶顯示器的16號針腳接一條黑線到接地軌。
從電源軌接一條紅線到Cobbler的5V0針腳。
從接地軌接一條黑線到Cobbler的GND針腳。
步驟#6: 安裝連接線與SD卡
將柔性扁平排線的白色那條(Pin1)接上Raspberry Pi,接在靠近板子邊緣的地方。
接著把Raspbian Linux閃存的SD卡插入。
最後,連接乙太網路線、HDMI線、鍵盤,並連接用USB連接線連接的電源供應器為Pi供電。
注意:如果在閃存上面遇到問題,可以造訪Raspberry Pi基金會網站
步驟#7:連上Raspberry Pi
輸入「使用者名稱:pi」以及「密碼:raspberry」就可以登入。
啟動時會出現你的IP位置,請將它寫下來。在圖中可以IP位置被標註起來了: 10.11.12.80。
一旦IP位置確認之後,就可以透過SSH安裝並設定套件了。
Windows使用者可以考慮下載PuTTY ,而使用OSX與Linux的讀者則可以直接在終端機找到SSH
注意:Rasbian會透過DHCP動態指定IP,除非某個網域上有很多人,不然動態位置通常都會和某一個盒子相連,不過這只是通常而已。要使這個專題更加穩定,其中一個方法就是指定靜態IP位置或者使用 zeroconfig(比如 avahi)。
步驟#8:安裝Python虛擬環境
直接連接Pi(包括鍵盤、螢幕、乙太網路線),或是使用SSH。登入Raspberry Pi,然後從以下指令執行:

  • sudo apt-get install python-dev
  • sudo apt-get install python-setuptools
步驟#9: 執行easy_install
python-setuptools(python安裝工具)搭配了easy_install(安裝超簡單)這項工具,使得python模組的安裝、管理和開發(building)都容易許多。

  • sudo easy_install -U distribute

注意:如果之前已經跑過sudo easy_install -U 這一行的話,會出現錯誤指令 (見圖2),這個錯誤不會造成問題,可以忽略。

步驟#10:安裝Git
安裝git,用來複製軟體庫:

  • sudo apt-get install git
步驟#11:安裝pip和rpi.gpio
安裝pip,用來管理Python的套件:

  • sudo apt-get install python-pip

接著用pip來安裝rpi.gpio,這是一種Python模組,用來控制Raspberry Pi的輸入/輸出針腳:

  • sudo pip install rpi.gpio
步驟#12:安裝電子貨幣追蹤軟體
現在可以準備複製電子貨幣匯率追蹤器的儲存庫了:

  • git clone https://github.com/Make-Magazine/wp14-raspberry-pi-crypto-currency-tracker.git

將目錄改成剛剛複製的內容:

  • cd ~/wp14-raspberry-pi-crypto-currency-tracker

然後設定16×2液晶顯示器的程式庫:

  • git submodule init
  • git submodule init git submodule update –recursive

最後,就可以將追蹤軟體當成根元件來運作了:

  • sudo ./crypto_currency_monitor 
作者簡介
伊曼紐.莫塔(Emmanuel Mota)
是一位專業的理工宅,也是Make的多媒體製作人,不管是液晶螢幕啦、步進馬達啦、動態控制噴火獵殺獨角獸聲控雷射簡直無所不能啊啊。
溫特.伍茲(Wynter Woods)
是一位軟體工程師,興趣廣泛,不管是硬體改裝、音響工程、化學抽樣資料的立體視覺畫呈現都讓我興致高昂,其實,只要可以寫程式,我都會喜歡啦!
我的個人網頁
大衛.謝爾特瑪(David Scheltema)
我喜歡動手做專題,也常寫一些跟電子學有關的文章,基本上,我的生活就是做專題,然後當Make的科技編輯!
譯:孟令函、劉允中

[原文]

Social media & sharing icons powered by UltimatelySocial