10
編者注:該項目來自Instructable,原作者為:AKalyanpur。

這是我在Instructable上的第一個創客項目,名字叫做任務規劃大師。
我相信許多人對智能手機是又愛又恨,它們每天都能給我們帶來新鮮,但其過量的信息又會讓我們感覺喘不過氣來。再加上許多人的工作需要7×24小時待命,一些瑣事就會打亂我們原有的計劃,讓我們的生活變得一團糟。

閑話不多說,我們開始吧。在這個項目中,我們會將一個在線的任務清單(Todoist)和任務規劃大師連起來,這樣,面對混亂的信息,我們就不會再不堪其擾了。

當你添加或者完成某項清單中的任務時,規劃大師就會自動點亮或熄滅LED燈進行提示。這樣一來,我們就能清楚的看到到底還有多少工作要做,而不是像從前那樣貼滿便簽紙卻不知道到底要做什么了。

完成這個項目需要的核心部件并不多,你只需準備一塊新款的Arduino IDE開發板,外加三項服務(Adafruit IO , If This Then That (IFTTT)和在線任務管理程序Todoist)就夠了。
ESP8266 HUZZAH Breakout開發板
FTDI Serial TTL-232 USB線
集成了驅動程序的NeoPixel Ring – 24 x WS2812 5050 RGB LED燈
5V 2A (2000mA)的開關電源
Panel Mount2.1毫米直流桶形插座
小號面包板(正常體積的一半)
線材
剝線鉗
烙鐵
焊料
木工工具(鉆床、臺鋸)
砂紙
12" x 24" x 0.5"的膠合板
12" x 24" x 0.25"的膠合板
12" x 24" x 1/16"的丙烯膠片(選配)
現在我們該制作電路了,而且幸運的是這個電路并不復雜。只要好好閱讀下面的教程就能搞定,不清楚的可以參考下面的電路圖。

1.按照鏈接中的Adafruit ESP8266教程(鏈接)將引腳焊接在ESP8266 HUZZAH開發板上。該教程包括如何焊接,不同的引腳分配和如何在Arduino IDE上對其進行測試。
2.焊接完成后,將它裝在準備好的小號面包板上,安裝位置可以任選。
3.將線的正負極分別焊接在準備好的Panel Mount 2.1毫米直流桶形插座的正負極上。隨后將該線與面包板兩邊的正負極相連。連上5V 2A (2000mA)的開關電源后,就可以為電路提供穩定的電流了。
4.用電線將電源和ESP8266開發板的正極連接起來,隨后再將地線和負極相連。
注意:在NeoPixel LED燈的焊接上,你需要將線從LED前方繞過,再在后方進行焊接。此舉是為了避免焊接時對LED造成損害,因為它們之間的間距太小了。
5.將線與NeoPixel Ring的電源與地線焊接在一起,隨后將其連上面包板的正負極。需要注意的一點是,NeoPixel Ring上有兩套電源和地線,你可以任選其一。
6.最后,將線焊接在NeoPixel Ring的輸入接口上,并將線連上ESP8266的某個針腳,在這里我選擇了12號針腳。
我們現在將線連接到開發板只是為了做測試,等做好了規劃大師的外殼后,我們還要將零部件放進去,隨后才會正式接通電路。
現在可以開始最有趣的部分了。
在下面的鏈接中我附上了你會用到的代碼。
此外,這一步中你還會用到下列技巧:
開發板
在這里我們會用到Adafruit HUZZAH ESP8266。你可以通過下面的步驟找到它:Arduino IDE > 工具> 開發板 > 開發板管理器,然后在其中搜索"ESP8266"。注意:如果你無法在管理器中找到相應的開發板,就需要從Arduino上復制一個超鏈接,詳細步驟請參考下面的鏈接:https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/using-arduino-ide.


