Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Perpustakaan Wi-Fi
penting
Pustaka ini di-host di RTOS repositori Bebas Amazon yang tidak digunakan lagi. Kami menyarankan Anda mulai di sini ketika Anda membuat proyek baru. Jika Anda sudah memiliki RTOS proyek Gratis yang ada berdasarkan repositori Amazon-Free RTOS yang sekarang tidak digunakan lagi, lihat. Panduan Migrasi Repositori RTOS Github Bebas Amazon
Gambaran Umum
Pustaka RTOS Wi-Fi Gratis mengabstraksi implementasi Wi-Fi khusus port menjadi hal umum API yang menyederhanakan pengembangan aplikasi dan porting untuk semua papan berkualifikasi Gratis RTOS dengan kemampuan Wi-Fi. Dengan menggunakan aplikasi umum iniAPI, dapat berkomunikasi dengan tumpukan nirkabel tingkat rendah mereka melalui antarmuka umum.
Dependensi dan persyaratan
Perpustakaan RTOS Wi-Fi Gratis memerlukan TCP inti Gratis RTOS +
Fitur
Pustaka Wi-Fi mencakup fitur-fitur berikut:
-
Support untukWEP,WPA,WPA2, dan WPA3 otentikasi
-
Pemindaian Titik Akses
-
Manajemen daya
-
Profil jaringan
Untuk informasi selengkapnya tentang fitur perpustakaan Wi-Fi, lihat di bawah.
Mode Wi-Fi
Perangkat Wi-Fi dapat berada dalam salah satu dari tiga mode: Station, Access Point, atau P2P. Anda bisa mendapatkan mode perangkat Wi-Fi saat ini dengan meneleponWIFI_GetMode
. Anda dapat mengatur mode wi-fi perangkat dengan meneleponWIFI_SetMode
. Beralih mode dengan memanggil WIFI_SetMode
memutus perangkat, jika sudah terhubung ke jaringan.
- Mode stasiun
-
Setel perangkat Anda ke mode Stasiun untuk menghubungkan papan ke titik akses yang ada.
- Mode Titik Akses (AP)
-
Setel perangkat Anda ke mode AP untuk menjadikan perangkat sebagai titik akses bagi perangkat lain untuk terhubung. Saat perangkat Anda dalam mode AP, Anda dapat menghubungkan perangkat lain ke RTOS perangkat Gratis dan mengonfigurasi kredensional Wi-Fi baru. Untuk mengkonfigurasi mode AP, panggil
WIFI_ConfigureAP
. Untuk menempatkan perangkat Anda ke mode AP, hubungiWIFI_StartAP
. Untuk mematikan mode AP, hubungiWIFI_StopAP
.catatan
RTOSPustaka gratis tidak menyediakan penyediaan Wi-Fi dalam mode AP. Anda harus menyediakan fungsionalitas tambahan, termasuk DHCP dan kemampuan HTTP server, untuk mencapai dukungan penuh mode AP.
- Modus P2P
-
Atur perangkat Anda ke mode P2P untuk memungkinkan beberapa perangkat terhubung satu sama lain secara langsung, tanpa titik akses.
Keamanan
Wi-Fi API mendukungWEP,WPA,WPA2, dan jenis WPA3 keamanan. Saat perangkat dalam mode Stasiun, Anda harus menentukan jenis keamanan jaringan saat memanggil WIFI_ConnectAP
fungsi. Saat perangkat dalam mode AP, perangkat dapat dikonfigurasi untuk menggunakan salah satu jenis keamanan yang didukung:
-
eWiFiSecurityOpen
-
eWiFiSecurityWEP
-
eWiFiSecurityWPA
-
eWiFiSecurityWPA2
-
eWiFiSecurityWPA3
Memindai dan menghubungkan
Untuk memindai titik akses terdekat, atur perangkat Anda ke mode Stasiun, dan panggil WIFI_Scan
fungsinya. Jika Anda menemukan jaringan yang diinginkan dalam pemindaian, Anda dapat terhubung ke jaringan dengan menelepon WIFI_ConnectAP
dan memberikan kredenal jaringan. Anda dapat memutuskan sambungan perangkat Wi-Fi dari jaringan dengan meneleponWIFI_Disconnect
. Untuk informasi selengkapnya tentang pemindaian dan penghubung, lihat Contoh penggunaan danReferensi API.
Manajemen daya
Perangkat Wi-Fi yang berbeda memiliki kebutuhan daya yang berbeda, tergantung pada aplikasi dan sumber daya yang tersedia. Perangkat mungkin selalu dinyalakan untuk mengurangi latensi atau mungkin terhubung sebentar-sebentar dan beralih ke mode daya rendah saat Wi-Fi tidak diperlukan. Antarmuka API mendukung berbagai mode manajemen daya seperti selalu aktif, daya rendah, dan mode normal. Anda mengatur mode daya untuk perangkat menggunakan WIFI_SetPMMode
fungsi tersebut. Anda bisa mendapatkan mode daya perangkat saat ini dengan memanggil WIFI_GetPMMode
fungsi tersebut.
Profil jaringan
Pustaka Wi-Fi memungkinkan Anda menyimpan profil jaringan di memori non-volatile perangkat Anda. Hal ini memungkinkan Anda untuk menyimpan pengaturan jaringan sehingga mereka dapat diambil ketika perangkat terhubung kembali ke jaringan Wi-Fi, menghapus kebutuhan untuk menyediakan perangkat lagi setelah mereka telah terhubung ke jaringan. WIFI_NetworkAdd
menambahkan profil jaringan. WIFI_NetworkGet
mengambil profil jaringan. WIFI_NetworkDel
menghapus profil jaringan. Jumlah profil yang dapat Anda simpan tergantung pada platform.
Konfigurasi
Untuk menggunakan pustaka Wi-Fi, Anda perlu menentukan beberapa pengidentifikasi dalam file konfigurasi. Untuk informasi tentang pengidentifikasi ini, lihat. Referensi API
catatan
Pustaka tidak menyertakan file konfigurasi yang diperlukan. Anda harus membuat satu. Saat membuat file konfigurasi Anda, pastikan untuk menyertakan pengidentifikasi konfigurasi khusus papan apa pun yang dibutuhkan papan Anda.
Inisialisasi
Sebelum Anda menggunakan pustaka Wi-Fi, Anda perlu menginisialisasi beberapa komponen khusus papan, selain komponen Gratis. RTOS Menggunakan vendors/
file sebagai template untuk inisialisasi, lakukan hal berikut:vendor
/boards/board
/aws_demos/application_code/main.c
-
Hapus contoh logika koneksi Wi-Fi
main.c
jika aplikasi Anda menangani koneksi Wi-Fi. Ganti panggilanDEMO_RUNNER_RunDemos()
fungsi berikut:if( SYSTEM_Init() == pdPASS ) { ... DEMO_RUNNER_RunDemos(); ... }
Dengan panggilan ke aplikasi Anda sendiri:
if( SYSTEM_Init() == pdPASS ) { ... // This function should create any tasks // that your application requires to run. YOUR_APP_FUNCTION(); ... }
-
Panggilan
WIFI_On()
untuk menginisialisasi dan menyalakan chip Wi-Fi Anda.catatan
Beberapa papan mungkin memerlukan inisialisasi perangkat keras tambahan.
-
Lewati
WIFINetworkParams_t
struktur yang dikonfigurasiWIFI_ConnectAP()
untuk menghubungkan papan Anda ke jaringan Wi-Fi yang tersedia. Untuk informasi lebih lanjut tentangWIFINetworkParams_t
struktur, lihat Contoh penggunaan danReferensi API.
Referensi API
Untuk referensi selengkapnya, lihat API APIReferensi Wi-Fi.
Contoh penggunaan
Menghubungkan ke AP yang dikenal
#define clientcredentialWIFI_SSID "MyNetwork" #define clientcredentialWIFI_PASSWORD "hunter2" WIFINetworkParams_t xNetworkParams; WIFIReturnCode_t xWifiStatus; xWifiStatus = WIFI_On(); // Turn on Wi-Fi module // Check that Wi-Fi initialization was successful if( xWifiStatus == eWiFiSuccess ) { configPRINT( ( "WiFi library initialized.\n") ); } else { configPRINT( ( "WiFi library failed to initialize.\n" ) ); // Handle module init failure } /* Setup parameters. */ xNetworkParams.pcSSID = clientcredentialWIFI_SSID; xNetworkParams.ucSSIDLength = sizeof( clientcredentialWIFI_SSID ); xNetworkParams.pcPassword = clientcredentialWIFI_PASSWORD; xNetworkParams.ucPasswordLength = sizeof( clientcredentialWIFI_PASSWORD ); xNetworkParams.xSecurity = eWiFiSecurityWPA2; // Connect! xWifiStatus = WIFI_ConnectAP( &( xNetworkParams ) ); if( xWifiStatus == eWiFiSuccess ) { configPRINT( ( "WiFi Connected to AP.\n" ) ); // IP Stack will receive a network-up event on success } else { configPRINT( ( "WiFi failed to connect to AP.\n" ) ); // Handle connection failure }
Memindai terdekat APs
WIFINetworkParams_t xNetworkParams; WIFIReturnCode_t xWifiStatus; configPRINT( ("Turning on wifi...\n") ); xWifiStatus = WIFI_On(); configPRINT( ("Checking status...\n") ); if( xWifiStatus == eWiFiSuccess ) { configPRINT( ("WiFi module initialized.\n") ); } else { configPRINTF( ("WiFi module failed to initialize.\n" ) ); // Handle module init failure } WIFI_SetMode(eWiFiModeStation); /* Some boards might require additional initialization steps to use the Wi-Fi library. */ while (1) { configPRINT( ("Starting scan\n") ); const uint8_t ucNumNetworks = 12; //Get 12 scan results WIFIScanResult_t xScanResults[ ucNumNetworks ]; xWifiStatus = WIFI_Scan( xScanResults, ucNumNetworks ); // Initiate scan configPRINT( ("Scan started\n") ); // For each scan result, print out the SSID and RSSI if ( xWifiStatus == eWiFiSuccess ) { configPRINT( ("Scan success\n") ); for ( uint8_t i=0; i<ucNumNetworks; i++ ) { configPRINTF( ("%s : %d \n", xScanResults[i].cSSID, xScanResults[i].cRSSI) ); } } else { configPRINTF( ("Scan failed, status code: %d\n", (int)xWifiStatus) ); } vTaskDelay(200); }
Porting
iot_wifi.c
Implementasi perlu mengimplementasikan fungsi yang didefinisikan dalamiot_wifi.h
. Paling tidak, implementasi perlu kembali eWiFiNotSupported
untuk fungsi yang tidak penting atau tidak didukung.
Untuk informasi selengkapnya tentang porting pustaka Wi-Fi, lihat Porting Perpustakaan Wi-Fi di Panduan RTOS Porting Gratis.