基于ZigBee的無(wú)線(xiàn)溫度監控系統的設計
完成對DS18B20的報警溫度的設置和當前溫度的讀取。單片機與DS18B20的通訊,一般需要經(jīng)過(guò)3個(gè)步驟:(1)DS18B20復位;(2)執行ROM指令,對于總線(xiàn)上掛接多個(gè)DS18B20的情況,通過(guò)讀取ROM里的序列號來(lái)匹配某個(gè)DS18B20,否則可以直接跳過(guò)ROM指令(0XCC);(3)執行DS18B20功能指令(RAM指令)。DS18B20有2個(gè)常用的功能指令:0x44:開(kāi)始轉換溫度,轉換好的溫度會(huì )儲存在暫存器字節0和1;最小頻率不得小于750ms。0xBE:讀RAM指令,依次讀取RAM的9個(gè)字節的數據。DS18B20復位可以終止此進(jìn)程。
4 上位機GUI監控模塊
該模塊是基于WINDOWS系統開(kāi)發(fā)的上位機程序,通過(guò)系統預設的API函數與主機RS232底層端口進(jìn)行通訊和捕獲用戶(hù)輸入。用戶(hù)可以通過(guò)用戶(hù)UI界面自行設定預設溫度值,通過(guò)主機RS232端口發(fā)送至ZigBee模塊;ZigBee模塊將接收來(lái)自ROUTE終端節點(diǎn)的溫度信息,并反饋至上位機程序。用戶(hù)界面的設計采用跨平臺的圖形用戶(hù)界面應用程序QT軟件,采用第三方開(kāi)源qextsertalport類(lèi),對串口進(jìn)行讀寫(xiě)操作。在WINDOWS下,需要使用其中的6個(gè)文件:qextserialbase.cpp和qextserialbase.h,qextserialport.cpp和qextserialport.h,win qextserialpo rt.cpp和win qextserialport.h定義的API接口函數,具體如下。
4.1 建立串口
serialPort=new ManageSedalPort;
connect(serialPort,SIGNAL(newDataReeeived(const QByteArray)),this,SLOT(slot_new DataReceived(const QByteArray)));
基于ManageSerialPort類(lèi)新建一個(gè)串口對象serialPort,包含對串口名、波特率、數據位、起始位、停止位、校驗位等變量的定義以及設定這些變量的相關(guān)函數。第二條語(yǔ)句是一個(gè)信號連接槽的函數,將serialPort的信號SIGNAL與槽SLOT相連接,在這種情況下,每當發(fā)送這個(gè)信號的時(shí)候,就會(huì )自動(dòng)調用這個(gè)槽。
4.2 打開(kāi)串口

包括了對串口常用參數:串口名、波特率、數據位、起始位、停止位、發(fā)送接收使能等的設置。
4.3 發(fā)送數據
serialPort->scndData(temp);
調用對象sendData,將變量temp的數據通過(guò)串口RS232發(fā)送。通過(guò)返回值來(lái)指示發(fā)送狀態(tài):1表示數據發(fā)送成功;2表示未打開(kāi)串口;3表示發(fā)送使能但無(wú)發(fā)送數據。主要用于發(fā)送預設溫度值,UI界面接收到用戶(hù)設定的預設溫度后,將其保存,并在用戶(hù)按下發(fā)送按鈕后,將數據通過(guò)RS232串口發(fā)送給ZigBee模塊。
4.4 接收數據
QString decodedStr=in.readAll();
這里rcadAll()函數是使用在槽slot_new DataReceived(const QByteArraydataReeeived)中負責對數據接收的操作函數,由于之前在串口定義時(shí),已經(jīng)將信號與槽函數關(guān)聯(lián),因此,當串口緩沖區有數據時(shí),會(huì )自動(dòng)調用此槽函數,進(jìn)行讀串口操作,并通過(guò)readAll()函數讀取串口緩沖區數據(即來(lái)自單片機DS18B20的溫度數據),給臨時(shí)變量decodeStr。
4.5 串口關(guān)閉操作
serialPort->close(); -調用close()子函數關(guān)閉串口對象
設計后的用戶(hù)UI界面如圖5所示,左部分為通信串口的設置,串口和波特率均可調整,默認使用COM1、38400波特率;中部為系統預設溫度;右部為系統數據返回,當接收到來(lái)自串口的溫度數據后,歡迎界面將顯示系統當前溫度。
5 結語(yǔ)
基于ZigBee模塊設計的無(wú)線(xiàn)溫度監控系統,具有ZigBee技術(shù)的低復雜度、低功耗、低成本等優(yōu)點(diǎn),同時(shí)由于ZigBee模塊的高集成化,用戶(hù)不需要了解復雜的ZigBee協(xié)議,所有的ZigBee協(xié)議的處理部分,在ZigBee模塊內部自動(dòng)完成,用戶(hù)只需要通過(guò)串口傳輸數據即可,研發(fā)周期短,滿(mǎn)足了產(chǎn)品快速入市,適應市場(chǎng)快速變化的需求,通過(guò)分置在多個(gè)地點(diǎn)的ZigBee溫度采集模塊,可以方便的實(shí)現多點(diǎn)分布式溫度信號的采集。本文引用地址:http://dyxdggzs.com/article/153600.htm
評論