基于nRF24L01的無線溫濕度檢測系統設汁
2.3 串行通信模塊
主機單片機接收到nRF24L01的數據后,經MAX232電平轉換可實現單片機程序下載與升級,同時可實現單片機與PC機(上位機)的通信,以便將顯示數據信息通過此電路傳送到PC機,并存PC機上顯示,其串行通信電路如圖6所示。本文引用地址:http://www.104case.com/article/155230.htm
3 軟件設計
3.1 下位機軟件
本系統使用C語言編程,應根據設計任務的要求確定系統程序的完整結構,盡可能采用模塊化程序設計方法,將任務劃分為相對獨立的功能模塊,明確各模塊的功能、時間順序和相互關系,系統的軟件設計可以分為幾個部分,首先是各個模塊的底層驅動程序編寫,而后是系統聯機調試,最后再編寫上位機的系統程序。
主程序是控制和管理的核心,系統上電后,首先進行初始化,系統開始正常運轉后,再進行溫、濕度的監測與處理等操作。
3.2 上位機軟件設計
系統上位機能完成的功能有顯示串口號,提示串口是否已被成功打開;同時,上位機能夠與下位機同步顯示溫度,而且能夠實時曲線顯示溫度;上位機能夠設置下限溫濕度和上限溫濕度,當高于上限溫濕度或低于下限溫濕度時,還能夠報警。將主機單片機的控制電路串行接口與電腦串口經過電平轉換連接后,選擇正確的通信協議,設置好波特率,即可進行通信。圖7所示是上位機操作界面圖。
上位機軟件可在PC機上通過VC6.0編寫,主要是對MSComm控件及CserialPort類進行操作。
首先是串口設置。本系統利用的是CSERIALPORT類中的初始化函數InitPort (this,nport,nbtl,‘N’,8,1,m_dwCommEvents,512).其巾nport為串口號,nbtl為波特率,可利用串口設置對話框中的串口號和波特率兩個組合框分別得到初始化函數中的nport和nbtl。
其次是對溫濕度上下限的設置。可利用CSERIALPORT類中的啟動串口監測進程函數Start Monitoring、發送字符串函數WriteToPort以及關閉串口進程StopMonitoring來進行溫度上下限的設置,其信息通過這些函數發送到串口,單片機從RS232上收到數據后,與自身的溫度相比較,再進行相應的處理。
第三是曲線顯示。動態曲線顯示可利用CHistogram類中的SetRange(200,400),SetPos(temp)函數,SetRange設置上下極限值,SetPos是在圖上顯示相應的數據點,temp是從單片機傳來的溫濕度數據的處理結果,具體的移動曲線可由CHistogram類中函數實現。
4 結論
經測試,在發射接收模塊沒加天線的情況下,無線發射接收模塊在大多數情況下的數據傳輸距離在200 m左右,發射頭發射功率、接收頭接收靈敏度等因素可能會影響傳輸距離,若外加天線,則會大大增加傳輸距離。另外,在調試過程中,振蕩電阻必須匹配,否則接收距離會變短甚至無法接收。
本系統的數字信號由單片機采樣,基于DHT11的數字溫濕度傳感器構成的實時監控系統具有精度高、抗干擾能力強、電路簡單等諸多優點。然后利用單片機與PC機的通信可將數據送到PC機進行數據的存儲、后期處理與顯示。本系統數據處理功能強大、顯示直觀、界面友好、性價比高,可廣泛應用于工業控制、儀器、儀表、農業養殖及智能家居等諸多領域。
評論