該設(shè)計(jì)分享的是太陽能供電無線氣象站及信件檢測(cè)器和AVR以太網(wǎng)終端的設(shè)計(jì)及詳細(xì)制作過程,方便網(wǎng)友能夠吸取其中精華,老日成為大家崇拜的老鳥。
簡單的說,這里將要介紹我制作的一個(gè)系統(tǒng),用它來做下面幾件事情:
- 定期檢測(cè)位于室外的郵政信箱,如果有信件,會(huì)用中文語音通知我和家人。
- 一個(gè)簡單的室外氣象站,以半小時(shí)的間隔不間斷的采集室外的溫度和濕度信息,供后期分析。
同時(shí),這個(gè)系統(tǒng)也是:
- 對(duì)太陽能供電設(shè)備和低功耗系統(tǒng)制作的嘗試
- 對(duì)2.4G無線網(wǎng)絡(luò)通訊電路的設(shè)計(jì)
- 基于AVR單片機(jī)的低成本以太網(wǎng)終端的設(shè)計(jì)
這里先給出這個(gè)系統(tǒng)的實(shí)際效果視頻,給大家一個(gè)直觀的印象:
在視頻中我將一份報(bào)紙投入家中的信箱,隨后在家里的IHES(家庭智能化環(huán)境系統(tǒng))終端便會(huì)用中文語音報(bào)告“有信件,請(qǐng)查收!”。同時(shí),在必要的時(shí)候它也會(huì)播報(bào)出當(dāng)前由這個(gè)系統(tǒng)所采集到的溫度和濕度情況。整個(gè)過程并無人工干預(yù)。
接下來我將開始介紹這個(gè)系統(tǒng)的制作過程。下文首先為介紹系統(tǒng)整體構(gòu)架和技術(shù)要求,然后會(huì)按照硬件->軟件,每個(gè)模塊的順序介紹原理和實(shí)現(xiàn)過程。然后會(huì)給出一些數(shù)據(jù)作性能分析,最后將交待整個(gè)系統(tǒng)的成本。對(duì)文章涉及的相關(guān)背景資料,會(huì)在文末的參考資料給出。相關(guān)代碼、原理圖也會(huì)在文章末尾給出。
“這個(gè)”系統(tǒng)包括的是:放置在室外的傳感器和控制電路,在室內(nèi)的以太網(wǎng)終端系統(tǒng),它負(fù)責(zé)通過無線信號(hào)與室外傳感器通訊,并將結(jié)果轉(zhuǎn)發(fā)到以太網(wǎng)上。至于視頻中看到(聽到)的語音以及IHES核心系統(tǒng)的介紹,本文將不作涉及。我或許會(huì)在今后寫這方面的介紹文章,也可以參考在參考資料章節(jié)給出的我已經(jīng)寫過的文章[5]。
系統(tǒng)的構(gòu)架和性能要求
或許你會(huì)想,要檢測(cè)信箱的信件,方法有非常多。最簡單的辦法就是在信箱入口裝一個(gè)開關(guān),然后拖一根線到室內(nèi)和電腦連接。這樣應(yīng)該也能實(shí)現(xiàn)視頻中的功能。至于溫濕度檢測(cè),那也直接連線出去不就得了?
但實(shí)際上這樣做也會(huì)存在些問題。首先要布線,考慮到家里已經(jīng)裝修過,走明線會(huì)影響美觀。同時(shí)如果直接將室外的信號(hào)與室內(nèi)計(jì)算機(jī)系統(tǒng)連接,危險(xiǎn)很大。在打雷是很容易被雷擊到,同時(shí)室內(nèi)外電勢(shì)差也不得不考慮。另外,要能夠有效地檢測(cè)出信箱中是否存在信件,也不是簡單的裝一個(gè)開關(guān)那么簡單。首先信箱是現(xiàn)成的,不方便做很大的改動(dòng),同時(shí)這個(gè)開關(guān)的設(shè)計(jì)(機(jī)械開關(guān)或者是光電)也需要一定的考慮。
總之,我還是用了一種比較折騰,但是仍舊適合個(gè)人DIY的辦法:
首先這個(gè)系統(tǒng)會(huì)通過無線信號(hào)把位于室外的傳感器和室內(nèi)的計(jì)算機(jī)系統(tǒng)隔離開。當(dāng)然,這樣一來,事情又復(fù)雜了一些:室外的傳感器需要自我供電,并且需要設(shè)計(jì)專門的控制器來負(fù)責(zé)與室內(nèi)的系統(tǒng)進(jìn)行通訊。另外,因?yàn)檫@里采用的無線信號(hào)并非采用標(biāo)準(zhǔn)的藍(lán)牙或者WIFI等可以被PC所識(shí)別的協(xié)議,因此需要另外設(shè)計(jì)硬件將我們定義的無線協(xié)議轉(zhuǎn)換成PC可以識(shí)別的協(xié)議,這里需要有電路將無線信號(hào)轉(zhuǎn)換成以太網(wǎng)的TCP數(shù)據(jù)包中轉(zhuǎn)給PC。
當(dāng)然,要實(shí)現(xiàn)這些還會(huì)有更多的細(xì)節(jié)需要考慮,這也是為何我寫這篇文章的原因了。我們暫時(shí)先不考慮這些細(xì)節(jié),
下面給出分析道這里我這個(gè)系統(tǒng)的框圖,IHES室外傳感器框圖:
系統(tǒng)框圖說明:
這里按照各模塊所在地理位置(室外/室內(nèi))進(jìn)行劃分。圖中上半部分是位于室外的傳感器和控制器。其中各傳感器會(huì)將它采集到的原始模擬信號(hào)轉(zhuǎn)化成數(shù)字信號(hào)發(fā)送給傳感器控制器。而傳感器控制器會(huì)將各傳感器報(bào)告的數(shù)據(jù)匯總并作簡單處理后,通過無線模塊發(fā)送給室內(nèi)的接受終端。因?yàn)椴捎?a class="article-link" target="_blank" href="/tag/%E6%97%A0%E7%BA%BF%E9%80%9A%E8%AE%AF/">無線通訊,所以再考慮用一個(gè)電纜來給室外傳感器供電就多此一舉了。那么自然這里的電能供給就是指用電池供電了。但電池用盡后需要更換,這又顯得比較麻煩。所以我的設(shè)計(jì)中傳感器采用了太陽能供電+鋰電池蓄電的方式來給室外傳感器供電。考慮到成本,這里的太陽能電池不能用很大功率的,自然,整個(gè)室外傳感器電路就需要運(yùn)行在比較低的功耗條件下了。并且,南方經(jīng)常有連續(xù)幾周的陰雨天氣,在陰雨天氣中太陽能電池幾乎不輸出功率,此時(shí)就需要在設(shè)計(jì)中將系統(tǒng)的功耗壓縮到最小。這里對(duì)供電和功耗指標(biāo)是,室外傳感器需要能夠在一次完全電池充電后,僅靠電池電力維持持續(xù)工作15天以上。另一個(gè)指標(biāo)是,在晴天太陽能電池的輸出功率可以將電池完全充滿。
圖中的無線模塊采用工作在2.4GHz波段具有收發(fā)功能的芯片/模塊。這類模塊僅實(shí)現(xiàn)了物理層的通訊協(xié)議,需要為他們?cè)O(shè)計(jì)編寫對(duì)應(yīng)的鏈路通訊協(xié)議。當(dāng)然這樣也適合用單片機(jī)來操作。因?yàn)楣牡南拗?,這里的無線模塊的通訊距離比較小。
上圖的下半部分是位于室內(nèi)的以太網(wǎng)/無線轉(zhuǎn)發(fā)器。他的主要工作就是將由以太網(wǎng)發(fā)來的IHES中央服務(wù)器請(qǐng)求轉(zhuǎn)發(fā)成無線信號(hào)與室外的傳感器通訊,并將收到的無線數(shù)據(jù)包轉(zhuǎn)發(fā)到以太網(wǎng)絡(luò)反饋給中央服務(wù)器。另外,這個(gè)模塊上也開設(shè)了一個(gè)Web服務(wù)器,允許我們直接用瀏覽器登陸該模塊來與室外傳感器通訊。
其實(shí)這個(gè)模塊做的大部分工作也可以直接交給中央服務(wù)器(PC)來實(shí)現(xiàn),這樣僅需要實(shí)現(xiàn)一個(gè)諸如usb口->無線信號(hào)的適配器即可,但是考慮到這里選用的無線模塊功率較低,在中央服務(wù)器處以經(jīng)無法介紹到室外發(fā)來的信號(hào)。所以我在設(shè)計(jì)中將這部分單獨(dú)設(shè)計(jì)為一個(gè)模塊,將他放置于離室外傳感器比較近的陽臺(tái)上。這樣的一個(gè)限制就是:這個(gè)模塊不適合用一臺(tái)單獨(dú)的PC來實(shí)現(xiàn)(考慮到陽臺(tái)的環(huán)境惡劣、占地以及成本因素)。這里我選擇用成本低廉的單片機(jī)來實(shí)現(xiàn)這個(gè)模塊的轉(zhuǎn)發(fā)和webserver功能。這樣的另外一個(gè)好處就是功耗很低,可以通過網(wǎng)線供電的方式來給模塊提供電能,而不需要另外接電源適配器。這后文我也會(huì)介紹如何改造交換機(jī)網(wǎng)口來實(shí)現(xiàn)用五類雙絞線(以太網(wǎng)用線)給設(shè)備供電。
室外傳感器的數(shù)據(jù)最終將以TCP數(shù)據(jù)包的形式發(fā)送到中央服務(wù)器上作處理和分析,并通過語音合成以中文語音將檢測(cè)結(jié)果反饋給我們。最后就是上面視頻中的效果了。
各模塊的原理、設(shè)計(jì)和制作:https://www.csksoft.net/blog/post/ihes_outsidesenso...
軟件描述,視頻演示:
這段視頻是IHES服務(wù)器進(jìn)行開機(jī)自檢中的片段。它會(huì)將與室外傳感器的數(shù)據(jù)請(qǐng)求全過程用語音朗讀出來。從中可以看(聽)出這個(gè)系統(tǒng)的協(xié)作過程。
參考資料
[1] 基于AVR的TR24a驅(qū)動(dòng)例程: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