network
This module is used to initialize various network card drivers. The network card has the functions of connecting routing, disconnecting routing, viewing the connection information of the network card, and checking whether it is connected.
To use WiFi please make sure that the antenna is connected
esp8285
On some development boards, a network card module that uses AT to interact, such as esp8285, is connected to k210 through a serial port
Pin 8 is the enable pin. You can create a GPIO object to control its high and low levels to achieve enable and disable, or you can use it to reset (low first and then high), and you need to wait for a while after reset Time to operate,
You can view the routine network_espat.py
esp32
Currently there is an esp32 module in the MaixDuino development board which is connected to k210 through spi
There is also a separate TF plug-in module
network.ESP8285(uart)
Construct an ESP8285 network card object. To use this method, you need to pass in a uart object. On the dock and GO currently supported by MaixPy, the AT command module is used as the WiFi. So the uart object is the object that communicates with the AT module, you can check the uart module routine
Calling this method will initialize ESP8285 and throw an exception if it fails
Parameters
uart: UART object communicating with AT module
return value
ESP8285: NIC object
ESP8285
connect(ssid, key)
Connect hotspot (AP/router)
Parameters
ssid: theSSIDof the hotspotkey: hotspot password
return value
None, if an error occurs, an exception will be thrown
2.2. ifconfig
View wifi connection information, currently network does not support setting network card configuration
nic.ifconfig()
Parameters
no
return value
tuple type, elements are all strings: (ip, netmask, gateway, dns_server, dhcp_server, mac, ssid), if not found or invalid, the value is "0"
isconnected
Check if wifi is connected
nic.isconnected()
Parameters
no
return value
True: connected
False: disconnect
disconnect
Disconnect wifi connection
Parameters
no
return value
no
scan
Scan the surrounding hotspot information
Parameters
no
return value
A list object, each element contains a string, the string comes from the response of the AT module, and the content is the same as described in the AT command document of esp8285, as follows:
ecn, ssid, rssi,mac, channel, freq offset, freq cali, pairwise_cipher, group_cipher, bgn, wps
ecn: Encryption method- 0: OPEN
- 1: WEP
- 2: WPA_PSK
- 3: WPA2_PSK
- 4: WPA_WPA2_PSK
ssid: string parameter, AP's SSIDrssi: signal strengthmac: string parameter, AP's MAC addresschannel: channel numberfreq offset: AP frequency offset, unit: kHz. Divide this value by 2.4 to get the ppm valuefreq cali: frequency offset calibration valuepairwise_cipher:- 0: CIPHER_NONE
- 1: CIPHER_WEP40
- 2: CIPHER_WEP104
- 3: CIPHER_TKIP
- 4: CIPHER_CCMP
- 5: CIPHER_TKIP_CCMP
- 6: CIPHER_UNKNOWN
group_cipher: The definition is the same aspairwise_cipherbgn: bit0 stands for b mode; bit1 stands for g mode; bit2 stands for n mode
If the corresponding bit is 1, it means the mode is enabled; if the corresponding bit is 0, the mode is not enabled.wps: 0, WPS is not enabled; 1, WPS is enabled
For example:
info_strs = ['4,"ChinaNet-lot0",-79,"c8:50:e9:e8:21:3e",1,-42,0,4,3,7,1', '4,"TOPSTEP2G4 ",-7
0,"f8:e7:1e:0d:0d:f8",1,-57,0,4,4,7,0']
This may seem strange, because the information of each AP is a string of characters, and there are integers and strings in the information. The strings are enclosed in double quotes, so after you get this string, you need to process it again. Use again, such as:
def wifi_deal_ap_info(info):
res = []
for ap_str in info:
ap_str = ap_str.split(",")
info_one = []
for node in ap_str:
if node.startswith('"'):
info_one.append(node[1:-1])
else:
info_one.append(int(node))
res.append(info_one)
return res
info_strs = ['4,"ChinaNet-lot0",-79,"c8:50:e9:e8:21:3e",1,-42,0,4,3,7,1', '4,"TOPSTEP2G4 ",-70,"f8:e7:1e:0d:0d:f8",1,-57,0,4,4,7,0']
info = wifi_deal_ap_info(info_strs)
print(info)
The output is:
[[4,'ChinaNet-lot0', -79,'c8:50:e9:e8:21:3e', 1, -42, 0, 4, 3, 7, 1], [4,'TOPSTEP2G4', -70,'f8:e7:1e:0d:0d:f8', 1, -57, 0, 4, 4, 7, 0]]
Then for example, we need to get all the SSID of AP only need to use
for ap_info in info:
print(ap_info[1])
enable_ap(ssid, key, chl=5, ecn=3)
- Warning: As of November 26, 2020, MaixPy sockets have not yet implemented functions such as listen / bind / accpet.
Open hotspot
Parameters
ssid: SSIDkey: passwordchl: Channel number of WiFi signalecn: Encryption method, includingOPEN``WPA2_PSK, etc., refer to the constant part ofESP8285on this page, the default value is3, which isESP8285.WPA2_PSK, for example
nic = network.ESP8285(uart)
nic.enable_ap("maixpy", "12345678", 5, nic.OPEN)
or
nic.enable_ap("maixpy", "12345678", 5, network.ESP8285.OPEN)
disable_ap()
Turn off hotspot
Constant
OPEN
The hotspot encryption method does not require a password
WPA_PSK
The hotspot encryption method is WPA_PSK
WPA2_PSK
The hotspot encryption method is WPA2_PSK
WPA_WPA2_PSK
The encryption method of the hotspot is WPA_WPA2_PSK
Routine
Refer to routines in the network directory
network.ESP32_SPI(cs,rst,rdy,mosi,miso,sclk)
To construct an ESP32_SPI network card object, you need to pass in the corresponding GPIOHS FUNC
If the number of incoming parameters is incorrect, an error will be returned
Note If SPI and SD do not conflict on maixduino, you need to set ESP32_SPI as the hardware SPI configuration.
Parameters
fpioa_funccorresponding to pin function
return value
ESP32_SPInetwork card object
ESP32_SPI
adc
Read the adc value of the esp32 module
Parameters
no
return value
tunple, the value of adc for 5 channels
The order is "PIN36", "PIN39", "PIN34", "PIN35", "PIN32"
Routine
network.WIZNET5K(spi, cs)
Construct a WIZNET5K network card object. To use this method, you need to pass in a spi object and a cs pin.
Calling this method will initialize WIZNET5K and throw an exception if it fails
Parameters
spi: Responsible for communication with WIZNET5K modulecs: spi communication chip selection footer
return value
WIZNET5K: NIC object
WIZNET5K
dhclient
DHCP dynamically obtain IP
nic.dhclient()
Parameters
no
return value
True: Get successFalse: Get failed
ifconfig
nic.ifconfig()
Parameters
- No reference: query network card information
- Incoming
(ip, netmask, gateway, dns_server)string tuple: configure network card,ipip address,netmasksubnet mask,gatewaygateway IP address,dns_serverDNS service IP address .
return value
- No parameters: return
tuple, the elements are all strings,(ip, netmask, gateway, dns_server), if not found or invalid, the value is"0" - Pass parameter: return
None
isconnected
Check if the network is connected
nic.isconnected()
Parameters
no
return value
True: already connectedFalse: disconnect