Arduino 與 Zigbee 介面
Zigbee 是一種無線通訊協議,針對電池供電裝置(它具有低功耗和低成本的特點)。它通常工作在 2.4GHz 頻段(儘管存在地域差異),並且支援 20 到 250 kbits/s 的資料速率。
然而,與 LoRa 相比,傳輸距離較小。它的傳輸距離為 10 到 100 米,而 LoRa 可以傳輸幾公里。需要注意的是,如果發射器和接收器之間沒有視線,則 Zigbee 通訊效果不佳。
即使是輕微的障礙物也會顯著降低通訊質量。在使用 Zigbee 時請記住這些限制。如果您的應用無法滿足這些限制,您可能需要考慮其他選項。
為了使 Zigbee 與 Arduino 配合使用,我們將使用 XBee 模組。

它們與 UART 配合使用,因此,與 Arduino 介面非常容易。但是,需要檢視 XBee 的引腳圖,以瞭解哪些是 UART 引腳 -

上圖中的 DOUT 和 DIN 引腳是 UART 引腳(TX 和 RX)。它們可以連線到 Arduino 的兩個數字引腳(如果您打算使用 SoftwareSerial),或者分別連線到 Arduino 的 0 和 1 引腳(如果您打算使用 HW Serial)。請注意,如果您將硬體序列埠用於 Zigbee 介面,則無法在序列埠監視器上讀取來自 Arduino 的列印語句。
配置 XBee 模組
XBee 模組(發射器和接收器)需要使用 X-CTU 軟體進行配置。它可以從 這裡 下載。此軟體由 DigiKey 提供,他們提供了詳細的配置指南。因此,我在這裡重新發明輪子毫無意義。您可以在 這裡 找到指南。
Sparkfun 還有一個針對 X-CTU 軟體 新版本 的適配版本。
Instructables 還有一個簡短的版本。
請注意,打算相互通訊的兩個 XBee 模組應該屬於同一系列。
以下是一些關於配置的注意事項 -
您將需要一個擴充套件板或一個帶有 USB 轉 UART 轉換器的探索板才能進行此配置。
對於想要相互通訊的裝置,PAN ID(個人區域網路 ID)必須相同。
一個模組需要設定為發射器,另一個需要設定為接收器(這由 CE 欄位決定)。
記下您設定的波特率。這將在配置 Arduino 與 XBee 之間的序列通訊時在 Arduino 程式碼中使用。
電路圖 -
配置好 XBee 後,您可以透過擴充套件板/探索板將其連線到 Arduino。在這種情況下,引腳分配將根據您使用的板/探索板略有不同。這裡我們假設您將 XBee 直接連線到 Arduino Uno,在這種情況下,連線方式如下 -

如您所見,我們將 Vcc 連線到 Arduino 上的 3.3V,GND 連線到 GND,DOUT(TX)連線到 2 號引腳(充當 Arduino 上的 RX),DIN(RX)連線到 3 號引腳(充當 Arduino 上的 TX)。
接收端的連線方式也類似。如果您有內建天線,那就很好,否則您需要將天線連線到 UFL 聯結器。
程式碼演練
程式碼非常簡單。如果您使用的是 Arduino Uno 以外的板,則並非所有數字引腳都支援 SoftwareSerial。請 這裡 閱讀 SoftwareSerial 的限制。
在傳送端,程式碼將是 -
#include <SoftwareSerial.h>
SoftwareSerial xbeeSerial(2,3); //RX, TX
void setup() {
Serial.begin(9600);
xbeeSerial.begin(9600);
}
void loop() {
if(Serial.available() > 0){
char input = Serial.read();
xbeeSerial.print(input);
}
}如您所見,使用者在序列埠監視器上傳送的任何內容都將傳送到 XBee 模組,並在接收端接收。接收端的程式碼是 -
#include <SoftwareSerial.h>
SoftwareSerial xbeeSerial(2,3); //RX, TX
void setup() {
Serial.begin(9600);
xbeeSerial.begin(9600);
}
void loop() {
if(xbeeSerial.available() > 0){
char input = xbeeSerial.read();
Serial.print(input);
}
}在這裡,從 XBee 接收到的任何內容都將轉發到序列埠監視器。因此,在測試組合系統時,您在傳送端序列埠監視器上鍵入的任何內容都應該在接收端序列埠監視器上打印出來。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP