在這篇裏,我們將用 XBee 製作一個 Zigbee 無線 Light Sensor。
你需要這些材料:
- 光敏電阻 (photocell) x 1
- 10k 歐姆電阻 x 1
- Arduino x 2
- XBee Shield and XBee module x 2
我們將採集光敏電阻的讀值,讓 End Device 透過 Zigbee 無線通訊把資料傳給 coordinator,然後透過 USB 把 coordinator 跟電腦接在一起,這樣電腦便可以收集光敏電阻的讀值。coordinator 與電腦的連接方法有兩個,一個是使用 sparkfun XBee Explorer USB 轉板:
XBee Explorer USB 的功能主要是 USB 轉 UART 並且做 3.3V 與 5V 之間的 Level Shift。另一個方法是用 XBee shield,但是用這個方法最好把 ATmega 晶片從 Arduino 板子上取下,而且要把 XBee Shield 上的兩個 jumper 都切到 USB 的位置。
設定 XBee modules
參考「Arduino and XBee Series 2」這篇,把 function set 為 "ZIGBEE COORDINATOR AT" 的韌體寫入到要當 coordinator 的 XBee module,把 function set 為 "ZIGBEE END DEVICE AT" 的韌體寫入到要當 End device 的 XBee module。參數全部使用預設值即可,不用修改。
完成設定後,把 coordinator 透過 USB 接到電腦,並且打開 X-CTU,等候 End device 來與之連線。
測試通訊
首先,將底下的程式上傳到 End Device 的 Arduino 板子上:
完成上傳後,可以利用 serial monitor 確認程式動作是否正確,正常的話,應該會看到 H 和 L 每秒鐘會出現一個。
接著把要當 End Device 的 XBee module 接到 Arduino 板子上。當 End device 連上 coordinator 的時候,就會看到 X-CTU 的 Terminal 視窗上會收到 H 和 L 的訊息,一秒鐘來一個,這些是 End device 透過 Zigbee 無線通訊傳過來的資料:
XBee Light Sensor
接著把光敏電阻接到 End Device 端的 Arduino 板子上,接線方法為:光敏電阻一支腳接到 5V,另一支腳串接一顆 10k 電阻接到 analog pin 2。然後把底下的程式上傳到 Arduino 板子上:
當 End device 重新與 coordinator 建立連線後,打開 X-CTU 的 terminal 視窗,應該會看到類似底下視窗的結果,如果有的話,恭禧你,你已經完成了一個 XBee Light Sensor:
▲ End device 透過 Zigbee 無線通訊送過來的光敏電阻讀值 (其中,0D 0A 是換行符號)
0 意見:
張貼留言