

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Wi-Fi perpustakaan
<a name="freertos-wifi"></a>

**penting**  <a name="deprecation-message-library"></a>
Pustaka ini di-host di Amazon-FreeRTOS repositori yang tidak digunakan lagi. Kami menyarankan Anda [mulai di sini](freertos-getting-started-modular.md) ketika Anda membuat proyek baru. Jika Anda sudah memiliki proyek FreeRTOS yang ada berdasarkan repositori yang sekarang tidak digunakan lagi, Amazon-FreeRTOS lihat. [Amazon-FreeRTOS Panduan Migrasi Repositori Github](github-repo-migration.md)

## Ikhtisar
<a name="freertos-wifi-overview"></a>

Pustaka [Wi-Fi](https://docs.aws.amazon.com/freertos/latest/lib-ref/html2/wifi/index.html)FreeRTOS mengabstraksi implementasi Wi-Fi khusus port ke dalam API umum yang menyederhanakan pengembangan aplikasi dan porting untuk semua papan dengan kemampuan. FreeRTOS-qualified Wi-Fi Dengan menggunakan API umum ini, aplikasi dapat berkomunikasi dengan tumpukan nirkabel tingkat rendah mereka melalui antarmuka umum.

## Ketergantungan dan persyaratan
<a name="freertos-wifi-dependencies"></a>

[Pustaka FreeRTOS membutuhkan Wi-Fi inti FreerTos\+TCP.](https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/index.html)

## Fitur
<a name="freertos-wifi-features"></a>

 Wi-Fi Perpustakaan mencakup fitur-fitur berikut:
+ Support untuk otentikasi WEP, WPA, WPA2, dan WPA3
+ Pemindaian Titik Akses
+ Manajemen daya
+ Profil jaringan

Untuk informasi lebih lanjut tentang fitur Wi-Fi perpustakaan, lihat di bawah.

### Wi-Fi modus
<a name="freertos-wifi-setup"></a>

Wi-Fi perangkat dapat berada dalam salah satu dari tiga mode: Station, Access Point, atau P2P. Anda bisa mendapatkan mode Wi-Fi perangkat saat ini dengan menelepon`WIFI_GetMode`. Anda dapat mengatur mode wi-fi perangkat dengan menelepon`WIFI_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 perangkat FreeRTOS Anda dan mengonfigurasi kredensi baru. Wi-Fi Untuk mengkonfigurasi mode AP, panggil`WIFI_ConfigureAP`. Untuk menempatkan perangkat Anda ke mode AP, hubungi`WIFI_StartAP`. Untuk mematikan mode AP, hubungi`WIFI_StopAP`.  
Pustaka FreeRTOS tidak Wi-Fi menyediakan penyediaan dalam mode AP. Anda harus menyediakan fungsionalitas tambahan, termasuk kemampuan server DHCP dan HTTP, 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
<a name="freertos-wifi-security"></a>

 Wi-Fi API mendukung jenis keamanan WEP, WPA, WPA2, dan WPA3. 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
<a name="freertos-wifi-connection"></a>

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 Wi-Fi perangkat dari jaringan dengan menelepon`WIFI_Disconnect`. Untuk informasi selengkapnya tentang pemindaian dan penghubung, lihat [Contoh penggunaan](#freertos-wifi-example) dan[Referensi API](#freertos-wifi-api).

### Manajemen daya
<a name="freertos-wifi-power-management"></a>

 Wi-Fi Perangkat 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. API antarmuka 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
<a name="freertos-wifi-profiles"></a>

 Wi-Fi Pustaka memungkinkan Anda untuk menyimpan profil jaringan dalam memori non-volatile perangkat Anda. Hal ini memungkinkan Anda untuk menyimpan pengaturan jaringan sehingga mereka dapat diambil ketika perangkat terhubung kembali ke Wi-Fi jaringan, 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
<a name="freertos-wifi-config"></a>

Untuk menggunakan Wi-Fi pustaka, Anda perlu menentukan beberapa pengidentifikasi dalam file konfigurasi. Untuk informasi tentang pengidentifikasi ini, lihat. [Referensi API](#freertos-wifi-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
<a name="freertos-wifi-init"></a>

Sebelum Anda menggunakan Wi-Fi perpustakaan, Anda perlu menginisialisasi beberapa komponen khusus papan, selain komponen FreeRTOS. Menggunakan `vendors/{{vendor}}/boards/{{board}}/aws_demos/application_code/main.c` file sebagai template untuk inisialisasi, lakukan hal berikut:

1. Hapus logika Wi-Fi sambungan sampel `main.c` jika aplikasi Anda menangani Wi-Fi koneksi. Ganti panggilan `DEMO_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();
       ...
           }
   ```

1. Panggilan `WIFI_On()` untuk menginisialisasi dan menyalakan Wi-Fi chip Anda.
**catatan**  
Beberapa papan mungkin memerlukan inisialisasi perangkat keras tambahan.

1. Lewati `WIFINetworkParams_t` struktur yang dikonfigurasi `WIFI_ConnectAP()` untuk menghubungkan papan Anda ke Wi-Fi jaringan yang tersedia. Untuk informasi lebih lanjut tentang `WIFINetworkParams_t` struktur, lihat [Contoh penggunaan](#freertos-wifi-example) dan[Referensi API](#freertos-wifi-api).

## Referensi API
<a name="freertos-wifi-api"></a>

Untuk referensi API selengkapnya, lihat [Referensi Wi-Fi API](https://docs.aws.amazon.com/freertos/latest/lib-ref/html2/wifi/index.html).

## Contoh penggunaan
<a name="freertos-wifi-example"></a>

### Menghubungkan ke AP yang dikenal
<a name="w2aac31b9c13c53c21b3"></a>

```
#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 AP terdekat
<a name="w2aac31b9c13c53c21b5"></a>

```
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
<a name="freertos-wifi-porting"></a>

`iot_wifi.c`Implementasi perlu mengimplementasikan fungsi yang didefinisikan dalam`iot_wifi.h`. Paling tidak, implementasi perlu kembali `eWiFiNotSupported` untuk fungsi yang tidak penting atau tidak didukung.

Untuk informasi selengkapnya tentang porting Wi-Fi perpustakaan, lihat [Porting Wi-Fi Perpustakaan di Panduan](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-porting-wifi.html) Porting FreerTOS.