庫
我們需要找到Adafruit IO和Adafruit NeoPixel的庫,詳細步驟如下:Arduino IDE > Sketch > 庫> 管理器,隨后在管理器中鍵入"Adafruit IO"和"Adafruit NeoPixel"并進行搜索即可。
此外,你也可以將弄到數字輸出版的Adafruit IO ESP8266示例代碼,步驟如下(鏈接)。從這里你可以下載到一個小型的示例庫。你可以參考數字輸出代碼,不過其他信息則可以直接掠過。

上傳代碼
如果你想上傳代碼到ESP8266開發板,就需要連上FTDI線并進入引導模式。注意:FTDI線中的黑線要連接到地線上。
只需按下開發板上的GPIO(通用輸入輸出)0按鈕就可以進入引導模式,隨后按下重設按鈕,然后松開GPIO0按鈕。接著開發板上的紅燈就會亮起,這時你就可以上傳代碼了。代碼上傳結束后,可以將FTDI線拔掉。

注意:如果要用到數字輸出示例代碼,就需要為其植入NeoPixel庫。此外,你還要在正確的地方輸入WiFi姓名,SSID,Adafruit IO用戶名和Adafruit IO密匙。
用"strandtest"代碼對NeoPixel進行測試
上傳了"strandtest24"代碼后,你就可以對ESP8266開發板和NeoPixel ring進行測試了。如果一切正常,NeoPixel ring的LED燈就會亮起,絕對BlingBling的閃瞎眼。


現在我們可以開始在Adafruit IO上創建新任務和已完成任務的提要了。代碼最終會識別這些信息,并通過開發板將其轉換成相應信號,控制LED的亮或滅。
1.Adafruit上對使用Adafruit IO創建提要,儀表板和數字輸入輸出有詳細的教程,你可以點擊以下鏈接進行參考(鏈接)。
2.學會在Adafruit IO上創建提要后,我們要新建兩個提要,一個用于新任務,另一個則用于已完成任務。
3.在Adafruit IO上選擇“創建提要”。
4.注意:提要的命名最好怎么簡單怎么來,因為這些名字之后還要寫入代碼。在這個項目中,我將兩個提要分別命名為“Todoist_New_Tasks”和“Todoist_Completed_Tasks”。
5.你還可以創建儀表板以便將這些提要變成可視化信息。我推薦你進行嘗試,因為它可以確保消息都能準確無誤的推送到Adafruit IO上去。




現在我們需要關聯Adafruit IO賬號和IFTTT觸發器。其實建立了兩者的關聯后你可以做很多事,不過這次我們要與Todoist搭配使用。詳細步驟如下:
1.打開ifttt.com。
2.點擊“創建表單”。
3.隨后點擊Todoist,它會提示你輸入Todoist的賬號。
4.現在你可以選擇觸發器了。在這里我將“新任務創建”設定到“任何項目”文件夾中。其實你可以對其進行自定義,設定為“工作”或“生日”都行,不過請參考你的Todoist清單設定。
5.隨后選擇Adafruit IO。登陸IFTTT后,只有唯一一個選項,那就是“發送反饋數值”,這時你就需要輸入Adafruit IO的登陸密匙,這個密匙就在你的Adafruit IO帳號中,它是一大串字母和數字的組合。
6.選擇適合新建任務的反饋信息。在“要保存的數據”一欄選擇任意數據。這些數據是代碼中的計數器產出的,所以并不會影響我們的設備。
7.創建表單。











重復第五步即可,不過這次Adafruit IO上的提要要選擇已完成任務。
IFTTT自帶有關聯檢查程序,這樣就能保證其正常工作。不過我們也可以用別的方法,比如利用上面我們提到的Adafruit IO的儀表板。
如果我們將數字輸入Todoist,就可以在Adafruit IO的儀表板上看到推送過來的數字了。


電路,代碼和賬號都搞定之后,我們就要給規劃大師做外殼了。
這一步挺考驗手工的,所以還是找些趁手的工具吧。因為我的小號面包板尺寸達到了3.25",所以我這次直接做了個4.25" 的立方體外殼。不過我的面包板是水平放置的,如果你想換成垂直的,我想這個立方體外殼還可以做的更緊湊些。

