class WINC – wifi shield driver¶
The WINC
class is used for controlling the wifi shield.
Example usage:
import network
wlan = network.WINC()
wlan.connect("SSID", "KEY")
wlan.ifconfig()
Constructors¶
- class network.WINC([mode=MODE_STATION])¶
Creates a winc driver object and connects to the wifi shield which uses I/O pins P0, P1, P2, P3, P6, P7, and P8.
mode
controls the mode the WINC module works in:network.WINC.MODE_STATION
The module connects to an access point as a client. This is the default mode.
network.WINC.MODE_AP
The module will create an AP (Access Point) and accept connections from a client.
Note
The start_ap() method must be called after setting AP mode to configure the AP.
Also, the WINC1500 has some limitations in its AP implementation:
Only one client can connect at a time.
Only OPEN or WEP security are supported.
There’s a bug in the WiFi Module FW, when the client disconnects any bound sockets are lost (they just stop working). As a workaround, set a timeout for the server socket to force it to raise an exception and then reopen it (See the example script).
network.WINC.MODE_FIRMWARE:
This mode enables WiFi module firmware update.
Note
mode
can also benetwork.STA_IF
(station aka client, connects to upstream WiFi access points) and andnetwork.AP_IF
(access point, allows other WiFi clients to connect). Availability of the methods below depends on interface type. For example, only STA interface mayWLAN.connect()
to an access point.Methods¶
- active([is_active])¶
Activate (“up”) or deactivate (“down”) network interface, if boolean argument is passed. Otherwise, query current state if no argument is provided. Most other methods require active interface.
- connect(ssid[, key=None[, security=WPA_PSK[, channel=1]]])¶
Connect to a wifi network with ssid
ssid
using keykey
with securitysecurity
and channelchannel
.After connecting to the network use the
usocket
module to open TCP/UDP ports to send and receive data.Note
This method takes a little while to return.
- start_ap(ssid[, key=None[, security=OPEN[, channel=1]]])¶
When running in AP mode this method must be called after creating a WINC object to configure and start the AP .
ssid: The AP SSID (must be set).
key: The AP encryption key. A Key is required only if security is WEP.
security: AP security mode (only OPEN or WEP are supported).
channel: WiFi channel, change this if you have another AP running at the same channel.
- disconnect()¶
Disconnect from the wifi network.
- isconnected()¶
Returns True if connected to an access point and an IP address has been obtained.
- connected_sta()¶
This method returns a list containing the connected client’s IP address.
- wait_for_sta(timeout)¶
This method blocks and waits for a client to connect. If timeout is 0 this will block forever. This method returns a list containing the connected client’s IP address.
- ifconfig([ip_addr, subnet_addr, gateway_addr, dns_addr])¶
Returns a tuple containing:
[0]: IP Address String (XXX.XXX.XXX.XXX)
[1]: Subnet Address String (XXX.XXX.XXX.XXX)
[2]: Gateway String (XXX.XXX.XXX.XXX)
[3]: DNS Address String (XXX.XXX.XXX.XXX)
While connected to the network.
You may optionally pass a tuple/list of the ip_addr, subnet_addr, gateway_addr, and dns_addr strings in ipv4 (XXX.XXX.XXX.XXX) format to set a static IP address versus an address obtained through DHCP (which happens by default).
Example usage:
wlan = network.WINC() wlan.ifconfig(('192.168.1.100', '255.255.255.0', '192.168.1.1', '192.168.1.1')) wlan.connect(SSID, key=KEY, security=wlan.WPA_PSK)
- netinfo()¶
Returns a tuple containing:
[0]: RSSI - received signal strength indicator (int)
[1]: Authorization Type (see constants)
[2]: Set Service Identifier String (SSID)
[3]: MAC Address String (XX:XX:XX:XX:XX:XX) (BSSID)
[4]: IP Address String (XXX.XXX.XXX.XXX)
While connected to the network.
- scan()¶
Returns a list containing:
[0]: Set Service Identifier String (SSID)
[1]: MAC Address String (XX:XX:XX:XX:XX:XX) (BSSID)
[2]: Channel Number (int)
[3]: RSSI - received signal strength indicator (int)
[4]: Authorization Type (see constants)
[5]: 1 (int)
You don’t need to be connected to call this.
- rssi()¶
Returns the received signal strength indicator (int) of the currently connected network.
- fw_version()¶
Returns a tuple containing the wifi shield firmware version number.
[0]: Firmware Major Version Number (int)
[1]: Firmware Minor Version Number (int)
[2]: Firmware Patch Version Number (int)
[3]: Driver Major Version Number (int)
[4]: Driver Minor Version Number (int)
[5]: Driver Patch Version Number (int)
[6]: Hardware Revision Number - Chip ID (int)
- fw_dump(path)¶
Dumps the wifi shield firmware to a binary file at
path
. You must have put the module into firmware mode to use this.
- fw_update(path)¶
Programs the wifi shield with binary image found at
path
. You must have put the module into firmware mode to use this.
Constants¶
- OPEN¶
For connecting to an open wifi network.
- WPA_PSK¶
For connecting to a WPA/PSK based password protected network.
- 802_1X¶
Network is secured with WPA/WPA2 Enterprise.
- MODE_STA¶
Start in station mode (i.e. connect to a network).
- MODE_AP¶
Start in access point mode (i.e. become the network).
- MODE_P2P¶
Start in wifi-direct mode.
- MODE_BSP¶
Init BSP.
- MODE_FIRMWARE¶
Setup in firmware update mode.