Fireduino WiFi 网络连接与设置
更新时间:2017-08-08 阅读:14467
目录
WiFi 的网络连接
WiFi接入过程三个阶段
STA(工作站)启动初始化、开始正式使用AP传送数据帧前,要经过三个阶段才能够接入(802.11MAC层负责客户端与AP之间的通讯,功能包括扫描、接入、认证、加密、漫游和同步等功能):
1)扫描阶段(SCAN)
2)认证阶段 (Authentication)
3)关联(Association)
Scanning
802.11 MAC 使用Scanning来搜索AP,STA搜索并连接一个AP,当STA漫游时寻找连接一个新的AP,STA会在在每个可用的信道上进行搜索。
1)Passive Scanning(特点:找到时间较长,但STA节电)
通过侦听AP定期发送的Beacon帧来发现网络,该帧提供了AP及所在BSS相关信息:“我在这里”…
2)Active Scanning (特点:能迅速找到)
STA依次在13个信道发出Probe Request帧,寻找与STA所属有相同SSID的AP,若找不到相同SSID的AP,则一直扫描下去..
Authentication
当STA找到与其有相同SSID的AP,在SSID匹配的AP中,根据收到的AP信号强度,选择一个信号最强的AP,然后进入认证阶段。只有身份认证通过的站点才能进行无线接入访问。AP提供如下认证方法:
1)开放系统身份认证(open-system authentication)
2)共享密钥认证(shared-key authentication)
3)WPA PSK认证( Pre-shared key)
4)802.1X EAP认证
Association
当AP向STA返回认证响应信息,身份认证获得通过后,进入关联阶段。
1) STA向AP发送关联请求
2) AP 向STA返回关联响应
至此,接入过程才完成,STA初始化完毕,可以开始向AP传送数据帧。
Fireduino WiFi 关联网络
Fireduino SDK 提供了接入AP 的接口函数,具体请参考如下接口函数:
begin()
说明 初始化WiFi 库 以及接入WiFi 热点。
语法 WiFi.begin(ssid); WiFi.begin(ssid, pass);
参数 ssid : 接入点 pass:密钥
返回 WiFi 当前状态
参考示例
如下:
// attempt to connect to Wifi network: while (status != WL_CONNECTED) { Serial.print("Attempting to connect to SSID: "); Serial.println(ssid); // Connect to WPA/WPA2 network. Change this line if using open or WEP network: status = WiFi.begin(ssid, pass); // wait 10 seconds for connection: delay(10000); }
Fireduino WiFi 网络配置
Fireduino 在加入网络后,默认会开启内部DHCP自动获取IP,一般情况下都能获取到路由器分配的IP地址,Fireduino 可以以此IP地址进行网络通信。
Fireduino SDK 也提供了网络配置函数的API,具体如下:
config()
说明 配置网络。
语法 WiFi.config(ip); WiFi.config(ip, dns); WiFi.config(ip, dns, gateway); WiFi.config(ip, dns, gateway, subnet);
参数 ip :设备的IP 地址 dns :DNS 服务器地址 gateway :网关地址 subnet :网络子掩码
返回 无
参考示例
如下:
//config ip WiFi.config(IPAddress(192.168.1.99)); //config ip、dns WiFi.config(IPAddress(192.168.1.99),IPAddress(192.168.1.1)); //config ip、dns、gateway WiFi.config(IPAddress(192.168.1.99),IPAddress(192.168.1.1),IPAddress(192.168.1.1)); //config ip、dns、gateway、subne WiFi.config(IPAddress(192.168.1.99),IPAddress(192.168.1.1),IPAddress(192.168.1.1),IPAddress(255.255.255.0));