開始時我先量了下面包板的尺寸。隨后我決定用0.5"的膠合板打造殼子的前后兩面,此外,為了容納NeoPixel ring和5V的桶形插座,我還分別在兩個面打了洞。外殼的上下兩部分則用了0.25"的膠合板。當然,殼子的材料你可以自選。
測量后我得出的詳細尺寸如下:
前后兩面:高3.75",寬4.25",厚0.5"
上下兩面:高4.25",寬4.25",厚0.25"
蓋子:長3.75",寬3.25",厚0.25"
左右兩面:高3.75" ,寬3.25",厚0.25"
然后我用65毫米的鉆頭在殼子上鉆一個10毫米深的洞。此外,你還得在這個洞的圓心再打一個洞,等下用來走線。
注意:為了讓NeoPixel ring與這個凹坑完美契合,推薦你用砂紙對殼子進行一定的打磨。



隨后我在準備好的丙烯膠片上切下了一塊65毫米直徑的圓片,它將成為NeoPixel ring的覆蓋件。
接著我在殼子的后部打了一個15/32"的洞,以便稍后放入桶形插座。
注意:10毫米的深度是NeoPixel ring和丙烯膠片的厚度之和,裝上它們之后,其最上面一層會正好與外殼齊平,不會影響美觀。


接著我用木膠將殼子的5個面(除了頂部)粘在一起,剩下的兩部分最后再粘。
等膠水干透之后,我對外殼進行了進一步打磨,而且還用染色劑給膠合板增加了點顏值。上色也不難,拿著抹布慢慢將染色劑涂上去就行。



搞定了外殼,搞定了代碼,搞定了電路和焊接的工作,我們就可以開始進行總裝了。
1.將面包板放入外殼中。面包板下有一層薄膜,如果將其撕去,就會出現一層雙面膠,方便你固定面包板。
2.將ESP8266 HUZZAH開發板安裝在面包板上,隨后將兩者自帶的電源線與地線連接起來。
3.將桶形插座放入你之前鉆好的洞中,隨后將兩者自帶的電源線與地線連接起來。
4.將NeoPixel ring安在你剛剛弄好的凹坑中,隨后將兩者自帶的電源線與地線連接起來。此外,你還得將輸入線連接到你選好的輸入針腳上。
注意:NeoPixel ring的安裝方向很重要,你需要決定到底哪盞LED最先亮起,以此來調節安裝方向。我將最先亮起的燈設定為輸入線右邊那盞。
5.你可以將丙烯膠片安裝在NeoPixel ring上,除了它,我還在LED上加了異丙基膠片,這樣光就會產生散射。
6.通過FTDI線上傳代碼。
注意:如果要用到數字輸出示例代碼,就需要為其植入NeoPixel庫。此外,你還要在正確的地方輸入WiFi姓名,SSID,Adafruit IO用戶名和Adafruit IO密匙。
7.將組裝好的核心部件放入外殼中。






搞定后就可以盡情享受任務規劃大師帶來的便利了。

只要你在Todoist上添加或完成了任務,LED就會亮起或熄滅。如果你的代碼沒問題,在添加多項任務時LED就會在紅綠黃三色間不斷變換。

我覺得這個項目中的點睛之筆是對IFTTT和Adafruit IO的應用,它們的功能真心強大。此外,你還可以通過改變原有的連接方式來改變LED的點亮和閃爍方式。

除了任務信息,你還可以給它添加e-mail和天氣的提示,這樣就更好玩了。

希望大家玩得開心。
2015-2016賽季全球創客馬拉松深圳大學站將在12月18日火熱啟動!關注“硬創邦”(微信號:leiphone_bang),可實時跟進最新活動消息!而且,雷鋒網在未來三個月內選一個合適的時間,在北上深選擇一個地點,舉辦創馬“火星救援”專場!詳情可點此處了解。
此外還可加入全球創客馬拉松主群(群號:259592983),參與我們的互動討論~

雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。