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通讯软体