class WINC – sterownik nakładki WiFi¶
Klasa WINC steruje modułem WiFi Atmel WINC1500 802.11 b/g/n na nakładce OpenMV WiFi Shield. Dostępna na OpenMV Cam M4, M7, H7, H7 Plus i Pure Thermal (płytki STM32, dla których zaprojektowano nakładkę WiFi). Dla płytek z wbudowanym WiFi (OpenMV Cam N6, OpenMV Cam RT1062, Arduino Giga) użyj zamiast tego WLAN.
Przykład – połączenie z punktem dostępowym i wypisanie adresu:
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())
Przykład – uruchomienie otwartego punktu dostępowego i oczekiwanie na klienta:
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))
Konstruktory¶
- class network.WINC(mode: int = WINC.MODE_STA) None¶
Tworzy obiekt sterownika
WINCi uruchamia nakładkę WiFi.modewybiera tryb pracy, w którym moduł się uruchamia:WINC.MODE_STA– stacja / klient. Połącz się z punktem dostępowym za pomocąconnect(). Wartość domyślna.WINC.MODE_AP– punkt dostępowy. Skonfiguruj AP za pomocąstart_ap(), a następnie akceptuj połączenia klientów.WINC.MODE_P2P– WiFi Direct.WINC.MODE_BSP– uruchamia tylko BSP (bez radia).WINC.MODE_FIRMWARE– tryb aktualizacji oprogramowania układowego; wymagany przezfw_dump()ifw_update().
Informacja
W trybie AP WINC1500 ma sprzętowe ograniczenia:
Jednocześnie może być podłączony tylko jeden klient.
Obsługiwane są tylko zabezpieczenia
OPENlub WEP.Błąd w oprogramowaniu układowym modułu WiFi powoduje, że wszystkie powiązane gniazda przestają działać po rozłączeniu klienta. Ustaw limit czasu na gnieździe serwera, aby zgłaszało wyjątek, którego możesz użyć do jego ponownego otwarcia.
Metody¶
- active(is_active: bool | None = None) bool¶
Włącza lub wyłącza nakładkę WiFi.
Bez argumentu zwraca bieżący stan –
True, gdy nakładka jest zainicjowana, a radio działa, w przeciwnym razieFalse.active(True)wykonuje uzgadnianie oprogramowania układowego WINC1500 przez SPI i uruchamia radio w skonfigurowanym trybiemode. Nie wykonuje żadnej operacji, jeśli interfejs jest już aktywny.connect()wywołuje tę metodę automatycznie, jeśli nie została jeszcze wywołana; dla każdej innej metody (scan(),rssi(),netinfo(), …) musisz najpierw wywołaćactive(True).active(False)ponownie wyłącza radio (WINC przechodzi do trybu samego BSP) i zwalnia piny SPI.
- connect(ssid: str, key: str | None = None, *, security: int = WINC.WPA_PSK, channel: int = 1) None¶
Łączy się z siecią WiFi
ssidprzy użyciu hasłakey, trybu zabezpieczeńsecurity(jednego zOPEN,WPA_PSKlub stałej 802.1X) na kanale radiowymchannel.securityichannelsą wyłącznie nazwane.Po połączeniu użyj modułu
socket, aby otworzyć porty TCP/UDP.Ta metoda blokuje wykonanie do czasu zakończenia lub niepowodzenia połączenia.
- config(ssid: str, key: str | None = None, *, security: int = WINC.WPA_PSK, channel: int = 1) None¶
Alias
connect(). Udostępniony dla zgodności z kodem wywołującymconfigna innych interfejsachnetwork.
- start_ap(ssid: str, key: str | None = None, *, security: int = WINC.OPEN, channel: int = 1) None¶
Alias
connect()używany po utworzeniu obiektu zmode=MODE_APw celu skonfigurowania i uruchomienia punktu dostępowego. AP obsługuje tylko zabezpieczeniaOPENlub WEP; jeśli używany jest WEP, wymagany jestkey.
- disconnect() None¶
W trybie STA rozłącza się z aktualnie powiązanym punktem dostępowym. Nakładka pozostaje aktywna; wywołaj
connect(), aby ponownie się połączyć. Nie wykonuje żadnej operacji, gdy nie ma aktywnego połączenia.
- isconnected() bool¶
W trybie STA zwraca
True, gdy nawiązano połączenie z punktem dostępowym oraz uzyskano adres IPv4 (przez DHCP lubifconfig()). ZwracaFalsepodczas fazy uwierzytelniania / łączenia / DHCP.
- connected_sta() List[str]¶
W trybie AP zwraca listę zawierającą adres IP aktualnie podłączonego klienta (lub pustą listę, jeśli żaden klient nie jest podłączony).
- wait_for_sta(timeout: int | None) List[str]¶
W trybie AP blokuje wykonanie do czasu podłączenia klienta i zwraca listę zawierającą adres IP klienta.
timeoutto maksymalny czas oczekiwania w milisekundach; przekażNone, aby czekać w nieskończoność.
- ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str]¶
Pobiera lub ustawia parametry interfejsu IPv4. 4-elementowa krotka zawiera
(ip, subnet, gateway, dns)jako łańcuchy w notacji kropkowej.Wywołana bez argumentu: zwraca bieżącą konfigurację.
Wywołana z 4-elementową krotką: ustawia statyczną konfigurację IP w miejsce uzyskanej przez DHCP.
Przykład – przypisanie statycznego IP przed połączeniem:
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)
Informacja
WINCnie implementuje nowoczesnego APIAbstractNIC.ipconfig(); użyj tutajifconfig().
- netinfo() Tuple[int, int, str, str, str]¶
Zwraca 5-elementową krotkę opisującą bieżące połączenie:
[0]RSSI jako liczba całkowita (dBm).[1]Tryb zabezpieczeń – jedna ze stałych zabezpieczeń.[2]Łańcuch SSID.[3]BSSID jako łańcuch MAC"XX:XX:XX:XX:XX:XX".[4]Adres IPv4 jako łańcuch w notacji kropkowej.
- scan() List[Tuple[str, str, int, int, int, int]]¶
Skanuje w poszukiwaniu pobliskich punktów dostępowych. Zwraca listę 6-elementowych krotek:
[0]Łańcuch SSID.[1]BSSID jako łańcuch MAC"XX:XX:XX:XX:XX:XX".[2]Numer kanału.[3]RSSI w dBm.[4]Tryb zabezpieczeń – jedna ze stałych zabezpieczeń.[5]Zarezerwowane (zawsze1).
Może być wywołana bez wcześniejszego połączenia z siecią.
- rssi() int¶
Zwraca RSSI w dBm aktualnie powiązanego punktu dostępowego. Z grubsza:
-30jest doskonałe,-67jest wystarczające do strumieniowania,-80jest graniczne,-90i poniżej jest bezużyteczne. Ma znaczenie tylko w trybie STA, gdyisconnected()zwracaTrue.
- fw_version() Tuple[int, int, int, int, int, int, int]¶
Zwraca 7-elementową krotkę opisującą wersje oprogramowania układowego i sterownika WINC1500:
[0]Wersja główna oprogramowania układowego.[1]Wersja pomocnicza oprogramowania układowego.[2]Wersja poprawki oprogramowania układowego.[3]Wersja główna sterownika.[4]Wersja pomocnicza sterownika.[5]Wersja poprawki sterownika.[6]Wersja sprzętowa układu.
- fw_dump(path: str) None¶
Odczytuje wewnętrzną pamięć flash WINC1500 i zapisuje powstały obraz oprogramowania układowego do pliku pod ścieżką
pathw systemie plików OpenMV. Użyj tego, aby utworzyć kopię zapasową aktualnie zainstalowanego obrazu przed wywołaniemfw_update().Wymaga, aby moduł został utworzony z
mode=MODE_FIRMWARE.
- fw_update(path: str) None¶
Kasuje wewnętrzną pamięć flash WINC1500 i programuje ją obrazem binarnym pod ścieżką
path. Obraz musi być zgodny z układem oczekiwanym przez oprogramowanie układowe OpenMV (zwykle dostarczanym przez Atmel / Microchip wraz z WINC SDK).Wywołanie blokuje wykonanie na kilka sekund podczas programowania i weryfikacji pamięci flash. Po powrocie z wywołania wykonaj cykl zasilania OpenMV Cam, aby WINC1500 uruchomił się z nowego obrazu.
Wymaga, aby moduł został utworzony z
mode=MODE_FIRMWARE.
Stałe¶
- OPEN: int¶
Wartość zabezpieczeń dla sieci nieszyfrowanej. Przekaż do argumentu
securitywconnect()/start_ap().
- WPA_PSK: int¶
Wartość zabezpieczeń dla WPA/WPA2 z kluczem współdzielonym. Wartość domyślna dla
connect().
Informacja
Istnieje również wartość zabezpieczeń WPA/WPA2 Enterprise (802.1X). Oprogramowanie układowe udostępnia ją pod nazwą
802_1X, która nie jest poprawnym identyfikatorem Python – uzyskaj do niej dostęp za pomocągetattr(network.WINC, "802_1X").- MODE_STA: int¶
Tryb stacji – połączenie z punktem dostępowym jako klient. Domyślny tryb konstruktora.
- MODE_BSP: int¶
Inicjuje tylko pakiet wsparcia płytki WINC – radio nie jest uruchamiane. Używany w procesie aktualizacji oprogramowania układowego.
- MODE_FIRMWARE: int¶
Tryb aktualizacji oprogramowania układowego. Wymagany przez
fw_dump()ifw_update().