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