1
編者注:本項目來自Instructables,原作者funelab打造了一個非常亮眼的通知提示燈,該興趣的創(chuàng)客朋友也可以將其移植到微博平臺上吧。
我是個IT從業(yè)人員,不過平時總是太忙,所以也不經(jīng)常上Facebook或者刷Twitter。不過干這一行的人都懂得,效率就是生命,所以我要快速地在各種信息流中摸爬滾打,智能手機的推送服務(wù)可以滿足我的要求,但我喜歡與眾不同,所以就直接動手給自己做了一個通知燈,這可不是手機上那個小亮點,是真的燈哦!
我找了玻璃罐來做燈罩,將Gmail、Twitter和Facebook等圖標的卡通燈放進去充當光源。
上圖就是我的通知燈,當你收到新的消息,它們就會亮起來,是不是酷斃了!
忘了那些容易漏掉的提示音吧,我的通知燈可以亮起不同的顏色來引起你的注意,當你看過信息后,它還會自動熄滅,用起來絕對超贊!
此外,我的通知燈還裝配了Seeedstudio公司的grove傳感器,還能充當家里的火警警報器。
以下就是制作通知燈所需的原材料:
電子元件:
英特爾Edison開發(fā)平臺和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個)
工具:
手鋸
電鉆
鉆頭
熱熔膠和膠槍
強力膠
電烙鐵
焊料
剪線鉗
老虎鉗等
降壓電源模塊我選擇了LM2596,它可以給LED提供穩(wěn)定的5V電壓并能控制整個電路。此外,英特爾的Edison開發(fā)板還集成了穩(wěn)壓器電路。
下面我列舉了一些LM2596模塊的詳細參數(shù):
輸入:3V到40V的直流電(輸入電壓需要比輸出電壓高出至少1.5V)。
輸出:1.5V到35V的直流電,電壓連續(xù)可調(diào),最大輸出電流可達3A。
功能:電感Q值高,可帶動高功率LED提示燈。
三維:長寬高分別為45、20和14毫米。
我利用模塊上預(yù)載的小型電位計調(diào)整了輸出電壓,一般5V或者稍低就足夠了;如果你將電壓調(diào)到5.5V,就可能會損壞集成電路和LED;所以,調(diào)整電壓時要慎之又慎。
LM2596模塊是我的最愛,它功能豐富,價格實惠。
這個紅外動作傳感器可以偵測到靠近通知燈的人,有人移動時,燈就會變色。
該傳感器使用方便,只需一個引腳就能完成輸出。
實話說我對移位寄存器很感興趣,特別是74HC595這個型號。通過這個移位寄存器,你可以在Arduino平臺上控制RGB LED燈。此外,你還可以通過SPI,在Arduino平臺上實現(xiàn)PWM調(diào)制。
在上圖中,我就利用英特爾Edison平臺通過UART(通用異步收發(fā)器)與Arduino pro mini 進行了通信,而且我還改變了一系列顯示效果。
詳解:
每個RGB LED都可顯示三原色,從而與3 pin控制器相對應(yīng)。每個8位的74HC595移位寄存器有8個控制輸出,在這個項目中,我需要控制16個RGB LED,所以我需要16x3的48 pin控制,也就意味著我要準備6個移位寄存器。
怎樣將代碼上傳至Aeduino Mini:
近來我一直在搞Arduino編程,希望能在這上面做出點成績來。不過如果你想將代碼上傳,需要嘗試下下面的方法。
首先,你需要一個USB串行光適配器或Arduino Uno,或Duemillanove,反正只要能充當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電路板是個再簡單不過的工作了。只要去網(wǎng)上找一個電路圖,你就可以制作出任何你喜歡的電路板了。
這就是我搜集的一些印制電路板,因為我要做九個燈,所以我需要九塊電路板,九也是我最喜歡的數(shù)字。
鏈接中的是我制作電路的示意圖和配置圖,需要的小伙伴可自行下載。
整個焊接過程我非常小心,所以過程也變的比較艱難。所以,這步最好心情好的時候去做,要不你肯定會抓狂的。
找到合適的Twitter、Facebook、Gmail等圖標文件。
然后用5毫米厚的亞克力板為其制作框架,接著用2毫米厚的亞克力板為整個框架封口。
下面的文件就是我當時畫的圖標,如果需要,你可以下載后在Corel Draw X7或更新版本的軟件中打開它。
我手頭上并沒有激光切割機,原因很簡單:窮!所以我只好找了當?shù)匾患夜S幫我加工。如果你跟我的情況類似,我勸你也去找家工廠代工一下吧。
為了節(jié)省材料,我將圖標都集中到了一塊亞克力板上。此外,你可以為這些圖標定制不同的顏色,比如紅色的Gmail、藍色的Facebook和Twitter。
玻璃罐的直徑為3英寸,所以我只做了一個直接約14.5英寸的燈架,這樣就可以一次掛住九個通知燈了。
如圖所示,我讓通知燈圍成一圈,這樣看起來無比地和諧,你們說是不是?
這一步就要讓你的圖標燈亮起來了,我選了3毫米的LED燈,它們亮度很強,色彩豐富。通過不同的色彩,我就能獲得不同的信息。
搞定之后記得用測試板測一下亮度,因為有些透明的LED亮度比其他的要高的多。
焊接LED燈的時候我選擇了并聯(lián)的方式,完成后我將它們裝入圖標燈中。慢工出細活,這一步需要你做到一絲不茍。
用強力膠將LED站在圖標燈中,然后再用塑料繩固定好各路線材,以防它們露出燈外影響美觀。
這一步一定要認真,要不然你做出的圖標燈肯定很丑。
裝好圖標燈后,我又對它們進行了測試,以保證它們通電時能及時亮起。
這一步中,你需要將圖標燈焊接在LED電路板上,一根電線連接5V電源,另一根則作為控制線來使用。
蓋子下面,我用了泡沫膠帶為電路板提供支撐。然后用塑料繩將蓋子和印制電路板固定在一起,以防玻璃罐掉落。
最后再檢查一次,保證通電時燈能正常亮起。
記得用塑料繩來固定。
在這個項目中,我使用了英特爾Edison開發(fā)板,所以開始前我好好閱讀了該平臺的說明書。
英特爾Edison運行時需要一個USB驅(qū)動,安裝好該驅(qū)動后,你的電腦上會出現(xiàn)3個虛擬串口。
如果你是個新手,推薦你看下Edison的入門指南。
接下來,你需要安裝Flash Tool Lite,它是更新開發(fā)版固件時的首選方式。固件就是你開發(fā)板的操作系統(tǒng),通過它你可以使用Wi-Fi、藍牙、模擬和數(shù)字控制等功能。為了提高開發(fā)板的穩(wěn)定性和性能表現(xiàn),我推薦你及時對其進行固件升級。
連上Wi-Fi后,你就擁有了一臺真正的物聯(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ì)量傳感器、紅外溫度傳感器和揚聲器。想要了解更多信息你可以參考Grove的維基百科介紹。
下載本文件并在英特爾的Arduino IDE中將其打開以進行測試。
在這次的項目中,我主要通過三種方式來獲取信息,不過它們有一個共同點,那就是運行python文件并通過API從互聯(lián)網(wǎng)上獲取信息,隨后這些信息會被保存為一個文本文檔,我只需要閱讀文檔就能獲取所有想要的信息。
更新天氣情況
通知燈的天氣信息源來自openweathermap.org。這個程序很方便,只要有一個能用Arduino IDE編程并能連接Wi-Fi的微控制器就行。該程序會對openweather的服務(wù)器發(fā)出一個HTTP請求,隨后還會利用TextFinder Arduino庫來尋找詳細的相關(guān)信息,如當前的溫度等,隨后它會將這些信息存儲下來。
不過想要拿到免費的開發(fā)密匙(API Key),你得先去申請個免費賬戶,這樣你就能在openweather的網(wǎng)站上隨時獲取信息了。請訪問本鏈接來完成這一步。
敲擊回車鍵后,屏幕上會出現(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}}
我會取其中幾個參數(shù)用在天氣的通知燈中。你只需要將其保存成文本文檔并使用Arduino IDE對其進行讀取就行。
更新未讀郵件
想要知道到底有多少未讀郵件?你只需連接到一個IMAP4服務(wù)器,然后輸入用戶名和密碼進行驗證就行。幫你完成這一切的是存儲在英特爾Edison中的python文件。
當Edison發(fā)現(xiàn)你有一兩封未讀郵件,就會亮起Gmail的燈來提示你。
更多信息請參閱Sparkfun的教程。
關(guān)于Facebook和Twitter的新通知
在這里,我們需要使用Facebook Graph。
你需要生成一個訪問令牌(Acess Token)。這一步中,只需要依次在屏幕上點擊“Get Access Token”和“Extended Permissions”,然后選擇“manage_notification”就好。想要使用這個訪問令牌,請訪問https://graph.facebook.com/me/notifications?acces...
搞定后你會收到一些JSON格式的信息反饋,不過我們能用到的只有后面的“summary”信息。下面是一些你可能會用到的代碼:
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)
請下載下列文件并運行。
注意:請將Python文件保存到/home/root/Chandelier/。
第二十四步:享受各類信息通知的狂轟濫炸吧
通知燈制作完成。
2015-2016賽季全球創(chuàng)客馬拉松北理工珠海學(xué)院站已經(jīng)開始接受報名啦!關(guān)注“硬創(chuàng)邦”(微信號:leiphone_bang),回復(fù)“北理工”即可參與報名!此外還可加入全球創(chuàng)客馬拉松主群(群號:259592983),參與我們的互動討論~
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。