10
編者注:該項目來自Instructable,原作者為:AKalyanpur。
這是我在Instructable上的第一個創(chuàng)客項目,名字叫做任務(wù)規(guī)劃大師。
我相信許多人對智能手機是又愛又恨,它們每天都能給我們帶來新鮮,但其過量的信息又會讓我們感覺喘不過氣來。再加上許多人的工作需要7×24小時待命,一些瑣事就會打亂我們原有的計劃,讓我們的生活變得一團糟。
閑話不多說,我們開始吧。在這個項目中,我們會將一個在線的任務(wù)清單(Todoist)和任務(wù)規(guī)劃大師連起來,這樣,面對混亂的信息,我們就不會再不堪其擾了。
當(dāng)你添加或者完成某項清單中的任務(wù)時,規(guī)劃大師就會自動點亮或熄滅LED燈進行提示。這樣一來,我們就能清楚的看到到底還有多少工作要做,而不是像從前那樣貼滿便簽紙卻不知道到底要做什么了。
完成這個項目需要的核心部件并不多,你只需準(zhǔn)備一塊新款的Arduino IDE開發(fā)板,外加三項服務(wù)(Adafruit IO , If This Then That (IFTTT)和在線任務(wù)管理程序Todoist)就夠了。
ESP8266 HUZZAH Breakout開發(fā)板
FTDI Serial TTL-232 USB線
集成了驅(qū)動程序的NeoPixel Ring – 24 x WS2812 5050 RGB LED燈
5V 2A (2000mA)的開關(guān)電源
Panel Mount2.1毫米直流桶形插座
小號面包板(正常體積的一半)
線材
剝線鉗
烙鐵
焊料
木工工具(鉆床、臺鋸)
砂紙
12" x 24" x 0.5"的膠合板
12" x 24" x 0.25"的膠合板
12" x 24" x 1/16"的丙烯膠片(選配)
現(xiàn)在我們該制作電路了,而且幸運的是這個電路并不復(fù)雜。只要好好閱讀下面的教程就能搞定,不清楚的可以參考下面的電路圖。
1.按照鏈接中的Adafruit ESP8266教程(鏈接)將引腳焊接在ESP8266 HUZZAH開發(fā)板上。該教程包括如何焊接,不同的引腳分配和如何在Arduino IDE上對其進行測試。
2.焊接完成后,將它裝在準(zhǔn)備好的小號面包板上,安裝位置可以任選。
3.將線的正負極分別焊接在準(zhǔn)備好的Panel Mount 2.1毫米直流桶形插座的正負極上。隨后將該線與面包板兩邊的正負極相連。連上5V 2A (2000mA)的開關(guān)電源后,就可以為電路提供穩(wěn)定的電流了。
4.用電線將電源和ESP8266開發(fā)板的正極連接起來,隨后再將地線和負極相連。
注意:在NeoPixel LED燈的焊接上,你需要將線從LED前方繞過,再在后方進行焊接。此舉是為了避免焊接時對LED造成損害,因為它們之間的間距太小了。
5.將線與NeoPixel Ring的電源與地線焊接在一起,隨后將其連上面包板的正負極。需要注意的一點是,NeoPixel Ring上有兩套電源和地線,你可以任選其一。
6.最后,將線焊接在NeoPixel Ring的輸入接口上,并將線連上ESP8266的某個針腳,在這里我選擇了12號針腳。
我們現(xiàn)在將線連接到開發(fā)板只是為了做測試,等做好了規(guī)劃大師的外殼后,我們還要將零部件放進去,隨后才會正式接通電路。
現(xiàn)在可以開始最有趣的部分了。
在下面的鏈接中我附上了你會用到的代碼。
此外,這一步中你還會用到下列技巧:
開發(fā)板
在這里我們會用到Adafruit HUZZAH ESP8266。你可以通過下面的步驟找到它:Arduino IDE > 工具> 開發(fā)板 > 開發(fā)板管理器,然后在其中搜索"ESP8266"。注意:如果你無法在管理器中找到相應(yīng)的開發(fā)板,就需要從Arduino上復(fù)制一個超鏈接,詳細步驟請參考下面的鏈接:https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/using-arduino-ide.
庫
我們需要找到Adafruit IO和Adafruit NeoPixel的庫,詳細步驟如下:Arduino IDE > Sketch > 庫> 管理器,隨后在管理器中鍵入"Adafruit IO"和"Adafruit NeoPixel"并進行搜索即可。
此外,你也可以將弄到數(shù)字輸出版的Adafruit IO ESP8266示例代碼,步驟如下(鏈接)。從這里你可以下載到一個小型的示例庫。你可以參考數(shù)字輸出代碼,不過其他信息則可以直接掠過。
上傳代碼
如果你想上傳代碼到ESP8266開發(fā)板,就需要連上FTDI線并進入引導(dǎo)模式。注意:FTDI線中的黑線要連接到地線上。
只需按下開發(fā)板上的GPIO(通用輸入輸出)0按鈕就可以進入引導(dǎo)模式,隨后按下重設(shè)按鈕,然后松開GPIO0按鈕。接著開發(fā)板上的紅燈就會亮起,這時你就可以上傳代碼了。代碼上傳結(jié)束后,可以將FTDI線拔掉。
注意:如果要用到數(shù)字輸出示例代碼,就需要為其植入NeoPixel庫。此外,你還要在正確的地方輸入WiFi姓名,SSID,Adafruit IO用戶名和Adafruit IO密匙。
用"strandtest"代碼對NeoPixel進行測試
上傳了"strandtest24"代碼后,你就可以對ESP8266開發(fā)板和NeoPixel ring進行測試了。如果一切正常,NeoPixel ring的LED燈就會亮起,絕對BlingBling的閃瞎眼。
現(xiàn)在我們可以開始在Adafruit IO上創(chuàng)建新任務(wù)和已完成任務(wù)的提要了。代碼最終會識別這些信息,并通過開發(fā)板將其轉(zhuǎn)換成相應(yīng)信號,控制LED的亮或滅。
1.Adafruit上對使用Adafruit IO創(chuàng)建提要,儀表板和數(shù)字輸入輸出有詳細的教程,你可以點擊以下鏈接進行參考(鏈接)。
2.學(xué)會在Adafruit IO上創(chuàng)建提要后,我們要新建兩個提要,一個用于新任務(wù),另一個則用于已完成任務(wù)。
3.在Adafruit IO上選擇“創(chuàng)建提要”。
4.注意:提要的命名最好怎么簡單怎么來,因為這些名字之后還要寫入代碼。在這個項目中,我將兩個提要分別命名為“Todoist_New_Tasks”和“Todoist_Completed_Tasks”。
5.你還可以創(chuàng)建儀表板以便將這些提要變成可視化信息。我推薦你進行嘗試,因為它可以確保消息都能準(zhǔn)確無誤的推送到Adafruit IO上去。
現(xiàn)在我們需要關(guān)聯(lián)Adafruit IO賬號和IFTTT觸發(fā)器。其實建立了兩者的關(guān)聯(lián)后你可以做很多事,不過這次我們要與Todoist搭配使用。詳細步驟如下:
1.打開ifttt.com。
2.點擊“創(chuàng)建表單”。
3.隨后點擊Todoist,它會提示你輸入Todoist的賬號。
4.現(xiàn)在你可以選擇觸發(fā)器了。在這里我將“新任務(wù)創(chuàng)建”設(shè)定到“任何項目”文件夾中。其實你可以對其進行自定義,設(shè)定為“工作”或“生日”都行,不過請參考你的Todoist清單設(shè)定。
5.隨后選擇Adafruit IO。登陸IFTTT后,只有唯一一個選項,那就是“發(fā)送反饋數(shù)值”,這時你就需要輸入Adafruit IO的登陸密匙,這個密匙就在你的Adafruit IO帳號中,它是一大串字母和數(shù)字的組合。
6.選擇適合新建任務(wù)的反饋信息。在“要保存的數(shù)據(jù)”一欄選擇任意數(shù)據(jù)。這些數(shù)據(jù)是代碼中的計數(shù)器產(chǎn)出的,所以并不會影響我們的設(shè)備。
7.創(chuàng)建表單。
重復(fù)第五步即可,不過這次Adafruit IO上的提要要選擇已完成任務(wù)。
IFTTT自帶有關(guān)聯(lián)檢查程序,這樣就能保證其正常工作。不過我們也可以用別的方法,比如利用上面我們提到的Adafruit IO的儀表板。
如果我們將數(shù)字輸入Todoist,就可以在Adafruit IO的儀表板上看到推送過來的數(shù)字了。
電路,代碼和賬號都搞定之后,我們就要給規(guī)劃大師做外殼了。
這一步挺考驗手工的,所以還是找些趁手的工具吧。因為我的小號面包板尺寸達到了3.25",所以我這次直接做了個4.25" 的立方體外殼。不過我的面包板是水平放置的,如果你想換成垂直的,我想這個立方體外殼還可以做的更緊湊些。
開始時我先量了下面包板的尺寸。隨后我決定用0.5"的膠合板打造殼子的前后兩面,此外,為了容納NeoPixel ring和5V的桶形插座,我還分別在兩個面打了洞。外殼的上下兩部分則用了0.25"的膠合板。當(dāng)然,殼子的材料你可以自選。
測量后我得出的詳細尺寸如下:
前后兩面:高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與這個凹坑完美契合,推薦你用砂紙對殼子進行一定的打磨。
隨后我在準(zhǔn)備好的丙烯膠片上切下了一塊65毫米直徑的圓片,它將成為NeoPixel ring的覆蓋件。
接著我在殼子的后部打了一個15/32"的洞,以便稍后放入桶形插座。
注意:10毫米的深度是NeoPixel ring和丙烯膠片的厚度之和,裝上它們之后,其最上面一層會正好與外殼齊平,不會影響美觀。
接著我用木膠將殼子的5個面(除了頂部)粘在一起,剩下的兩部分最后再粘。
等膠水干透之后,我對外殼進行了進一步打磨,而且還用染色劑給膠合板增加了點顏值。上色也不難,拿著抹布慢慢將染色劑涂上去就行。
搞定了外殼,搞定了代碼,搞定了電路和焊接的工作,我們就可以開始進行總裝了。
1.將面包板放入外殼中。面包板下有一層薄膜,如果將其撕去,就會出現(xiàn)一層雙面膠,方便你固定面包板。
2.將ESP8266 HUZZAH開發(fā)板安裝在面包板上,隨后將兩者自帶的電源線與地線連接起來。
3.將桶形插座放入你之前鉆好的洞中,隨后將兩者自帶的電源線與地線連接起來。
4.將NeoPixel ring安在你剛剛弄好的凹坑中,隨后將兩者自帶的電源線與地線連接起來。此外,你還得將輸入線連接到你選好的輸入針腳上。
注意:NeoPixel ring的安裝方向很重要,你需要決定到底哪盞LED最先亮起,以此來調(diào)節(jié)安裝方向。我將最先亮起的燈設(shè)定為輸入線右邊那盞。
5.你可以將丙烯膠片安裝在NeoPixel ring上,除了它,我還在LED上加了異丙基膠片,這樣光就會產(chǎn)生散射。
6.通過FTDI線上傳代碼。
注意:如果要用到數(shù)字輸出示例代碼,就需要為其植入NeoPixel庫。此外,你還要在正確的地方輸入WiFi姓名,SSID,Adafruit IO用戶名和Adafruit IO密匙。
7.將組裝好的核心部件放入外殼中。
搞定后就可以盡情享受任務(wù)規(guī)劃大師帶來的便利了。
只要你在Todoist上添加或完成了任務(wù),LED就會亮起或熄滅。如果你的代碼沒問題,在添加多項任務(wù)時LED就會在紅綠黃三色間不斷變換。
我覺得這個項目中的點睛之筆是對IFTTT和Adafruit IO的應(yīng)用,它們的功能真心強大。此外,你還可以通過改變原有的連接方式來改變LED的點亮和閃爍方式。
除了任務(wù)信息,你還可以給它添加e-mail和天氣的提示,這樣就更好玩了。
希望大家玩得開心。
2015-2016賽季全球創(chuàng)客馬拉松深圳大學(xué)站將在12月18日火熱啟動!關(guān)注“硬創(chuàng)邦”(微信號:leiphone_bang),可實時跟進最新活動消息!而且,雷鋒網(wǎng)在未來三個月內(nèi)選一個合適的時間,在北上深選擇一個地點,舉辦創(chuàng)馬“火星救援”專場!詳情可點此處了解。
此外還可加入全球創(chuàng)客馬拉松主群(群號:259592983),參與我們的互動討論~
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。