基于ZigBee的現場安全溫度在線監控系統
2 系統硬件設計
2.1 應用芯片簡介
Freescale公司推出的MCl3213是一款可以搭建符合IEEE802.15.4標準的2.4 GHz低功耗收發器平臺的集成MCU。它通過內部SPI連接RF和HCS08,具有低功耗、高集成度等優點,同時擁有豐富的外部接口資源。
LM75A是具有高速I2C總線接口的集成數字溫度傳感器,內部Temp寄存器存放一個11位二進制數的補碼,用來在-55~+125℃的溫度范圍內實現0.125℃的精度。
FT232BL是一款USB接口轉換芯片,實現USB到串行UART接口的轉換,有多種電路設計方式,配合使用EEPROM可存儲USB VID、PID等產品描述信息。
LCDl602是一款內嵌驅動及字符的液晶顯示模塊。由于MCl3213的I/O數目的限制,其采用4線數據的連接方式,將8位數據分兩次各4位地間接傳送。
SP3220E為TTL轉RS-232的電平轉換芯片。
2.2 硬件電路設計
圖3為硬件電路的邏輯結構圖。
針對系統的低功耗及低成本,根據所要實現的功能在圖3的基礎上進行篩選。ZED、ZR、ZC分別采用不同的設計電路,其篩選組合的方式如表1所列。
3 系統軟件設計
3.1 軟件設計思想
為了實現溫度監控與空間定位的功能,系統網絡中的各類設備須相互通信、協調合作。軟件設計思想如圖4所示。ZED利用攜帶的LM75A周期性地檢測生產現場的溫度,然后在LCDl602上實時顯示溫度信息以供現場操作,并向ZR和ZC發送溫度數據;ZR主要是度量接收ZED數據的RSSI/LQI值,并發送給ZC以達到對ZED空間定位的目的;ZC接收來自ZED及ZR的數據,通過USB/RS-232接口與上位機VB程序及Internet,網絡通信,利用上位機監控軟件或遠程網絡,集中在線對整個ZigBee網絡的協調和ZED生產現場進行安全溫度的監控。
3.2 溫度檢測程序的設計
LM75A內部A/D每隔100 ms執行一次溫度一數字的轉換,并將轉換得到的11位二進制數的補碼數據存放進Temp寄存器中,從而實現0.125 ℃的溫度精度。系統需要注意讀取LM75A溫度數據的頻率,并且應將讀取Temp中的數據轉換成實際真實的溫度值。
若Temp數據的MSB位D10=O,則溫度是一個正數:
溫度=(Temp中的數據)×O.125℃ (1)
若Temp數據的MSB位D10=1,則溫度是一個負數:
溫度=(Temp中的數據二進制補碼)×O.125℃ (2)
為了兼顧現場顯示與遠程監控,ZED依據式(1)、(2)利用C語言的移位等命令獲得實際溫度值,并在LCDl602上實時顯示(當現場溫度超過設定的安全范圍時,蜂鳴器報警),而直接讀取Temp的兩個字節發送至ZigBee網絡中。
3.3 空間定位的實際數學模型
為了獲得LQI值與距離d之間的數學關系,系統需要對不同的d測量大量接收數據的LQI值。以一片開闊的籃球場作為實驗基地,利用卷尺等工具在0~64 m范圍內測量LQI值。在相同的d距離下連續測量不同方向的60組數據,并將10個最值濾波舍去,求平均值作為該距離d的LQI。然后,利用Matlab軟件對各距離下的LQI-d數值進行一個分段對數函數的曲線擬合,求得實際數學模型。擬合曲線如圖5所示。
由于實測LQI值易受干擾,波動性較大不穩定,因此對ZED空間定位時在一個周期內連續測量24組數據,然后濾去4個最值求取平均值作為定位的LQI。為了提高系統的速度和穩定性,定位應用程序根據式(3)在上位機中采用VB語言進行編寫,從而減輕了ZigBee網絡的數據處理負擔。
評論