廣西民族師范學院 王 靖 張賢國 黃燦勝
系統的設計方案如圖1所示,系統有2個監測點,分別為從機1和從機2,工作時,從機放置于被測環境中(如蔬菜大棚),單片機將傳感器采集到的數據通過無線模塊發送出去;主機安裝在工作人員處,通過無線模塊接收從機1和從機2發來的數據,經過單片機處理后在液晶屏12864上顯示。

圖1 系統設計方案
單片機又稱微控制器, 在一塊芯片中集成了CPU、數據存儲器、 程序存儲器、定時器/ 計數器和多種功能的I/O(輸入/ 輸出)接口等基本功能部件,從而可以完成復雜的運算、邏輯控制、通信等功能。51單片機是對所有兼容Intel 8031指令系統的單片機的統稱,被廣泛應用于工業測控系統之中。STC89C52RC是我國宏晶公司生產的一種低功耗、低成本、高性能的8位微控制器,完全滿足本項目的需要。
nRF24L01+是由NORDIC生產的工作在2.4GHz至2.5GHz的ISM頻段的無線收發芯片,共有126 個1MHz 帶寬的選頻,采用SPI協議與單片機通信,工作電壓范圍1.9-3.6V,并具有數據自動重發,自動應答等功能,可通過軟件設置2Mbps,1Mbps,250Kbps 三種數據波特率,是目前近距離無線通信的理想選擇。該芯片有20個引腳,體積小,不容易焊接,芯片成本和模塊差不多,所以本系統直接使用NRF24L01模塊,如下圖所示:

圖2 nRF24L01+模塊示意圖

圖3 SHT20傳感器示意圖
該傳感器基于數字傳感技術,體積小、響應迅速、低能耗、抗干擾能力強,性價比高,使該產品能夠適于多種場合的應用。通過I2C總線協議與單片機通信,工作電壓2.1-3.6V。
濕度測量范圍:0~100%RH;濕度測量精度:±3%RH;
溫度測量范圍:-40~125℃;溫度測量精度:±0.3℃。
LCD12864是一種內部含有簡體中文字庫的點陣圖形液晶顯示模塊,內置8192個漢字和128個ASCII字符集.利用該模塊靈活的接口方式和簡單的操作指令,可構成全中文人機交互圖形界面,在單片機應用中得到了廣泛使用。
主機以單片機作為控制核心,AMS1117將5V轉化為3.3V,給nRF24L01+模塊和SHT20模塊供電,可調電阻R2用來調節液晶12864的對比度。主機和從機的硬件原理圖幾乎一致,僅是主機不需要連接SHT20傳感器。系統工作時,不同的從機通過地址進行區分。下圖是用Altium Designer 09畫的原理圖:

圖4 系統硬件原理圖
主機首先把nRF24L01+模塊配置為接收模式,參照nRF24L01+數據手冊可知,最多可以同時接收6路不同的通道,每一個通道使用不同的地址,共用相同的頻率(使用跳頻可以更好的避開干擾,但本文限于篇幅不討論跳頻)。
地址可以通過寄存器進行設置,通道0的40位地址自由配置,通道0-5的配置格式為:32位公共地址+8位各自的地址。例如從機1接收地址設為: { 0x34,0x43,0x10,0x10,0x01},主機設置寄存器EN_RXADDR為0X03,即打開通道0和1,分別用來接收從機1和從機2的數據;設置寄存器EN_AA使能自動應答,即發送應答信號確認數據收到。設置寄存器RF_SETUP可以配置傳輸速率和發射功率。 nRF24L01+收到數據后存儲在寄存器中,可以通過判斷寄存器的RX_P_NO位是哪一個通道接收到數據,并將數據分別存入數組data1[],data2[]中,主機的程序流程圖如圖5所示。

圖5 主機的程序流程圖

圖6 從機的程序流程圖
從機1和從機2的程序除了發送地址不一樣,其他都一樣。首先參考數據手冊的讀寫時序寫出SHT20溫濕度采集程序,然后把nRF24L01+設置為發射模式,在發射模式下,從機還需要接收主機發出的應答信號,所以接收地址要和發射地址一樣以便收到正確的應答信號,從機的程序流程圖如圖6所示。
根據原理圖,用AD軟件進行PCB布線,然后用熱轉印法制作3塊電路板,在板上焊接好元器件,搭建硬件平臺。把編好的程序(Keil 4+ C語言)燒錄進單片機,調試無誤后系統可正常工作。
通訊距離是無線模塊的一個綜合指標,受到很多條件和參數的影響,一般來說地點是否空曠,天線(PCB天線或者外置天線),輸出功率大小,數據傳輸速率這四者的影響較大。通過本系統,在近距離內可以很好的實現數據傳輸,經實測,在空曠條件、功率為0dBm的前提下,設為2Mbps傳輸速率時,傳輸距離可達15米左右,1Mbps速率下30米左右,250Kbps速率下60米左右。在本文的基礎上,如果想加大通訊距離,可選擇加了外置天線和功率芯片的無線傳輸芯片,距離最遠可達1100米。
[1]魏鴻磊.單片機原理及應用(C語言編程)[M].上海:同濟大學出版社,2015:20-184.
[2]彭偉.單片機C語言程序設計實訓100例——基于8051+Proteus仿真[M].北京:電子工業出版社,2016:129-145.
[3]魏芬.基于Proteus的單片機實驗與課程設計[M].北京:清華大學出版社,2015:250-281.