class WINC – upravljački program za WiFi shield¶
Klasa WINC upravlja Atmel WINC1500 802.11 b/g/n WiFi modulom na OpenMV WiFi Shieldu. Dostupno na OpenMV Cam M4, M7, H7, H7 Plus i Pure Thermal (STM32 ploče za koje je WiFi shield dizajniran). Za ploče s ugrađenim WiFi-jem (OpenMV Cam N6, OpenMV Cam RT1062, Arduino Giga) umjesto toga koristite WLAN.
Primjer – spajanje na pristupnu točku i ispis adrese:
import network
wlan = network.WINC()
wlan.connect("SSID", "KEY", security=network.WINC.WPA_PSK)
print("status: ", "connected" if wlan.isconnected() else "off")
print("rssi: ", wlan.rssi(), "dBm")
print("interface: ", wlan.ifconfig())
print("netinfo: ", wlan.netinfo())
Primjer – podizanje otvorene pristupne točke i čekanje klijenta:
import network
wlan = network.WINC(mode=network.WINC.MODE_AP)
wlan.start_ap("OpenMV-Cam", security=network.WINC.OPEN, channel=6)
print("waiting for a station to associate...")
print(wlan.wait_for_sta(timeout=None))
Konstruktori¶
- class network.WINC(mode: int = WINC.MODE_STA) None¶
Stvara objekt upravljačkog programa
WINCi podiže WiFi shield.modeodabire način rada u kojem se modul pokreće:WINC.MODE_STA– stanica / klijent. Spojite se na pristupnu točku pomoćuconnect(). Ovo je zadano.WINC.MODE_AP– pristupna točka. Konfigurirajte AP pomoćustart_ap(), a zatim prihvaćajte klijentske veze.WINC.MODE_P2P– WiFi Direct.WINC.MODE_BSP– podiže samo BSP (bez radija).WINC.MODE_FIRMWARE– način za ažuriranje ugrađenog programa (firmware); potreban metodamafw_dump()ifw_update().
Napomena
U AP načinu WINC1500 ima hardverska ograničenja:
Istovremeno se može spojiti samo jedan klijent.
Podržana je samo
OPENili WEP sigurnost.Greška u ugrađenom programu WiFi modula uzrokuje da svi vezani utičnici prestanu raditi kada se klijent odspoji. Postavite istek vremena na poslužiteljski utičnik kako bi izazvao iznimku koju možete iskoristiti za njegovo ponovno otvaranje.
Metode¶
- active(is_active: bool | None = None) bool¶
Aktivira ili deaktivira WiFi shield.
Bez argumenta vraća trenutno stanje –
Truedok je shield inicijaliziran i radio podignut, inačeFalse.active(True)izvodi rukovanje ugrađenim programom WINC1500 preko SPI-ja i podiže radio u konfiguriranom načinumode. Nema učinka ako je sučelje već aktivno.connect()ovo automatski poziva ako još nije pozvano; za bilo koju drugu metodu (scan(),rssi(),netinfo(), …) prvo morate pozvatiactive(True).active(False)ponovno gasi radio (WINC se vraća na način rada samo s BSP-om) i oslobađa SPI pinove.
- connect(ssid: str, key: str | None = None, *, security: int = WINC.WPA_PSK, channel: int = 1) None¶
Pridružuje se WiFi mreži
ssidkoristeći lozinkukey, sigurnosni načinsecurity(jedan odOPEN,WPA_PSKili 802.1X konstanta) na radio kanaluchannel.securityichannelsmiju se zadati samo kao ključne riječi.Nakon spajanja koristite modul
socketza otvaranje TCP/UDP portova.Ova metoda blokira dok se pridruživanje ne dovrši ili ne uspije.
- config(ssid: str, key: str | None = None, *, security: int = WINC.WPA_PSK, channel: int = 1) None¶
Alias za
connect(). Pružen radi kompatibilnosti s kodom koji pozivaconfigna drugimnetworksučeljima.
- start_ap(ssid: str, key: str | None = None, *, security: int = WINC.OPEN, channel: int = 1) None¶
Alias za
connect()koji se koristi nakon konstruiranja objekta smode=MODE_APza konfiguriranje i pokretanje pristupne točke. AP podržava samoOPENili WEP sigurnost; ako se koristi WEP,keyje obavezan.
- disconnect() None¶
U STA načinu, raspridružuje se s trenutno pridruženom pristupnom točkom. Shield ostaje aktivan; pozovite
connect()za ponovno pridruživanje. Nema učinka kada nije trenutno pridružen.
- isconnected() bool¶
U STA načinu vraća
Truekada je pridružen pristupnoj točki i kada je dobivena IPv4 adresa (putem DHCP-a iliifconfig()). VraćaFalsedok je još u fazi autentikacije / pridruživanja / DHCP-a.
- connected_sta() List[str]¶
U AP načinu vraća popis koji sadrži IP adresu trenutno spojenog klijenta (ili prazan popis ako klijent nije spojen).
- wait_for_sta(timeout: int | None) List[str]¶
U AP načinu blokira dok se klijent ne spoji i vraća popis koji sadrži IP adresu klijenta.
timeoutje maksimalno čekanje u milisekundama; proslijediteNoneza neograničeno čekanje.
- ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str]¶
Dohvaća ili postavlja parametre IPv4 sučelja. 4-torka sadrži
(ip, subnet, gateway, dns)kao nizove četiriju brojeva odvojenih točkama.Pozvana bez argumenta: vraća trenutnu konfiguraciju.
Pozvana s 4-torkom: postavlja statičku IP konfiguraciju umjesto one dobivene DHCP-om.
Primjer – pričvršćivanje statičke IP adrese prije spajanja:
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=network.WINC.WPA_PSK)
Napomena
WINCne implementira moderniAbstractNIC.ipconfig()API; ovdje koristiteifconfig().
- netinfo() Tuple[int, int, str, str, str]¶
Vraća 5-torku koja opisuje trenutno pridruživanje:
[0]RSSI kao cijeli broj (dBm).[1]Sigurnosni način – jedna od sigurnosnih konstanti.[2]SSID niz.[3]BSSID kao MAC niz"XX:XX:XX:XX:XX:XX".[4]IPv4 adresa kao niz četiriju brojeva odvojenih točkama.
- scan() List[Tuple[str, str, int, int, int, int]]¶
Skenira obližnje pristupne točke. Vraća popis 6-torki:
[0]SSID niz.[1]BSSID kao MAC niz"XX:XX:XX:XX:XX:XX".[2]Broj kanala.[3]RSSI u dBm.[4]Sigurnosni način – jedna od sigurnosnih konstanti.[5]Rezervirano (uvijek1).
Može se pozvati bez prethodnog pridruživanja mreži.
- rssi() int¶
Vraća RSSI u dBm trenutno pridružene pristupne točke. Otprilike:
-30je izvrsno,-67je u redu za strujanje,-80je granično,-90i niže je neupotrebljivo. Smisleno samo u STA načinu dok jeisconnected()True.
- fw_version() Tuple[int, int, int, int, int, int, int]¶
Vraća 7-torku koja opisuje verzije ugrađenog programa i upravljačkog programa WINC1500:
[0]Glavna verzija ugrađenog programa.[1]Sporedna verzija ugrađenog programa.[2]Zakrpa ugrađenog programa.[3]Glavna verzija upravljačkog programa.[4]Sporedna verzija upravljačkog programa.[5]Zakrpa upravljačkog programa.[6]Hardverska revizija čipa.
- fw_dump(path: str) None¶
Čita internu flash memoriju WINC1500-a i zapisuje dobivenu sliku ugrađenog programa u datoteku na
pathna datotečnom sustavu OpenMV-a. Koristite ovo za sigurnosnu kopiju trenutno instalirane slike prije pozivanjafw_update().Zahtijeva da je modul konstruiran s
mode=MODE_FIRMWARE.
- fw_update(path: str) None¶
Briše internu flash memoriju WINC1500-a i programira je binarnom slikom na
path. Slika mora odgovarati rasporedu koji očekuje OpenMV ugrađeni program (obično isporučenom od strane Atmela / Microchipa s WINC SDK-om).Poziv blokira nekoliko sekundi dok se flash memorija programira i provjerava. Ponovno uključite napajanje OpenMV Cama nakon povratka poziva kako bi WINC1500 krenuo iz nove slike.
Zahtijeva da je modul konstruiran s
mode=MODE_FIRMWARE.
Konstante¶
- OPEN: int¶
Sigurnosna vrijednost za nešifriranu mrežu. Proslijedite u argument
securitymetodaconnect()/start_ap().
- WPA_PSK: int¶
Sigurnosna vrijednost za WPA/WPA2 s unaprijed dijeljenim ključem. Zadano za
connect().
Napomena
Postoji i sigurnosna vrijednost WPA/WPA2 Enterprise (802.1X). Ugrađeni program je izlaže pod nazivom
802_1X, koji nije valjan Python identifikator – pristupite joj putemgetattr(network.WINC, "802_1X").- MODE_STA: int¶
Način rada stanice – spajanje na pristupnu točku kao klijent. Zadani način konstruktora.
- MODE_BSP: int¶
Inicijalizira samo WINC paket podrške za ploču (BSP) – radio se ne podiže. Koristi se u procesu ažuriranja ugrađenog programa.
- MODE_FIRMWARE: int¶
Način za ažuriranje ugrađenog programa. Potreban metodama
fw_dump()ifw_update().