溫濕度自記儀中無線通信系統的設計
0引言
針對室內環境溫濕度的監測問題,本文利用單片機和無線通信短距離無線通信技術設計了一款溫濕度無線測量系統。溫濕度自記儀的系統由接收數據的上位機無線筆記本和以MC9S12xs128為核心的下位機控制顯示模塊組成,上位機模塊和下位機模塊間通過無線通信無線網絡進行數據交互。上位機主要通過Java語言編程,實現對無線通信網絡上數據的實時監聽、顯示并存儲;下位機主要以單片機為核心實現數據的實時采集、校正、顯示以及上傳處理后的數據。其中單片機主要負責完成溫濕度采集、LCD顯示以及SCI傳輸數據等功能。
1溫濕度自記儀中無線通信系統的系統構成
1.1溫濕度記錄儀的系統構成和系統框圖
本系統由AM2301、MC9S12xs128單片機、USR 無線通信 MODII無線通信模塊及無線筆記本組成。其中AM2301在本系統中負責感知環境的變化并將檢測的信號通過SDA信號線傳送給MCU。MC9S12xs128mal為本設計系統的核心部分,負責接收前端傳感器采集的信號、將校準后正確的溫濕度數值在LCD上顯示并將該數據通過無線通信 MODII無線模塊發送到上位機。無線通信 MODII為RS-232轉無線通信模塊,該無線模塊可將數據通過無線通信向外發送。無線筆記本為上位機接收端,利用Java編程接收無線通信傳輸來的數據并將其顯示及存入文件。系統框圖如圖1所示。
1.2溫濕度記錄儀的系統硬件設計
1.2.1傳感器模塊
本文采用AM2301單總線數字溫濕度傳感器,該傳感器是一款含有校準數字信號輸出的溫濕度復合傳感器,具有傳輸距離遠、全部自動化校準、數字單總線輸出等優點。AM2301傳感器讀單總線的流程圖如圖2所示。
1.2.2MCU模塊
Free scale公司的MC9S12xs128mal的16位單片機為測量系統的核心控制器,該控制器實現傳感器的初始化,以及后續的數據采集、處理和發送。MC9S12xs128有112個引腳,采用LQFP封裝方式,內部總線時鐘頻率最高可達40MHz。
1.2.3無線通信無線模塊
無線發送模塊采用的是USR 無線通信 MODII,該模塊是一款可將串口數據和無線通信網絡數據相互轉換和傳輸的設備。該無線模塊符合IEEE802.11b/g標準,支持Ad-hoc模式和基礎模式。RS-232波特率范圍9600~115200band,可設數據位和奇偶校驗位。
2溫濕度自記儀中無線通信系統的軟件設計
2.1溫濕度記錄儀的整體設計流程
軟件設計包括上位機和下位機程序設計兩部分。上位機程序是在eclipse環境下采用Java語言編程,通過調用Socket套接字監聽、接收數據。下位機程序在CodeWarrior環境中編譯,通過C語言對單片機的編程實現了對I/O口接收數據的相關處理。總體軟件流程圖如圖3所示。
2.2數據采集和校正
該功能通過對MC9S12xs128mal的C語言編程實現,主要包括AM2301的初始化、讀取AM2301數據、校正數據。具體過程為:PJ1端口向AM2301的SDA寫入初始化指令,等待讀取SDA傳來的40位數據,通過校正位判斷讀取的溫濕度值是否正確。其中校正溫濕度數值代碼如下:
2.3數據的顯示和發送
該功能由MC9S12xs128、LCD12864以及無線通信無線通信模塊實現,包括在LCD12864上顯示和向無線模塊發送溫濕度數據。具體過程為:MCU將正確的數據通過IIC串口操作模式寫到LCD12864漢顯液晶模塊上;采用查詢發送方式通過調用SCI發送函數將數據發到串口端口;通過和RS-232相連的無線通信無線模塊將數據通過無線通信發送到網絡上。其中串口發送函數代碼如下:
2.4數據的接收和保存
該功能由Java編程實現,包括調用Socket建立網絡連接和接收顯示并存儲數據。具體過程為:調用Buffered Input Stream將接收到的數據顯示在控制臺,通過調用File Output Stream將溫濕度數據寫到txt文件中保存。其中調用Socket建立網絡連接代碼如下:
3溫濕度自記儀中無線通信系統的實驗調試
按照圖1所示搭建硬件電路,將數據采集和傳輸程序燒錄到單片機。上位機采用Java語言在eclipse環境中編程接收無線通信傳輸過來的溫濕度數據,將數據在eclipse控制臺實時顯示,如圖4所示。并將接收到的數據自動寫入txt文檔中保存,以便后續數據處理。實驗表明:通過下位機的數據處理和發送及上位機對Java Socket的調用實現了無線通信的無線通信,并能保證數據實時、準確傳輸。
4結束語
本文采用無線通信技術將室內溫濕度自記儀測量結果傳輸到筆記本終端,實現了短距離無線傳輸和接收。本系統在實際應用中取得了良好的效果,解決了室內布線繁亂的問題,實現了無線網絡的數據交換。開發的系統數據傳輸速度快、可靠性高。在以后的研究工作中,將對系統的低功耗設計做進一步研究。