a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 基于ZigBee的無線溫度監控系統的設計

基于ZigBee的無線溫度監控系統的設計

作者: 時間:2013-01-24 來源:網絡 收藏

完成對DS18B20的報警溫度的設置和當前溫度的讀取。單片機與DS18B20的通訊,一般需要經過3個步驟:(1)DS18B20復位;(2)執行ROM指令,對于總線上掛接多個DS18B20的情況,通過讀取ROM里的序列號來匹配某個DS18B20,否則可以直接跳過ROM指令(0XCC);(3)執行DS18B20功能指令(RAM指令)。DS18B20有2個常用的功能指令:0x44:開始轉換溫度,轉換好的溫度會儲存在暫存器字節0和1;最小頻率不得小于750ms。0xBE:讀RAM指令,依次讀取RAM的9個字節的數據。DS18B20復位可以終止此進程。

4 上位機GUI監控模塊
該模塊是基于WINDOWS系統開發的上位機程序,通過系統預設的API函數與主機RS232底層端口進行通訊和捕獲用戶輸入。用戶可以通過用戶UI界面自行設定預設溫度值,通過主機RS232端口發送至將接收來自ROUTE終端節點的溫度信息,并反饋至上位機程序。用戶界面的設計采用跨平臺的圖形用戶界面應用程序QT軟件,采用第三方開源qextsertalport類,對串口進行讀寫操作。在WINDOWS下,需要使用其中的6個文件: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類新建一個串口對象serialPort,包含對串口名、波特率、數據位、起始位、停止位、校驗位等變量的定義以及設定這些變量的相關函數。第二條語句是一個信號連接槽的函數,將serialPort的信號SIGNAL與槽SLOT相連接,在這種情況下,每當發送這個信號的時候,就會自動調用這個槽。
4.2 打開串口
k.JPG
包括了對串口常用參數:串口名、波特率、數據位、起始位、停止位、發送接收使能等的設置。
4.3 發送數據
serialPort->scndData(temp);
調用對象sendData,將變量temp的數據通過串口RS232發送。通過返回值來指示發送狀態:1表示數據發送成功;2表示未打開串口;3表示發送使能但無發送數據。主要用于發送預設溫度值,UI界面接收到用戶設定的預設溫度后,將其保存,并在用戶按下發送按鈕后,將數據通過RS232串口發送給
4.4 接收數據
QString decodedStr=in.readAll();
這里rcadAll()函數是使用在槽slot_new DataReceived(const QByteArraydataReeeived)中負責對數據接收的操作函數,由于之前在串口定義時,已經將信號與槽函數關聯,因此,當串口緩沖區有數據時,會自動調用此槽函數,進行讀串口操作,并通過readAll()函數讀取串口緩沖區數據(即來自單片機DS18B20的溫度數據),給臨時變量decodeStr。
4.5 串口關閉操作
serialPort->close(); -調用close()子函數關閉串口對象
設計后的用戶UI界面如圖5所示,左部分為通信串口的設置,串口和波特率均可調整,默認使用COM1、38400波特率;中部為系統預設溫度;右部為系統數據返回,當接收到來自串口的溫度數據后,歡迎界面將顯示系統當前溫度。

5 結語
基于ZigBee模塊設計的無線系統,具有ZigBee技術的低復雜度、低功耗、低成本等優點,同時由于ZigBee模塊的高集成化,用戶不需要了解復雜的ZigBee協議,所有的ZigBee協議的處理部分,在ZigBee模塊內部自動完成,用戶只需要通過串口傳輸數據即可,研發周期短,滿足了產品快速入市,適應市場快速變化的需求,通過分置在多個地點的ZigBee溫度采集模塊,可以方便的實現多點分布式溫度信號的采集。

本文引用地址:http://www.j9360.com/article/153600.htm

上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