如何配置 Raspberry Pi 3 和 BeagleBoard 進行無線連線

作者:歐洲編輯群

資料提供者:DigiKey 歐洲編輯群

低成本的 Raspberry Pi 單板電腦極為成功,為系統設計人員提供價格合理的控制器板,可在業界標準 Debian Linux 系統中進行編程。 到目前為止,Pi 都沒有整合式無線功能。 Raspberry Pi A、B 和 Pi2 都需要外接 Wi-Fi 或藍牙網卡才能建立無線連結。 最新版本的 Raspberry Pi 3 加入了 64 位元四核心 ARM® Cortex®-A53 處理器,頻率提升至 1.2 GHz 並且加入 Wi-Fi 和 Bluetooth Smart 4.0,但價格卻和之前版本相近。 此板件在推出前就已經預先生產好幾個月的時間,現在已經可以透過 Seeed 等供應商取得。

這為板件在物聯網 (IoT) 中的運用開創了龐大機會,能輕易連接路由器或閘道器,以傳輸感測器的資料,或透過智慧型手機或網路連線的終端機提供控制功能。 四核心處理器也提供更多處理能力,可在本機分析資料並執行更多種控制演算法,同時也可更快速回應。

有許多 IoT 應用並不使用螢幕,所以板件是在「無頭端」方式下進行配置。 此作法採用乙太網路連線到終端機,或使用序列控制台纜線。 用來進行連線的軟體涵蓋在標準軟體映像中,而此映像位於 Raspbian 作業系統中(位於板件插槽的 SD 記憶卡中)。

Raspbian 以 Debian Linux 為基礎,會定期更新來自 Raspberry Pi 基金會的函式庫,並由板件上的 NOOBS 安裝程式進行安裝。 然而,基金會刻意讓其他 ARM Linux 版本能輕易取代 SD 記憶卡的根分割區,如此即可使用其他作業系統。 在建立連接之前,可以透過要跟板件搭配使用的 PC 或筆記型電腦將這些軟體下載到記憶卡。

Raspberry Pi 3 板件新增 Wi-Fi 和 Bluetooth Smart 功能,並採用 1.2 GHz 四核心 ARM Cortx-A53 處理器。

圖 1:Raspberry Pi 3 開發板新增 Wi-Fi 和 Bluetooth Smart 功能,並採用 1.2 GHz 四核心 ARM Cortx-A53 處理器。

使用 Raspbian 時,配置無線連結的第一步就是掃描區域網路。 可使用 sudo 命令完成此工作,格式如下

: sudo iwlist wlan0 scan

如此即會傳回一份包含所有 Wi-Fi 網路的清單,同時涵蓋安全連線和其他詳細資訊。

若要讓板件連線,選取的 Wi-Fi 網路名稱必須列於擴充服務集合識別碼 (ESSID) 清單中。 這也包括所使用的驗證方式(可能是 WEP、WPA 或 WPA2),

如此即可提供組態檔所需的資料。 可使用下列命令取得:

: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

在檔案底部有 Wi-Fi 設定值,必須變更為區域網路。

在 network= block 中,the ssid="" 項目須變更為區域網路,而 psk="" 則變更為 Wi-Fi 密碼。

在鍵盤上按 CTRL+X,然後按 Y,最後按 Enter 確認,即可儲存組態檔。 在正常情形下,組態檔在數秒內就會更新,然後試著連接 Wi-Fi 網路。 如果未連線至 Wi-Fi,則可能需要使用 sudo reboot 重新開機。 成功連線後,就可以使用 ifconfig 命令進行驗證:

: ifconfig wlan0

如果 inet addr 欄位傳回 IP 位址,則表示連線成功,如此即可使用此 IP 位址遠端連線板件。

連接藍牙周邊裝置

Raspberry Pi 3 的一項優點是內建藍牙功能。 因此能讓藍牙周邊裝置輕鬆與板件連線,進而建立 IoT 網路。

連接藍牙裝置的最佳方式,就是在 Raspbian 作業系統內建的命令列介面中使用 bluetoothctl 命令。

若是其他作業系統,則可使用下列命令安裝藍牙模組:

