基于AVR和ZigBee技術的工業(yè)園區(qū)環(huán)境監(jiān)測系統(tǒng)
數(shù)據(jù)采集端程序
B、節(jié)點發(fā)送數(shù)據(jù)設計
終端節(jié)點程序設計
當前本系統(tǒng)擬采用簡單的時分復用解決碰撞問題,在后期研究過程中將考慮利用更有效的其他方式。這樣不同節(jié)點在固定時段進行工作,當進入工作周期后,節(jié)點進入工作模式根據(jù)定時器和MCU的調節(jié)工作,當采樣時間到后,節(jié)點啟動,采集數(shù)據(jù),發(fā)送并等待應答,若接收到上級節(jié)點的正確應答,就說明數(shù)據(jù)發(fā)送成功,然后進入休眠;否則繼續(xù)發(fā)送,直到成功(但設定最高次數(shù),超過最高次數(shù)就認為出現(xiàn)故障,進行報警),如圖11:
若在節(jié)點休眠期間接收到喚醒信號,則響應中斷,保護現(xiàn)場,發(fā)送當前數(shù)據(jù)并等待應答,若接收到上級節(jié)點的正確應答,就說明數(shù)據(jù)發(fā)送成功,然后進入休眠;否則繼續(xù)發(fā)送,直到
成功(但設定最高次數(shù),最高次數(shù)就認為出現(xiàn)故障進行,報警)如圖12:
圖11 圖12
較高級節(jié)點接收程序設計
進入接收模式的高級節(jié)點進行數(shù)據(jù)接收,并對接收到的數(shù)據(jù)進行校驗,若正確則發(fā)送應答包,回復節(jié)點,否則,要求節(jié)點繼續(xù)發(fā)送。如圖13:
圖13
(3)單片機與PC機串行通信軟件接口設計:
軟件系統(tǒng)主要包括PC 機端(即上位機) 和單片機(即下位機) 的通信程序設計。上位機采用VC開發(fā)軟件提供的MSComm控件來完成串口數(shù)據(jù)的發(fā)送和接收功能。通過此控件, PC機可以利用串行口與其他設備實現(xiàn)輕松連接,簡單高效地實現(xiàn)設備之間的通信??梢酝ㄟ^串口與上位機(微機)的通信,擬選用接口芯片MAX232。MSComm 控件的事件響應有兩種處理方式:
事件驅動方式和查詢方式。事件驅動方式由MSComm 控件的On2Comm 事件捕獲并處理通訊錯誤及事件;查詢方式通過檢查CommEvent 屬性的值來判斷事件和錯誤。
3.3.2上位機軟件設計
PC機通過接口電路和接口程序從下位機采集到的信息包括:傳感節(jié)點的編號,傳感節(jié)點的工作狀態(tài),傳感節(jié)點采集時的環(huán)境變量,所有數(shù)據(jù)存儲在數(shù)據(jù)庫中。用戶既可以實時觀測,又可主動查詢。我們打算使用MFC可視化編程設計實現(xiàn)。
(1)用戶查詢程序實現(xiàn)和操作界面設計:
1)監(jiān)測實時動態(tài)顯示界面(以溫度為例)
圖14實時監(jiān)測示例
2)歷史數(shù)據(jù)回查界面示例
圖15歷史數(shù)據(jù)回查示例
評論