起初做這個(gè)項(xiàng)目的念頭在2013年3月,當(dāng)時(shí)覺得北京的空氣實(shí)在是太差了,需要做一個(gè)設(shè)備放在窗外做實(shí)時(shí)提醒用,所以就用飯盒+MSP430打造了一個(gè)室外空氣探測器,后來又發(fā)現(xiàn)物聯(lián)網(wǎng)網(wǎng)站不錯(cuò),可以把數(shù)據(jù)上傳到物聯(lián)網(wǎng)上,于是飯盒加上了藍(lán)牙,用PC來上傳數(shù)據(jù)。5月份的時(shí)候感覺PC整天開著太費(fèi)電了,于是想用Arduino來完成上傳的功能,于是把無線鏈接換成了NRF24L01。6月突發(fā)奇想,想給家里省點(diǎn)電,于是在家中的電熱水器上加上了MSP430做的另一個(gè)節(jié)點(diǎn),7月參加了樂聯(lián)網(wǎng)的網(wǎng)絡(luò)電表計(jì)劃,于是整套系統(tǒng)里面有了第三個(gè)節(jié)點(diǎn)。 下面是盒子的功能介紹: 裸板是一片MSP430的轉(zhuǎn)接板+洞洞板,板上有一片MSP430+SPI Flash用作數(shù)據(jù)存儲(chǔ) 有一片RTC時(shí)鐘用于記錄時(shí)間,還有一顆電池,和JTAG調(diào)試口。 顆粒物監(jiān)測器初期使用的是DSM501和DDP42NS,后來感覺這兩顆不夠穩(wěn)定,數(shù)據(jù)也不太精確,然后換成了日貨…… Sharp的gp2y1010au。夏普這顆電路控制比較復(fù)雜,但精度確實(shí)不錯(cuò),而且很省電。 下圖是早起用的DSM501的版本 因?yàn)榭諝馓綔y器是放在室外的,為了整體防潑水,所以用了樂扣樂扣的飯盒,工作半年以來抗大雨無數(shù),完全沒問題。 但是密閉和檢測空氣顆粒物是矛盾的,所以在盒子的隱蔽處有進(jìn)風(fēng)口和出風(fēng)口,有一顆微小的風(fēng)扇來提供空氣流 這顆風(fēng)扇真的很小,而且只有5V 22mA的耗電。 這是傳感器組,溫濕度傳感器是DHT22,環(huán)境光傳感器是BH1750FVI,大氣壓力和溫度傳感器是BMP085 GPS是SIRF3貌似。電池是一顆3700mah的鋰電,板上自帶1A的3段充電電路 最早做項(xiàng)目的時(shí)候曾經(jīng)想過用PC和Android手機(jī)來提交數(shù)據(jù),所以還寫了PC和安卓的客戶端app 下面是熱水器模組的介紹: 模組是安裝在熱水器里面的,海爾電熱水器的側(cè)面板很好拆,于是就直接裝在泡沫里面了。 此控制器裝有一個(gè)NRF24無線通信模塊,另外有一只DS18B20溫度傳感器粘在金屬內(nèi)膽上面讀取溫度(數(shù)據(jù)有一定遲滯) 單片機(jī)有一根GPIO接在熱水器的開關(guān)按鍵上面,所有的過熱保護(hù)措置還由熱水器自身實(shí)現(xiàn),模塊只控制開關(guān) 下面是電能表模塊的介紹: 模塊是樂聯(lián)網(wǎng)團(tuán)購的,能測量功率因數(shù),電壓,電流,總功率,總耗電等…… 外部通信板還是MSP430+NRF24,并且還有一顆DS18B20用來讀取電表箱外側(cè)的溫度 下面是Arduino主控的介紹: 買過多塊Arduino,最初是Leonardo,但是寫著寫著發(fā)現(xiàn)存儲(chǔ)空間不夠了,后來換了MEGA2560, 代碼空間夠了,但發(fā)現(xiàn)運(yùn)行不穩(wěn)定,大概4-5個(gè)小時(shí)就會(huì)自動(dòng)重啟,又入了DUE,發(fā)現(xiàn)每隔20多小時(shí)還是自動(dòng)重啟…… 無奈了于是作罷。 主控帶有:1、紅外感應(yīng)器,用于檢測家中人的活動(dòng)狀況,然后自動(dòng)控制熱水器水溫 2、DHT22,檢測家中溫濕度 3、光照度感應(yīng)器,檢測家中光照 4、帶有一只EEPROM,用來存儲(chǔ)一些掉電可能會(huì)丟的數(shù)據(jù)(因?yàn)榭偸?0多個(gè)小時(shí)就莫名重啟了) 由于arduino可以跑多段代碼,同時(shí)上傳數(shù)據(jù)到y(tǒng)eelink和樂聯(lián)網(wǎng),所以兩邊網(wǎng)站上都可以查詢數(shù)據(jù) 樂聯(lián)網(wǎng)的網(wǎng)關(guān)地址: http://www.lewei50.com/u/g/1106 yeelink的網(wǎng)關(guān)地址: http://www.yeelink.net/devices/4096 http://www.yeelink.net/devices/2109 http://www.yeelink.net/devices/3482 附檔還有所有程序的源碼,因?yàn)槭莻€(gè)人興趣項(xiàng)目,本人也不是專業(yè)軟件工程師(其實(shí)是硬件工程師啦) 所以基本都沒怎么寫注釋…… 各位湊合著看啦 所有的pin定義都在各工程的pinmap.h里面 所有的全局變量和全局函數(shù)都在variabledefine.h里面 工程請用IAR Embedded Workshop for MSP430打開 Arduino的工程說明: HomeController.ino是變量聲明和初始化函數(shù) HTTPServer.ino是HTTP Server的主要工程,提供了web界面來查看各傳感器參數(shù) LeWei50.ino是樂聯(lián)網(wǎng)的提交模塊 Misc.ino是一些雜七雜八的東東 NetProtocol.ino是NRF24L01各節(jié)點(diǎn)中間的通信協(xié)議解析,我比較偷懶,沒弄什么自動(dòng)組網(wǎng)之類的,各節(jié)點(diǎn)編號(hào)都是寫死的 NRF24L01.ino是NRF24的功能函數(shù) NTPClient.ino是NTP時(shí)間校準(zhǔn),負(fù)責(zé)從NTP Server取回當(dāng)前時(shí)間 Sensors.ino是所有Arduino板上的傳感器函數(shù) SubmitData.ino是yeelink的提交函數(shù),以及去各節(jié)點(diǎn)的定時(shí)讀取函數(shù) YeeLight.ino里面是yeelight的控制函數(shù),根據(jù)人的活動(dòng)以及熱水器水溫來控制yeelight當(dāng)個(gè)小夜燈 |
1363392271.9115.jpg (419.27 KB, 下載次數(shù): 5)
1363612360.8027.jpg (275.88 KB, 下載次數(shù): 4)
1363612375.2532.jpg (286.05 KB, 下載次數(shù): 4)
ArduinoCode_HomeController.rar
19.42 KB, 下載次數(shù): 131
Arduino主控代碼
246.48 KB, 下載次數(shù): 99
MSP430空氣探測器工程
157.12 KB, 下載次數(shù): 67
MSP430熱水器控制工程
175.96 KB, 下載次數(shù): 83
MSP430網(wǎng)絡(luò)電能表控制工程
202.61 KB, 下載次數(shù): 66
空氣質(zhì)量傳感器datasheet
386.29 KB, 下載次數(shù): 54
光線傳感器datasheet
344.17 KB, 下載次數(shù): 59
藍(lán)牙模塊DS
822.98 KB, 下載次數(shù): 49
氣壓傳感器DS
421.79 KB, 下載次數(shù): 48
飯盒的5V升壓器DS
1.08 MB, 下載次數(shù): 65
NRF24無線通信模塊的DS
677.79 KB, 下載次數(shù): 68
溫濕度傳感器DHT22資料
561.99 KB, 下載次數(shù): 41
DS18B20溫度傳感器DS
154.92 KB, 下載次數(shù): 74
夏普顆粒物傳感器DS
376.94 KB, 下載次數(shù): 57
PPD42NS顆粒物傳感器DS
聯(lián)系客服