: sudo apt-get install pi-bluetooth

若要執行 bluetoothctl,則需使用下列命令啟動藍牙晶片:

: power on

如此即會列出之前曾連線至板件的裝置。 使用下列命令

: scan on

就會進入探索模式,尋找附近的藍牙裝置。

接著必須開啟代理程式,以處理周邊裝置和板件的配對作業:

: agent on

若要進行配對,就需要周邊裝置的 MAC 位址,而此位址通常印在周邊裝置上,必須使用下列命令輸入:

: pair MAC 位址

此外,系統可能出現提示,要求輸入周邊裝置的密碼(如藍牙鍵盤)。

如果會經常使用該周邊裝置,則可使用下列命令將其加入到信任裝置清單中:

: trust MAC 位址

之後就可使用下列命令建立連線:

: connect MAC 位址

BeagleBone Green

其他像是 BeagleBone Green 之類常見的低成本單板電腦,並沒有在板上內建無線功能,因此需要配置配接器或網卡才可提供 Wi-Fi 連線。 配置情況會依據使用的網卡而有所不同, 但通常是透過作業系統處理。BeagleBone Green 使用的作業系統為 3.8 版的 Debian Linux 版本。

BeagleBone Green 板採用 ARM Cortex-A8 核心架構的 1 GHz Sitara 處理器。

圖 2:BeagleBone Green 板採用 ARM Cortex-A8 核心架構的 1 GHz Sitara 處理器

在板件內建 Wi-Fi 連線有個問題:Grove 連接埠的接地和電源層就位於插入 Wi-Fi 配接器的 USB 連接埠旁。 這會減弱訊號強度,導致連線不良。 對許多無頭端嵌入式應用來說,這些連接埠並非必要,而且可以使用裝置樹狀目錄來關閉。 此作業需要的命令可以在 uEnv.tx 檔案中找到。

另一種方式是使用短的 USB 延長線,如此一來,Wi-Fi 配接器就可以稍微遠離板件,避免發生此問題。

此板件也需要足夠的電力以使用 Wi-Fi 配接器,因此需要至少 1 A 電流的 5 V 電源。

無論使用哪一種方法,首先都必須使用 SSH,將板上的 USB 連接埠接至 PC,並進行核心更新,確保 Wi-Fi 配接器取得最新的函式庫:

: cd /opt/scripts/tools/

: ./update_kernel.sh

核心映像會自動下載並安裝,然後重新開機。

可以加入一小段指令碼,在板件開機時,自動啟動配接器,協助確保所有不同的配接器都能使用。 使用下列指令碼處理

: cd ~

: ntpdate -b -s -u pool.ntp.org

: apt-get update && apt-get install git

: git clone https://github.com/adafruit/wifi-reset.git

: cd wifi-reset

: chmod +x install.sh

: ./install.sh

此指令碼會在板件開機時自動啟動配接器,然後執行 iwconfig 命令,列出可用網路和 ESSID,以便 /etc/network/interfaces 檔案指定適當的連線。

使用下列 nano 編輯器命令設定檔案:

: nano /etc/network/interfaces

即會顯示帶有註解的 Wi-Fi 配置區塊:

# WiFi Example

#auto wlan0

#iface wlan0 inet dhcp

#    wpa-ssid "essid"

#    wpa-psk  "password"

清除註解,並且用相關網路名稱及密碼取代 ESSID 和密碼,即可完成配接器的配置。 可手動使用 ifup wln0 命令測試該連線,測試會傳回該連線的 IP 位址,有助於對板件進行遠端定址。 現在,將板件重新開機,就會帶出指令碼,將配接器啟動並配置網路連線。

結論

在 Raspberry Pi 3 板加入 Wi-Fi 和 Bluetooth Smart 功能,能讓開發人員透過簡單的配置流程踏入許多新的嵌入式、無頭端應用。 如此一來,就可輕鬆透過 PC、智慧型手機和雲端服務從遠端存取板件。 然而,其他板件的使用者仍可使用無線配接器獲得相同水準的功能。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

歐洲編輯群

關於出版者

DigiKey 歐洲編輯群