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