該設(shè)計分享的是太陽能供電無線氣象站及信件檢測器和AVR以太網(wǎng)終端的設(shè)計及詳細(xì)制作過程,方便網(wǎng)友能夠吸取其中精華,老日成為大家崇拜的老鳥。
簡單的說,這里將要介紹我制作的一個系統(tǒng),用它來做下面幾件事情:
- 定期檢測位于室外的郵政信箱,如果有信件,會用中文語音通知我和家人。
- 一個簡單的室外氣象站,以半小時的間隔不間斷的采集室外的溫度和濕度信息,供后期分析。
同時,這個系統(tǒng)也是:
- 對太陽能供電設(shè)備和低功耗系統(tǒng)制作的嘗試
- 對2.4G無線網(wǎng)絡(luò)通訊電路的設(shè)計
- 基于AVR單片機(jī)的低成本以太網(wǎng)終端的設(shè)計
這里先給出這個系統(tǒng)的實際效果視頻,給大家一個直觀的印象:
在視頻中我將一份報紙投入家中的信箱,隨后在家里的IHES(家庭智能化環(huán)境系統(tǒng))終端便會用中文語音報告“有信件,請查收!”。同時,在必要的時候它也會播報出當(dāng)前由這個系統(tǒng)所采集到的溫度和濕度情況。整個過程并無人工干預(yù)。
接下來我將開始介紹這個系統(tǒng)的制作過程。下文首先為介紹系統(tǒng)整體構(gòu)架和技術(shù)要求,然后會按照硬件->軟件,每個模塊的順序介紹原理和實現(xiàn)過程。然后會給出一些數(shù)據(jù)作性能分析,最后將交待整個系統(tǒng)的成本。對文章涉及的相關(guān)背景資料,會在文末的參考資料給出。相關(guān)代碼、原理圖也會在文章末尾給出。
“這個”系統(tǒng)包括的是:放置在室外的傳感器和控制電路,在室內(nèi)的以太網(wǎng)終端系統(tǒng),它負(fù)責(zé)通過無線信號與室外傳感器通訊,并將結(jié)果轉(zhuǎn)發(fā)到以太網(wǎng)上。至于視頻中看到(聽到)的語音以及IHES核心系統(tǒng)的介紹,本文將不作涉及。我或許會在今后寫這方面的介紹文章,也可以參考在參考資料章節(jié)給出的我已經(jīng)寫過的文章[5]。
系統(tǒng)的構(gòu)架和性能要求
或許你會想,要檢測信箱的信件,方法有非常多。最簡單的辦法就是在信箱入口裝一個開關(guān),然后拖一根線到室內(nèi)和電腦連接。這樣應(yīng)該也能實現(xiàn)視頻中的功能。至于溫濕度檢測,那也直接連線出去不就得了?
但實際上這樣做也會存在些問題。首先要布線,考慮到家里已經(jīng)裝修過,走明線會影響美觀。同時如果直接將室外的信號與室內(nèi)計算機(jī)系統(tǒng)連接,危險很大。在打雷是很容易被雷擊到,同時室內(nèi)外電勢差也不得不考慮。另外,要能夠有效地檢測出信箱中是否存在信件,也不是簡單的裝一個開關(guān)那么簡單。首先信箱是現(xiàn)成的,不方便做很大的改動,同時這個開關(guān)的設(shè)計(機(jī)械開關(guān)或者是光電)也需要一定的考慮。
總之,我還是用了一種比較折騰,但是仍舊適合個人DIY的辦法:
首先這個系統(tǒng)會通過無線信號把位于室外的傳感器和室內(nèi)的計算機(jī)系統(tǒng)隔離開。當(dāng)然,這樣一來,事情又復(fù)雜了一些:室外的傳感器需要自我供電,并且需要設(shè)計專門的控制器來負(fù)責(zé)與室內(nèi)的系統(tǒng)進(jìn)行通訊。另外,因為這里采用的無線信號并非采用標(biāo)準(zhǔn)的藍(lán)牙或者WIFI等可以被PC所識別的協(xié)議,因此需要另外設(shè)計硬件將我們定義的無線協(xié)議轉(zhuǎn)換成PC可以識別的協(xié)議,這里需要有電路將無線信號轉(zhuǎn)換成以太網(wǎng)的TCP數(shù)據(jù)包中轉(zhuǎn)給PC。
當(dāng)然,要實現(xiàn)這些還會有更多的細(xì)節(jié)需要考慮,這也是為何我寫這篇文章的原因了。我們暫時先不考慮這些細(xì)節(jié),
下面給出分析道這里我這個系統(tǒng)的框圖,IHES室外傳感器框圖:
系統(tǒng)框圖說明:
這里按照各模塊所在地理位置(室外/室內(nèi))進(jìn)行劃分。圖中上半部分是位于室外的傳感器和控制器。其中各傳感器會將它采集到的原始模擬信號轉(zhuǎn)化成數(shù)字信號發(fā)送給傳感器控制器。而傳感器控制器會將各傳感器報告的數(shù)據(jù)匯總并作簡單處理后,通過無線模塊發(fā)送給室內(nèi)的接受終端。因為采用無線通訊,所以再考慮用一個電纜來給室外傳感器供電就多此一舉了。那么自然這里的電能供給就是指用電池供電了。但電池用盡后需要更換,這又顯得比較麻煩。所以我的設(shè)計中傳感器采用了太陽能供電+鋰電池蓄電的方式來給室外傳感器供電??紤]到成本,這里的太陽能電池不能用很大功率的,自然,整個室外傳感器電路就需要運行在比較低的功耗條件下了。并且,南方經(jīng)常有連續(xù)幾周的陰雨天氣,在陰雨天氣中太陽能電池幾乎不輸出功率,此時就需要在設(shè)計中將系統(tǒng)的功耗壓縮到最小。這里對供電和功耗指標(biāo)是,室外傳感器需要能夠在一次完全電池充電后,僅靠電池電力維持持續(xù)工作15天以上。另一個指標(biāo)是,在晴天太陽能電池的輸出功率可以將電池完全充滿。
圖中的無線模塊采用工作在2.4GHz波段具有收發(fā)功能的芯片/模塊。這類模塊僅實現(xiàn)了物理層的通訊協(xié)議,需要為他們設(shè)計編寫對應(yīng)的鏈路通訊協(xié)議。當(dāng)然這樣也適合用單片機(jī)來操作。因為功耗的限制,這里的無線模塊的通訊距離比較小。
上圖的下半部分是位于室內(nèi)的以太網(wǎng)/無線轉(zhuǎn)發(fā)器。他的主要工作就是將由以太網(wǎng)發(fā)來的IHES中央服務(wù)器請求轉(zhuǎn)發(fā)成無線信號與室外的傳感器通訊,并將收到的無線數(shù)據(jù)包轉(zhuǎn)發(fā)到以太網(wǎng)絡(luò)反饋給中央服務(wù)器。另外,這個模塊上也開設(shè)了一個Web服務(wù)器,允許我們直接用瀏覽器登陸該模塊來與室外傳感器通訊。
其實這個模塊做的大部分工作也可以直接交給中央服務(wù)器(PC)來實現(xiàn),這樣僅需要實現(xiàn)一個諸如usb口->無線信號的適配器即可,但是考慮到這里選用的無線模塊功率較低,在中央服務(wù)器處以經(jīng)無法介紹到室外發(fā)來的信號。所以我在設(shè)計中將這部分單獨設(shè)計為一個模塊,將他放置于離室外傳感器比較近的陽臺上。這樣的一個限制就是:這個模塊不適合用一臺單獨的PC來實現(xiàn)(考慮到陽臺的環(huán)境惡劣、占地以及成本因素)。這里我選擇用成本低廉的單片機(jī)來實現(xiàn)這個模塊的轉(zhuǎn)發(fā)和webserver功能。這樣的另外一個好處就是功耗很低,可以通過網(wǎng)線供電的方式來給模塊提供電能,而不需要另外接電源適配器。這后文我也會介紹如何改造交換機(jī)網(wǎng)口來實現(xiàn)用五類雙絞線(以太網(wǎng)用線)給設(shè)備供電。
室外傳感器的數(shù)據(jù)最終將以TCP數(shù)據(jù)包的形式發(fā)送到中央服務(wù)器上作處理和分析,并通過語音合成以中文語音將檢測結(jié)果反饋給我們。最后就是上面視頻中的效果了。
各模塊的原理、設(shè)計和制作:https://www.csksoft.net/blog/post/ihes_outsidesenso...
軟件描述,視頻演示:
這段視頻是IHES服務(wù)器進(jìn)行開機(jī)自檢中的片段。它會將與室外傳感器的數(shù)據(jù)請求全過程用語音朗讀出來。從中可以看(聽)出這個系統(tǒng)的協(xié)作過程。
參考資料
[1] 基于AVR的TR24a驅(qū)動例程:spiriton-tr24a-demo, by Alexander Yerezeyev
https://code.google.com/p/spiriton-tr24a-demo/
[2] An AVR microcontroller based Ethernet device, by Guido Socher
https://www.tuxgraphics.org/electronics/200606/article06061.shtml
[3] Arduino-Lite Google Code repos, By 我(Shikai Chen)
https://code.google.com/p/arduino-lite/
[4] Arduino-Lite簡介, By 我
https://www.csksoft.net/blog/post/255.html
[5] IHES中的語音合成介紹, By 我
https://www.csksoft.net/blog/post/linux_weatherforecast.html
[6] EM198810 RF Transceiver
https://www.emc.com.tw/eng/com_prod_dsc.asp?gid=&tid=000001&tt=com_rfic_ds&nn=2.4GHz+RF+IC
[7] DHT11 Humidity Sensor
https://www.aosong.com/Upload/PicFiles/20091121029421455.pdf
[8] ENC28J60 Stand-alone Ethernet Controller with SPI
https://ww1.microchip.com/downloads/en/DeviceDoc/39662a.pdf
[9] DS18B20 Programmable Resolution 1-Wire Digital Thermometerler
https://datasheets.maxim-ic.com/en/ds/DS18B20.pdf
[10] Atmega48PA datasheet