作者:陸向陽
LinkIt ONE有多種通訊能力,包含GSM/GPRS、Bluetooth Classic/Smart、Wi-Fi、GPS等,但其中要連上Internet,現有版本的LinkIt ONE,大體只能倚仗Wi-Fi。
為何如此說?筆者逐一向各位說明。
上網就得靠Wi-Fi
其實用GPRS也是可以連上Internet,但是要佔用一張SIM卡,而且上行、下行的速率較Wi-Fi慢,除非是遠距離通訊,或很少傳訊、傳訊週期時間很長,以及只傳很短的訊息,否則不建議使用。
而且,GPRS屬於2.5G世代的通訊(僅比GSM高速些,但沒有2.75G的EDGE快速,但台灣沒有導入EDGE),台灣與全球都在從3G提升到4G,2G頻譜資源正在回收中,或許新的4G布建仍可能相容GPRS通訊,但整體而言續用GPRS通訊並不樂觀。
那GPS呢?GPS只能從衛星接收不能發送到衛星,不是雙向通訊,不能上Internet。
那Bluetooth(藍牙,簡稱BT)呢?Bluetooth 1.0~3.0屬於Bluetooth Classic,也是不連Internet,但Bluetooth 4.0版開始支援穿戴式電子所需的低能源(Bluetooth Low Energy,簡稱BLE),4.1版開始支援Mesh網路與IPv6,就能上Internet,4.0版後也稱為Bluetooth Smart。
但是,LinkIt ONE的韌體尚未支援BT 4.1(2015年7月為止),所以也不能用Bluetooth Smart連上Internet,即便能連上,速率一樣較Wi-Fi慢。
BT 4.2提升了BLE的傳輸率,安全性也加高,且可以完全以韌體更新方式自4.1升級到4.2,但這手法更新穎,若以入門、保守、穩健角度考量,初期仍不建議。但若用BT連手機或其他藍牙週邊(如藍牙喇叭)倒很合宜。
所以,本文依然以Wi-Fi為主來說明,如何讓LinkIt ONE連上Internet,若LinkIt ONE不連上Internet,則聯發科的雲端沙盒(MediaTek Cloud Sandbox,簡稱MCS)就無法使用,這個配套對應的雲端實驗性服務不用,就有些可惜了。當然,一旦能連上Internet,LinkIt ONE也不限連上MCS,到哪都行。
Wi-Fi連網實務程序
Step 1
硬體上要替LinkIt ONE接上Wi-Fi天線,LinkIt ONE的設計是Wi-Fi、Bluetooth共用同一組天線。
Step 2
接下來都是軟體(程式開發撰寫)動作,要讓LinkIt ONE連上Internet,不能用Arduino原有的Wi-Fi函式庫,要改用LinkIt ONE專屬的LWiFi函式庫(L字母開頭),另外我們要讓LinkIt ONE扮演一個Wi-Fi Client(Wi-Fi終端裝置)來用,所以在程式一起頭,要將兩個頭檔含括進來:
#include <LWiFi.h>
#include <LWiFiClient.h>
事實上LinkIt ONE函式庫中也有LWiFiServer(或稱LTcpServer,指TCP/IP傳輸協定的伺服器),即是讓LinkIt ONE扮演居家Wi-Fi路由器的角色,但LinkIt ONE在軟硬體方面,現階段都比較不適合扮演Wi-Fi伺服器,一是居家Wi-Fi路由器功能都很強大,且普遍,不太需要LinkIt ONE來擔任,二是Arduino Yun搭配OpenWRT等可能更合宜一點。
Step 3
接著要事先定義好要連上的SSID與密碼,分別為如下的xxxx與yyyy:
#define WI-FI_AP “xxxx”
#define WI-FI_PWD “yyyy”
當然,若你要連上的Wi-Fi AP(Access Point,無線存取點、接取點)不用密碼,也就不用定義密碼。
Step 4
再來,要從三種連線方式中選一種,分別是:
- LWiFi.connect()
- LWiFi.connectWEP()
- LWiFi.connectWPA()
如果不用密碼就能連上就使用第一種,若Wi-Fi AP使用的是WEP加密法,就選擇第二種,但WEP加密是比較早期的加密法,是在WPA(泛指WPA與WPA2)標準未訂立前的權宜加密法,且安全防護性較弱,一般多已捨棄不用。多數情況,我們用的是第三種,而語法如下:
上述參數(指SSID名稱、密碼等)正確後就能連上Wi-Fi。當然,有企業或機構採行更繁複、嚴謹的連線登入、驗證程序,但LinkIt ONE目前以家庭應用為先,目前暫不支援(大陸叫:支持)進階連線方式。
Step 5
說是已連上線,但若要穩健點,可再用一段程式來查核確認是否真的連上線,我們用串列監督器的文字回應來了解是否連線成功,範例程式碼如下:
Serial.begin(9600); // 啟用串列埠,並把鮑率設為9600bps
Serial.printlin(); // 先來一行空白列
Serial.print(“Connecting to AP…”); // 顯示訊息「與AP連線中…」
if(LWiFi.connectWPA(WIFI_AP, WIFI_PWD) < 0) // 研判函式回返值
{
Serial.println(“Fail!”); // 回返值為False,顯示連線失敗
return;
}
Serial.println(“OK”); // 回返值為True,連線成功
以上就是最基本的LinkIt ONE用Wi-Fi連線法。
- Ollama官方模型分類觀察 - 2025/06/13
- COMPUTEX Taipei 2025量子技術展示觀察 - 2025/05/29
- Arduino Cloud Editor加入大語言模型幫手功能 - 2025/05/28
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!