class WINC – WiFi shield sürücüsü¶
WINC sınıfı, OpenMV WiFi Shield üzerindeki Atmel WINC1500 802.11 b/g/n WiFi modülünü sürer. OpenMV Cam M4, M7, H7, H7 Plus ve Pure Thermal’da (WiFi shield’in tasarlandığı STM32 kartları) kullanılabilir. Yerleşik WiFi’ye sahip kartlar (OpenMV Cam N6, OpenMV Cam RT1062, Arduino Giga) için bunun yerine WLAN kullanın.
Örnek – bir erişim noktasına bağlanın ve adresi yazdırın:
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())
Örnek – açık bir erişim noktası başlatın ve bir istemci bekleyin:
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))
Kurucular¶
- class network.WINC(mode: int = WINC.MODE_STA) None¶
Bir
WINCsürücü nesnesi oluşturur ve WiFi shield’i açar.mode, modülün başladığı çalışma modunu seçer:WINC.MODE_STA– istasyon / istemci. Bir erişim noktasınaconnect()ile bağlanın. Bu varsayılandır.WINC.MODE_AP– erişim noktası. AP’yistart_ap()ile yapılandırın, ardından istemci bağlantılarını kabul edin.WINC.MODE_P2P– WiFi Direct.WINC.MODE_BSP– yalnızca BSP’yi açar (radyo yok).WINC.MODE_FIRMWARE– aygıt yazılımı (firmware) güncelleme modu;fw_dump()vefw_update()tarafından gerektirilir.
Not
AP modunda WINC1500’ün donanım sınırlamaları vardır:
Aynı anda yalnızca bir istemci bağlanabilir.
Yalnızca
OPENveya WEP güvenliği desteklenir.Bir WiFi modülü aygıt yazılımı (firmware) hatası, istemci bağlantısı kesildiğinde bağlı (bound) tüm soketlerin çalışmayı durdurmasına neden olur. Sunucu soketinde bir zaman aşımı ayarlayın; böylece yeniden açmak için kullanabileceğiniz bir istisna fırlatır.
Yöntemler¶
- active(is_active: bool | None = None) bool¶
WiFi shield’i açar veya kapatır.
Argüman olmadan, geçerli durumu döndürür – shield başlatıldığında ve radyo açık olduğunda
True, aksi takdirdeFalse.active(True), WINC1500 aygıt yazılımı (firmware) el sıkışmasını SPI üzerinden gerçekleştirir ve radyoyu yapılandırılmışmodeile açar. Arayüz zaten etkinse bir işlem yapmaz.connect(), henüz çağrılmamışsa bunu otomatik olarak çağırır; diğer herhangi bir yöntem için (scan(),rssi(),netinfo(), …) önceactive(True)çağrısını yapmanız gerekir.active(False), radyoyu yeniden kapatır (WINC yalnızca BSP moduna düşer) ve SPI pinlerini serbest bırakır.
- connect(ssid: str, key: str | None = None, *, security: int = WINC.WPA_PSK, channel: int = 1) None¶
securitygüvenlik modunu (OPEN,WPA_PSKveya 802.1X sabitlerinden biri) vechannelradyo kanalını kullanarakssidWiFi ağıylakeyparolasıyla ilişkilendirir.securityvechannelyalnızca anahtar sözcüktür.Bağlandıktan sonra TCP/UDP portlarını açmak için
socketmodülünü kullanın.Bu yöntem, ilişkilendirme tamamlanana veya başarısız olana kadar bloke olur.
- config(ssid: str, key: str | None = None, *, security: int = WINC.WPA_PSK, channel: int = 1) None¶
connect()yönteminin diğer adıdır. Diğernetworkarayüzlerindeconfigçağıran kodlarla uyumluluk için sağlanmıştır.
- start_ap(ssid: str, key: str | None = None, *, security: int = WINC.OPEN, channel: int = 1) None¶
Nesne
mode=MODE_APile oluşturulduktan sonra erişim noktasını yapılandırmak ve başlatmak için kullanılanconnect()yönteminin diğer adıdır. AP yalnızcaOPENveya WEP güvenliğini destekler; WEP kullanılıyorsakeygereklidir.
- disconnect() None¶
STA modunda, o anda ilişkilendirilmiş erişim noktasıyla ilişkilendirmeyi kaldırır. Shield etkin kalır; yeniden ilişkilendirmek için
connect()çağrısını yapın. O anda ilişkilendirilmiş değilse işlem yapmaz.
- isconnected() bool¶
STA modunda, bir erişim noktasıyla ilişkilendirildiğinde ve bir IPv4 adresi alındığında (DHCP veya
ifconfig()aracılığıyla)Truedöndürür. Hâlâ kimlik doğrulama / ilişkilendirme / DHCP aşamasındaykenFalsedöndürür.
- connected_sta() List[str]¶
AP modunda, o anda bağlı olan istemcinin IP adresini içeren bir liste döndürür (veya bağlı istemci yoksa boş bir liste).
- wait_for_sta(timeout: int | None) List[str]¶
AP modunda, bir istemci bağlanana kadar bloke olur ve istemcinin IP adresini içeren bir liste döndürür.
timeoutmilisaniye cinsinden maksimum bekleme süresidir; süresiz beklemek içinNonegeçirin.
- ifconfig(config: Tuple[str, str, str, str] | None = None) Tuple[str, str, str, str]¶
IPv4 arayüz parametrelerini alır veya ayarlar. 4’lü demet
(ip, subnet, gateway, dns)değerlerini noktalı-dörtlü dizeler olarak içerir.Argümansız çağrıldığında: geçerli yapılandırmayı döndürür.
Bir 4’lü demet ile çağrıldığında: DHCP ile edinilenin yerine statik bir IP yapılandırması ayarlar.
Örnek – bağlanmadan önce statik bir IP sabitleyin:
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)
Not
WINC, modernAbstractNIC.ipconfig()API’sini uygulamaz; buradaifconfig()kullanın.
- netinfo() Tuple[int, int, str, str, str]¶
Geçerli ilişkilendirmeyi tanımlayan bir 5’li demet döndürür:
[0]RSSI, bir tam sayı olarak (dBm).[1]Güvenlik modu – güvenlik sabitlerinden biri.[2]SSID dizesi.[3]BSSID, bir"XX:XX:XX:XX:XX:XX"MAC dizesi olarak.[4]IPv4 adresi, noktalı-dörtlü bir dize olarak.
- scan() List[Tuple[str, str, int, int, int, int]]¶
Yakındaki erişim noktalarını tarar. 6’lı demetlerden oluşan bir liste döndürür:
[0]SSID dizesi.[1]BSSID, bir"XX:XX:XX:XX:XX:XX"MAC dizesi olarak.[2]Kanal numarası.[3]RSSI, dBm cinsinden.[4]Güvenlik modu – güvenlik sabitlerinden biri.[5]Ayrılmış (her zaman1).
Bir ağla önceden ilişkilendirilmeden çağrılabilir.
- rssi() int¶
O anda ilişkilendirilmiş erişim noktasının RSSI değerini dBm cinsinden döndürür. Kabaca:
-30mükemmel,-67akış için iyi,-80sınırda,-90ve altı kullanılamaz. Yalnızca STA modunda veisconnected()Trueiken anlamlıdır.
- fw_version() Tuple[int, int, int, int, int, int, int]¶
WINC1500 aygıt yazılımı (firmware) ve sürücü sürümlerini tanımlayan bir 7’li demet döndürür:
[0]Aygıt yazılımı (firmware) ana sürümü.[1]Aygıt yazılımı (firmware) alt sürümü.[2]Aygıt yazılımı (firmware) yaması.[3]Sürücü ana sürümü.[4]Sürücü alt sürümü.[5]Sürücü yaması.[6]Çip donanım revizyonu.
- fw_dump(path: str) None¶
WINC1500’ün dahili flash belleğini okur ve ortaya çıkan aygıt yazılımı (firmware) görüntüsünü OpenMV’nin dosya sistemindeki
pathkonumundaki dosyaya yazar. Bunufw_update()çağrısından önce o anda yüklü olan görüntüyü yedeklemek için kullanın.Modülün
mode=MODE_FIRMWAREile oluşturulmuş olmasını gerektirir.
- fw_update(path: str) None¶
WINC1500’ün dahili flash belleğini siler ve
pathkonumundaki ikili görüntüyle programlar. Görüntü, OpenMV aygıt yazılımının (firmware) beklediği düzenle eşleşmelidir (genellikle Atmel / Microchip tarafından WINC SDK ile sağlanır).Çağrı, flash bellek programlanıp doğrulanırken birkaç saniye boyunca bloke olur. Çağrı döndükten sonra, WINC1500’ün yeni görüntüden başlaması için OpenMV Cam’in güç döngüsünü yapın.
Modülün
mode=MODE_FIRMWAREile oluşturulmuş olmasını gerektirir.
Sabitler¶
- OPEN: int¶
Şifrelenmemiş bir ağ için güvenlik değeri.
connect()/start_ap()yöntemininsecurityargümanına geçirin.
- WPA_PSK: int¶
Önceden paylaşılan bir anahtarla WPA/WPA2 için güvenlik değeri.
connect()için varsayılandır.
Not
Ayrıca bir WPA/WPA2 Enterprise (802.1X) güvenlik değeri de mevcuttur. Aygıt yazılımı (firmware) bunu
802_1Xadıyla sunar; bu geçerli bir Python tanımlayıcısı değildir –getattr(network.WINC, "802_1X")aracılığıyla erişin.- MODE_STA: int¶
İstasyon modu – bir erişim noktasına istemci olarak bağlanın. Varsayılan kurucu modu.
- MODE_BSP: int¶
Yalnızca WINC kart destek paketini (BSP) başlatır – radyo açılmaz. Aygıt yazılımı (firmware) güncelleme akışı tarafından kullanılır.
- MODE_FIRMWARE: int¶
Aygıt yazılımı (firmware) güncelleme modu.
fw_dump()vefw_update()tarafından gerektirilir.