廣西民族師范學(xué)院 王 靖 張賢國 黃燦勝
系統(tǒng)的設(shè)計方案如圖1所示,系統(tǒng)有2個監(jiān)測點(diǎn),分別為從機(jī)1和從機(jī)2,工作時,從機(jī)放置于被測環(huán)境中(如蔬菜大棚),單片機(jī)將傳感器采集到的數(shù)據(jù)通過無線模塊發(fā)送出去;主機(jī)安裝在工作人員處,通過無線模塊接收從機(jī)1和從機(jī)2發(fā)來的數(shù)據(jù),經(jīng)過單片機(jī)處理后在液晶屏12864上顯示。
圖1 系統(tǒng)設(shè)計方案
單片機(jī)又稱微控制器, 在一塊芯片中集成了CPU、數(shù)據(jù)存儲器、 程序存儲器、定時器/ 計數(shù)器和多種功能的I/O(輸入/ 輸出)接口等基本功能部件,從而可以完成復(fù)雜的運(yùn)算、邏輯控制、通信等功能。51單片機(jī)是對所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱,被廣泛應(yīng)用于工業(yè)測控系統(tǒng)之中。STC89C52RC是我國宏晶公司生產(chǎn)的一種低功耗、低成本、高性能的8位微控制器,完全滿足本項目的需要。
nRF24L01+是由NORDIC生產(chǎn)的工作在2.4GHz至2.5GHz的ISM頻段的無線收發(fā)芯片,共有126 個1MHz 帶寬的選頻,采用SPI協(xié)議與單片機(jī)通信,工作電壓范圍1.9-3.6V,并具有數(shù)據(jù)自動重發(fā),自動應(yīng)答等功能,可通過軟件設(shè)置2Mbps,1Mbps,250Kbps 三種數(shù)據(jù)波特率,是目前近距離無線通信的理想選擇。該芯片有20個引腳,體積小,不容易焊接,芯片成本和模塊差不多,所以本系統(tǒng)直接使用NRF24L01模塊,如下圖所示:
圖2 nRF24L01+模塊示意圖
圖3 SHT20傳感器示意圖
該傳感器基于數(shù)字傳感技術(shù),體積小、響應(yīng)迅速、低能耗、抗干擾能力強(qiáng),性價比高,使該產(chǎn)品能夠適于多種場合的應(yīng)用。通過I2C總線協(xié)議與單片機(jī)通信,工作電壓2.1-3.6V。
濕度測量范圍:0~100%RH;濕度測量精度:±3%RH;
溫度測量范圍:-40~125℃;溫度測量精度:±0.3℃。
LCD12864是一種內(nèi)部含有簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊,內(nèi)置8192個漢字和128個ASCII字符集.利用該模塊靈活的接口方式和簡單的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面,在單片機(jī)應(yīng)用中得到了廣泛使用。
主機(jī)以單片機(jī)作為控制核心,AMS1117將5V轉(zhuǎn)化為3.3V,給nRF24L01+模塊和SHT20模塊供電,可調(diào)電阻R2用來調(diào)節(jié)液晶12864的對比度。主機(jī)和從機(jī)的硬件原理圖幾乎一致,僅是主機(jī)不需要連接SHT20傳感器。系統(tǒng)工作時,不同的從機(jī)通過地址進(jìn)行區(qū)分。下圖是用Altium Designer 09畫的原理圖:
圖4 系統(tǒng)硬件原理圖
主機(jī)首先把nRF24L01+模塊配置為接收模式,參照nRF24L01+數(shù)據(jù)手冊可知,最多可以同時接收6路不同的通道,每一個通道使用不同的地址,共用相同的頻率(使用跳頻可以更好的避開干擾,但本文限于篇幅不討論跳頻)。
地址可以通過寄存器進(jìn)行設(shè)置,通道0的40位地址自由配置,通道0-5的配置格式為:32位公共地址+8位各自的地址。例如從機(jī)1接收地址設(shè)為: { 0x34,0x43,0x10,0x10,0x01},主機(jī)設(shè)置寄存器EN_RXADDR為0X03,即打開通道0和1,分別用來接收從機(jī)1和從機(jī)2的數(shù)據(jù);設(shè)置寄存器EN_AA使能自動應(yīng)答,即發(fā)送應(yīng)答信號確認(rèn)數(shù)據(jù)收到。設(shè)置寄存器RF_SETUP可以配置傳輸速率和發(fā)射功率。 nRF24L01+收到數(shù)據(jù)后存儲在寄存器中,可以通過判斷寄存器的RX_P_NO位是哪一個通道接收到數(shù)據(jù),并將數(shù)據(jù)分別存入數(shù)組data1[],data2[]中,主機(jī)的程序流程圖如圖5所示。
圖5 主機(jī)的程序流程圖
圖6 從機(jī)的程序流程圖
從機(jī)1和從機(jī)2的程序除了發(fā)送地址不一樣,其他都一樣。首先參考數(shù)據(jù)手冊的讀寫時序?qū)懗鯯HT20溫濕度采集程序,然后把nRF24L01+設(shè)置為發(fā)射模式,在發(fā)射模式下,從機(jī)還需要接收主機(jī)發(fā)出的應(yīng)答信號,所以接收地址要和發(fā)射地址一樣以便收到正確的應(yīng)答信號,從機(jī)的程序流程圖如圖6所示。
根據(jù)原理圖,用AD軟件進(jìn)行PCB布線,然后用熱轉(zhuǎn)印法制作3塊電路板,在板上焊接好元器件,搭建硬件平臺。把編好的程序(Keil 4+ C語言)燒錄進(jìn)單片機(jī),調(diào)試無誤后系統(tǒng)可正常工作。
通訊距離是無線模塊的一個綜合指標(biāo),受到很多條件和參數(shù)的影響,一般來說地點(diǎn)是否空曠,天線(PCB天線或者外置天線),輸出功率大小,數(shù)據(jù)傳輸速率這四者的影響較大。通過本系統(tǒng),在近距離內(nèi)可以很好的實(shí)現(xiàn)數(shù)據(jù)傳輸,經(jīng)實(shí)測,在空曠條件、功率為0dBm的前提下,設(shè)為2Mbps傳輸速率時,傳輸距離可達(dá)15米左右,1Mbps速率下30米左右,250Kbps速率下60米左右。在本文的基礎(chǔ)上,如果想加大通訊距離,可選擇加了外置天線和功率芯片的無線傳輸芯片,距離最遠(yuǎn)可達(dá)1100米。
[1]魏鴻磊.單片機(jī)原理及應(yīng)用(C語言編程)[M].上海:同濟(jì)大學(xué)出版社,2015:20-184.
[2]彭偉.單片機(jī)C語言程序設(shè)計實(shí)訓(xùn)100例——基于8051+Proteus仿真[M].北京:電子工業(yè)出版社,2016:129-145.
[3]魏芬.基于Proteus的單片機(jī)實(shí)驗與課程設(shè)計[M].北京:清華大學(xué)出版社,2015:250-281.