Ameba Arduino: [RTL8195] [RTL8710] 使用 Ameba 連接WiFi

材料準備

  • Ameba x 1


範例說明

常見的WiFi有三種加密方式,一種為OPEN,即沒有密碼,第二種為WPA,即我們通常使用的密碼,第三種為WEP,會需要十六進制的密碼以及一個初向量(keyindex)。
下面我們將分別介紹這三種加密方式的WiFi連線方法。
首先確定板子是 Ameba, “Tools” -> “Board” -> “Arduino Ameba”
2-1
  • Open (即無密碼的WiFi連線)

打開 Connect No Encryption 的範例, “File” -> “Examples” -> “AmebaWiFi” -> “ConnectNoEncryption”

2-2

在SSID後修改“yourNetwork”為要連線的WiFi名稱。

修改之後上傳程式碼,按下Ameba的Reset按鈕, 這時候會看到You’re connected to the networkSSID: XXXXX,以及後面會每十秒列印出WiFi信息。

2-3
  • WPA加密模式的WiFi連線

打開 Connect With WPA 的範例, “File” -> “Examples” -> “AmebaWiFi” -> “ConnectWithWPA” 

 2-4

 

在SSID後修改“yourNetwork”為要連線的WiFi名稱, “secretPassword”改為對應的密碼。

修改之後上傳程式碼,按下Ameba的Reset按鈕, 這時候會看到You’re connected to the networkSSID: XXXXX,以及後面會每十秒列印出WiFi信息。

  • WEP加密模式的WiFi連線

打開 Connect With WEP 的範例, “File” -> “Examples” -> “AmebaWiFi” -> “ConnectWithWEP”

2-5

 

在SSID後修改“yourNetwork”為要連線的WiFi名稱, key改為對應的十六進制的密碼,keyIndex 修改為對應的數字。


修改之後上傳程式碼,按下Ameba的Reset按鈕, 這時候會看到You’re connected to the networkSSID: XXXXX,以及後面會每十秒列印出WiFi信息。

 

程式碼說明

在連線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的範例,要先刪掉這一項。