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
: theSSID
of 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_cipher
bgn
: 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 ofESP8285
on 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_func
corresponding to pin function
return value
ESP32_SPI
network 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,ip
ip address,netmask
subnet mask,gateway
gateway IP address,dns_server
DNS 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