WiFi - 連接到 WiFi 網路

材料準備

流程說明

WiFi 連接中共有三種常見的加密類型。 第一個是“OPEN”,這意味著連接到該網絡不需要密碼。 第二種加密方式是WPA,需要正確的密碼才能訪問。 第三種是 WEP,需要十六進制密碼和密鑰索引。

下面我們將簡單介紹一下如何在Ameba上建立這三種加密方式的WiFi連接。

首先確保選擇正確的Ameba開發板 “Tools” -> “Board”。

  • Open (WiFi connection without password)

打開示例 “File” -> “Examples” -> “WiFi” -> “ConnectToWiFi” -> “NoEncryption”

在示例代碼中,將“ssid”修改為與要連接的WiFi SSID相同。

接下來,上傳示例代碼,然後按下 Ameba 上的重置按鈕。 然後你會看到一條消息”You’re connected to the networkSSID: XXXXX”,並且每10秒在串口監視器中打印一次此WiFi連接的信息。

  • WiFi connection with WPA encryption

打開示例 “File” -> “Examples” -> “WiFi” -> “ConnectToWiFi” -> “WPA_Security”

示例代碼中,修改“ssid”為要連接的WiFi SSID,“pass”為網絡密碼。

如果您希望在程序運行時在串行監視器中輸入您的 SSID 和密碼,請取消註釋文件頂部的#define MANUAL_INPUT。

接下來,上傳示例代碼,然後按下 Ameba 上的重置按鈕。 然後您會看到一條消息“You’re connected to the networkSSID: XXXXX”,並且此WiFi連接的信息每10秒打印一次在串口監視器中。

注意:如果您啟用了 MANUAL_INPUT,則在上傳示例代碼並按下 Ameba 上的重置按鈕後,在串行監視器中輸入您的 SSID 並按回車鍵。 接下來,輸入您的密碼,然後按回車鍵。 然後您會看到一條消息“您已連接到網絡SSID:XXXXX”,並且此WiFi連接的信息每10秒打印一次在串口監視器中。

  • WiFi connection with WEP encryption

打開示例 “File” -> “Examples” -> “WiFi” -> “ConnectToWiFi” -> “WEP_Security”

示例代碼中修改“ssid”為要連接的SSID,“key”修改為十六進制密碼,“keyIndex”修改為你的密鑰索引號。

如果您希望在程序運行時在串行監視器中輸入您的 SSID 和密碼,請取消註釋文件頂部的#define MANUAL_INPUT。

接下來,上傳示例代碼,然後按下 Ameba 上的重置按鈕。 然後你會看到“You’re connected to the networkSSID: XXXXX”的消息,並且每10秒在IDE中打印一次這個WiFi連接的信息。

注意:如果您啟用了 MANUAL_INPUT,則在上傳示例代碼並按下 Ameba 上的重置按鈕後,在串行監視器中輸入您的 SSID 並按回車鍵。 接下來,輸入您的密鑰並按回車鍵。 最後輸入您的密碼並按回車鍵。 然後您會看到一條消息“您已連接到網絡SSID:XXXXX”,並且此WiFi連接的信息每10秒打印一次在串口監視器中。

Code Reference

在連線WiFi時會使用到WiFi.begin ();
https://www.arduino.cc/en/Reference/WiFiBegin
連線成功後會讀取WiFi的信息:
顯示WiFi的名稱WiFi.SSID()
https://www.arduino.cc/en/Reference/WiFiSSID
顯示WiFi的訊號強度WiFi.RSSI()
https://www.arduino.cc/en/Reference/WiFiRSSI
顯示WiFi的加密方式WiFi.encryptionType()
https://www.arduino.cc/en/Reference/WiFiEncryptionType
顯示連線的路由器的物理地址即BSSID WiFi.BSSID()
https://www.arduino.cc/en/Reference/WiFiBSSID
也會讀取Ameba自己的信息:
顯示Ameba的MAC信息WiFi.macAddress()
https://www.arduino.cc/en/Reference/WiFiMACAddress
顯示Ameba的IP信息WiFi.localIP()
https://www.arduino.cc/en/Reference/WiFiLocalIP
顯示子網掩碼WiFi.subnetMask()
https://www.arduino.cc/en/Reference/WiFiSubnetMask
顯示網關信息WiFi.gatewayIP()
https://www.arduino.cc/en/Reference/WiFiGatewayIP

與Arduino的差異

Arduino在完成WiFi的操作時,需要另外使用WiFi Shield來作為WiFi模塊,因此在使用WiFi是需要#include 來使用SPI與WiFi模塊進行通訊。

但是Ameba自身就具有WiFi模塊的功能,因此,不需要#include 。若想要使用Arduino的範例,要先刪掉這一項。

請先確認已安裝QQ通訊軟體