1
本文作者: 大壯旅 | 2015-11-17 11:53 |
編者注:本項(xiàng)目來自Instructables,原作者funelab打造了一個(gè)非常亮眼的通知提示燈,該興趣的創(chuàng)客朋友也可以將其移植到微博平臺(tái)上吧。
我是個(gè)IT從業(yè)人員,不過平時(shí)總是太忙,所以也不經(jīng)常上Facebook或者刷Twitter。不過干這一行的人都懂得,效率就是生命,所以我要快速地在各種信息流中摸爬滾打,智能手機(jī)的推送服務(wù)可以滿足我的要求,但我喜歡與眾不同,所以就直接動(dòng)手給自己做了一個(gè)通知燈,這可不是手機(jī)上那個(gè)小亮點(diǎn),是真的燈哦!
我找了玻璃罐來做燈罩,將Gmail、Twitter和Facebook等圖標(biāo)的卡通燈放進(jìn)去充當(dāng)光源。
上圖就是我的通知燈,當(dāng)你收到新的消息,它們就會(huì)亮起來,是不是酷斃了!
忘了那些容易漏掉的提示音吧,我的通知燈可以亮起不同的顏色來引起你的注意,當(dāng)你看過信息后,它還會(huì)自動(dòng)熄滅,用起來絕對超贊!
此外,我的通知燈還裝配了Seeedstudio公司的grove傳感器,還能充當(dāng)家里的火警警報(bào)器。
以下就是制作通知燈所需的原材料:
電子元件:
英特爾Edison開發(fā)平臺(tái)和Arduino Breakout開發(fā)套件
PCB板
Arduino Pro Mini 328 - 5V/16MHz
RGB LED燈(150枚)
8位移位寄存器74hc595d SMD(54枚)
收發(fā)器74hc245d
電解去耦電容器- 100uF/16V
電線等
結(jié)構(gòu)框架:
亞克力材料
銅線
玻璃罐(9個(gè))
工具:
手鋸
電鉆
鉆頭
熱熔膠和膠槍
強(qiáng)力膠
電烙鐵
焊料
剪線鉗
老虎鉗等
降壓電源模塊我選擇了LM2596,它可以給LED提供穩(wěn)定的5V電壓并能控制整個(gè)電路。此外,英特爾的Edison開發(fā)板還集成了穩(wěn)壓器電路。
下面我列舉了一些LM2596模塊的詳細(xì)參數(shù):
輸入:3V到40V的直流電(輸入電壓需要比輸出電壓高出至少1.5V)。
輸出:1.5V到35V的直流電,電壓連續(xù)可調(diào),最大輸出電流可達(dá)3A。
功能:電感Q值高,可帶動(dòng)高功率LED提示燈。
三維:長寬高分別為45、20和14毫米。
我利用模塊上預(yù)載的小型電位計(jì)調(diào)整了輸出電壓,一般5V或者稍低就足夠了;如果你將電壓調(diào)到5.5V,就可能會(huì)損壞集成電路和LED;所以,調(diào)整電壓時(shí)要慎之又慎。
LM2596模塊是我的最愛,它功能豐富,價(jià)格實(shí)惠。
這個(gè)紅外動(dòng)作傳感器可以偵測到靠近通知燈的人,有人移動(dòng)時(shí),燈就會(huì)變色。
該傳感器使用方便,只需一個(gè)引腳就能完成輸出。
實(shí)話說我對移位寄存器很感興趣,特別是74HC595這個(gè)型號。通過這個(gè)移位寄存器,你可以在Arduino平臺(tái)上控制RGB LED燈。此外,你還可以通過SPI,在Arduino平臺(tái)上實(shí)現(xiàn)PWM調(diào)制。
在上圖中,我就利用英特爾Edison平臺(tái)通過UART(通用異步收發(fā)器)與Arduino pro mini 進(jìn)行了通信,而且我還改變了一系列顯示效果。
詳解:
每個(gè)RGB LED都可顯示三原色,從而與3 pin控制器相對應(yīng)。每個(gè)8位的74HC595移位寄存器有8個(gè)控制輸出,在這個(gè)項(xiàng)目中,我需要控制16個(gè)RGB LED,所以我需要16x3的48 pin控制,也就意味著我要準(zhǔn)備6個(gè)移位寄存器。
怎樣將代碼上傳至Aeduino Mini:
近來我一直在搞Arduino編程,希望能在這上面做出點(diǎn)成績來。不過如果你想將代碼上傳,需要嘗試下下面的方法。
首先,你需要一個(gè)USB串行光適配器或Arduino Uno,或Duemillanove,反正只要能充當(dāng)HOST的可拆卸芯片就行。
大體上來說,只要將Arduino和5V的接地線、發(fā)射器、接收器連起來并重置Arduino Mini就好。搞定之后重頭戲就來了,將ATMega芯片從HOST板上取下,然后按正常程序?qū)⒋a上傳至Arduino。好啦,這一步也完成啦。
關(guān)于編程:
在這里我使用了ShiftPWM的庫,它對我?guī)椭艽蟆H绻枰?,你可以?a target="_blank" rel=nofollow>Elcojacops Githup下載,其中的示例文件很值得參考。
參閱了相關(guān)文檔后,我將脈寬調(diào)變的頻率設(shè)定為60,最高亮度設(shè)定為200。
我為Arduino pro mini開發(fā)的脈寬調(diào)變RGB LED程序,請各位自行下載使用。
對于熱愛各類電子設(shè)備的人來說,制作PCB電路板是個(gè)再簡單不過的工作了。只要去網(wǎng)上找一個(gè)電路圖,你就可以制作出任何你喜歡的電路板了。
這就是我搜集的一些印制電路板,因?yàn)槲乙鼍艂€(gè)燈,所以我需要九塊電路板,九也是我最喜歡的數(shù)字。
鏈接中的是我制作電路的示意圖和配置圖,需要的小伙伴可自行下載。
整個(gè)焊接過程我非常小心,所以過程也變的比較艱難。所以,這步最好心情好的時(shí)候去做,要不你肯定會(huì)抓狂的。
找到合適的Twitter、Facebook、Gmail等圖標(biāo)文件。
然后用5毫米厚的亞克力板為其制作框架,接著用2毫米厚的亞克力板為整個(gè)框架封口。
下面的文件就是我當(dāng)時(shí)畫的圖標(biāo),如果需要,你可以下載后在Corel Draw X7或更新版本的軟件中打開它。
我手頭上并沒有激光切割機(jī),原因很簡單:窮!所以我只好找了當(dāng)?shù)匾患夜S幫我加工。如果你跟我的情況類似,我勸你也去找家工廠代工一下吧。
為了節(jié)省材料,我將圖標(biāo)都集中到了一塊亞克力板上。此外,你可以為這些圖標(biāo)定制不同的顏色,比如紅色的Gmail、藍(lán)色的Facebook和Twitter。
玻璃罐的直徑為3英寸,所以我只做了一個(gè)直接約14.5英寸的燈架,這樣就可以一次掛住九個(gè)通知燈了。
如圖所示,我讓通知燈圍成一圈,這樣看起來無比地和諧,你們說是不是?
這一步就要讓你的圖標(biāo)燈亮起來了,我選了3毫米的LED燈,它們亮度很強(qiáng),色彩豐富。通過不同的色彩,我就能獲得不同的信息。
搞定之后記得用測試板測一下亮度,因?yàn)橛行┩该鞯腖ED亮度比其他的要高的多。
焊接LED燈的時(shí)候我選擇了并聯(lián)的方式,完成后我將它們裝入圖標(biāo)燈中。慢工出細(xì)活,這一步需要你做到一絲不茍。
用強(qiáng)力膠將LED站在圖標(biāo)燈中,然后再用塑料繩固定好各路線材,以防它們露出燈外影響美觀。
這一步一定要認(rèn)真,要不然你做出的圖標(biāo)燈肯定很丑。
裝好圖標(biāo)燈后,我又對它們進(jìn)行了測試,以保證它們通電時(shí)能及時(shí)亮起。
這一步中,你需要將圖標(biāo)燈焊接在LED電路板上,一根電線連接5V電源,另一根則作為控制線來使用。
蓋子下面,我用了泡沫膠帶為電路板提供支撐。然后用塑料繩將蓋子和印制電路板固定在一起,以防玻璃罐掉落。
最后再檢查一次,保證通電時(shí)燈能正常亮起。
記得用塑料繩來固定。
在這個(gè)項(xiàng)目中,我使用了英特爾Edison開發(fā)板,所以開始前我好好閱讀了該平臺(tái)的說明書。
英特爾Edison運(yùn)行時(shí)需要一個(gè)USB驅(qū)動(dòng),安裝好該驅(qū)動(dòng)后,你的電腦上會(huì)出現(xiàn)3個(gè)虛擬串口。
如果你是個(gè)新手,推薦你看下Edison的入門指南。
接下來,你需要安裝Flash Tool Lite,它是更新開發(fā)版固件時(shí)的首選方式。固件就是你開發(fā)板的操作系統(tǒng),通過它你可以使用Wi-Fi、藍(lán)牙、模擬和數(shù)字控制等功能。為了提高開發(fā)板的穩(wěn)定性和性能表現(xiàn),我推薦你及時(shí)對其進(jìn)行固件升級。
連上Wi-Fi后,你就擁有了一臺(tái)真正的物聯(lián)網(wǎng)設(shè)備。
連接網(wǎng)絡(luò):
想要聯(lián)網(wǎng),恐怕你還得對代碼做些許修改,請按以下兩行代碼執(zhí)行。
char ssid[] = "YOUR NETWORK"; // 你的網(wǎng)絡(luò)的SSID
char pass[] = "NETWORK PASSWORD"; // 你的網(wǎng)絡(luò)密碼
在制作過程中,我使用了grove傳感器系統(tǒng),該系統(tǒng)很容易連接,它包括MQ2瓦斯傳感器、火焰?zhèn)鞲衅鳌⒖諝赓|(zhì)量傳感器、紅外溫度傳感器和揚(yáng)聲器。想要了解更多信息你可以參考Grove的維基百科介紹。
下載本文件并在英特爾的Arduino IDE中將其打開以進(jìn)行測試。
在這次的項(xiàng)目中,我主要通過三種方式來獲取信息,不過它們有一個(gè)共同點(diǎn),那就是運(yùn)行python文件并通過API從互聯(lián)網(wǎng)上獲取信息,隨后這些信息會(huì)被保存為一個(gè)文本文檔,我只需要閱讀文檔就能獲取所有想要的信息。
更新天氣情況
通知燈的天氣信息源來自openweathermap.org。這個(gè)程序很方便,只要有一個(gè)能用Arduino IDE編程并能連接Wi-Fi的微控制器就行。該程序會(huì)對openweather的服務(wù)器發(fā)出一個(gè)HTTP請求,隨后還會(huì)利用TextFinder Arduino庫來尋找詳細(xì)的相關(guān)信息,如當(dāng)前的溫度等,隨后它會(huì)將這些信息存儲(chǔ)下來。
不過想要拿到免費(fèi)的開發(fā)密匙(API Key),你得先去申請個(gè)免費(fèi)賬戶,這樣你就能在openweather的網(wǎng)站上隨時(shí)獲取信息了。請?jiān)L問本鏈接來完成這一步。
敲擊回車鍵后,屏幕上會(huì)出現(xiàn)以下參數(shù):
{"id":88319,"dt":1345284000,"name":"Benghazi",
"coord":{"lat":32.12,"lon":20.07},"main":{"temp":306.15,"pressure":1013,"humidity":44,"temp_min":306,"temp_max":306},
"wind":{"speed":1,"deg":-7},
"weather":[
{"id":520,"main":"rain","description":"light intensity shower rain","icon":"09d"},
{"id":500,"main":"rain","description":"light rain","icon":"10d"},
{"id":701,"main":"mist","description":"mist","icon":"50d"}
],
"clouds":{"all":90},
"rain":{"3h":3}}
我會(huì)取其中幾個(gè)參數(shù)用在天氣的通知燈中。你只需要將其保存成文本文檔并使用Arduino IDE對其進(jìn)行讀取就行。
更新未讀郵件
想要知道到底有多少未讀郵件?你只需連接到一個(gè)IMAP4服務(wù)器,然后輸入用戶名和密碼進(jìn)行驗(yàn)證就行。幫你完成這一切的是存儲(chǔ)在英特爾Edison中的python文件。
當(dāng)Edison發(fā)現(xiàn)你有一兩封未讀郵件,就會(huì)亮起Gmail的燈來提示你。
更多信息請參閱Sparkfun的教程。
關(guān)于Facebook和Twitter的新通知
在這里,我們需要使用Facebook Graph。
你需要生成一個(gè)訪問令牌(Acess Token)。這一步中,只需要依次在屏幕上點(diǎn)擊“Get Access Token”和“Extended Permissions”,然后選擇“manage_notification”就好。想要使用這個(gè)訪問令牌,請?jiān)L問https://graph.facebook.com/me/notifications?acces...
搞定后你會(huì)收到一些JSON格式的信息反饋,不過我們能用到的只有后面的“summary”信息。下面是一些你可能會(huì)用到的代碼:
while True:
r = urllib2.urlopen('https://graph.facebook.com/me/notifications?access_token=your_access_token')html = r.read()
data = json.loads(html);
if len(data['summary']) == 0:
write_led(0)
else:
write_led(1)
time.sleep(3)
請下載下列文件并運(yùn)行。
注意:請將Python文件保存到/home/root/Chandelier/。
第二十四步:享受各類信息通知的狂轟濫炸吧
通知燈制作完成。
2015-2016賽季全球創(chuàng)客馬拉松北理工珠海學(xué)院站已經(jīng)開始接受報(bào)名啦!關(guān)注“硬創(chuàng)邦”(微信號:leiphone_bang),回復(fù)“北理工”即可參與報(bào)名!此外還可加入全球創(chuàng)客馬拉松主群(群號:259592983),參與我們的互動(dòng)討論~
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。