//Logo Image
作者:施俊丞(2009-02-19);推薦:徐業良(2009-02-19)

KS_2410透過RS232序列埠與Zigbee模組溝通

本文以溫溼度監測系統為例,介紹ZigBee模組如何透過RS232序列埠與KS_2410溝通,以及使用者如何透過網頁瀏覽器得即時的溫濕度監測資料,以及查詢儲存於KS_2410MMC內的歷史資訊。

1.     系統架構

1所示為本文開發之溫濕度監測系統架構,其中包含感測器發送端、KS_2410接收端及網路傳輸等三部份

1. 溫溼度監測系統架構

本文測試系統感測器端的處理器使用PIC18F6722單晶片,其溫濕度感應器採用如圖2SHT7x溫溼度感測器,以類I2C電壓訊號與PIC18F6722溝通,PIC接收到溫濕度訊號值再經由RS232Zigbee發送端溝通,透過無線傳輸的方式,將溫溼度訊號傳送至Zigbee接收端。Zigbee接收端透過RS232將溫度及濕度值存入KS_2410記憶卡中。KS_2410將記憶卡中的監測訊息顯示至CGI動態網頁中,遠端使用者可透網際網路取得KS_2410CGI動態網頁,達成遠端監測的目的。

2. SHT7x溫溼度感測器

2.     ZigBee相關參數設定

3Zigbee設定板,電腦需先安裝X-CTU程式,再由RS232USB連接線連接Zigbee設定板與電腦來做設定。圖4X-CTU程式介面,開啟後選擇Zigbee與電腦銜接埠,按下Test/Query開始設定。圖5X-CTU設定介面,接收端Zigbee設定為ZIGBEE COORDINATOR AT、發送端Zigbee設定為ZIGBEE ROUTER/END DEVICE AT,並將Operating ChannelPAN ID設定相同值完成配對設定、Baud Rate設定必須與程式內參數相同。

3.Zigbee設定板

4.X-CTU程式

5. X-CTU設定介面

3.     感測資料之發送與接收

感測器發送端中,PIC18F6722讀取感測器溫濕度訊號後,將溫度及溼度訊號處理為6個十六進位的位元,再透過具有RS232功能的接埠COM_A,由Zigbee發射端以無線傳輸的方式溫溼度訊號傳送至KS_2410上之Zigbee接收端接收。圖6PIC18F6922主程式,包含“ReadTemperature()”抓取溫度訊號、“ReadHumidity()”抓取濕度訊號,運算處理後將訊號輸出,以“fputc(輸出訊號, RS232序列)”Zigbee發送端溝通。

6.PIC18F6722主程式

KS_2410藉由第二組具有RS232序列埠功能的RSTXD1RSRXD1SGND三個腳位與Zigbee接收端溝通,讀取所接收的溫濕度訊號。圖7所示為KS_2410RS232的接孔1所示為KS_2410的腳位說明

7. KS_2410RS232的接孔

1. RS232腳位說明

序號

說明

序號

說明

1

VCC

2

VCC

3

RSTXD1

4

RSTXD0

5

RSRXD1

6

RSRXD0

7

RSTXD2

8

RSRTS0

9

RSRXD2

10

RSCTS0

11

UCLK/GPH8

12

NC

13

SGND

14

SGND

8KS_2410RS232序列的相關參數設定,其中“newtio.c_cflag=BAUDRATE|CS8|CLOCAL|CREAD”定義BAUDRATE為宣告變數9600CS8為終端機接收為八位元,tcsetattr為儲存設定等。其他設定相關細節內容請參考「KS_2410RS232序列埠與裝置溝通」文件。

8. KS_2410RS232序列埠設定

KS_2410讀取到Zigbee接收端的溫溼度訊號如表2之十六進位的訊息。第一位元為訊號開始接收0x7e、第二位元為Sensor Number編碼e、第三位元為十位數的溫度值、第四位元為個位數的溫度值、第五位元為小數位的溫度值、第六位元為十位數的溼度值、第七位元為個位數的溼度值、第八位元為小數位的溼度值、第九位元為傳送結束0xff

2. KS_2410接收資訊

1

2

3

4

5

6

7

8

9

7e

E

O

O

O

X

X

X

FF

START

Sensor Number

Temperature

Humidity

END

9KS_2410主程式。在while回圈中“read(DDS_COM_1, &read_buf, 1)”不斷讀取一次RS232第二組序列埠資料,並暫存入read_buf中。當read_buf接收到0x7e時開始接收,當接收到的第八位元為0xff時為確定資料接收完畢,並將十六進位資料轉換成十進位顯示。

9. KS2410主程式

判讀其Zigbee接收端所接收的資訊後,圖10為將溫溼度資料存入KS_2410記憶卡中之指令,第一行為開啟MMC卡儲存指令,於指定路徑下開啟或新增一記事本檔案temp.txt,以複寫的方式將資料存入;第二行為將mmc_buf讀取到的資料存入MMC中;第三行為關閉MMC卡儲存模式指令。細部說明請參考文件「KS_2410儲存裝置讀寫功能及抓取系統時間」。

10. 將溫溼度資料存入KS_2410記憶卡中之指令

4.     網路傳輸部份

KS_2410中的CGI動態網頁顯示可支援web server網頁伺服器功能,所以藉由CGI動態網頁顯示的方式,遠端監測者透過網際網路即可取得溫溼度資訊,其CGI動態網頁程式碼如下圖11圖中紅色框框起的部分,為將KS_2410記憶卡中所指定的路徑資料cd/dds/mmc/temp.txt複製至temp2.html上,由最後一行指令/bin/cat temp2.html是將temp2.html顯示至CGI動態網頁上。細部說明請參考「KS_2410網頁伺服器與動態網頁」文件。

11. CGI動態網頁程式碼

12為遠端使用者透過網際網路所看到的CGI動態網頁顯示,輸入http://IP位置:通訊port/指定顯示網頁(http://140.138.139.113:3101/zigbee.egi)

12. 遠端監測者所示網頁