

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

# AWS IoT Greengrass Perpustakaan penemuan
<a name="freertos-lib-gg-connectivity"></a>

**catatan**  <a name="out-of-date-message"></a>
Konten di halaman ini mungkin tidak up-to-date. Silakan merujuk ke [halaman perpustakaan Freertos.org](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries) untuk pembaruan terbaru.

## Gambaran Umum
<a name="freertos-gg-overview"></a>

Pustaka [AWS IoT Greengrass Discovery](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__greengrass__discovery_8h.html) digunakan oleh perangkat mikrokontroler Anda untuk menemukan inti Greengrass di jaringan Anda. Menggunakan AWS IoT Greengrass Discovery APIs, perangkat Anda dapat mengirim pesan ke inti Greengrass setelah menemukan titik akhir inti.

## Dependensi dan persyaratan
<a name="freertos-gg-dependencies"></a>

Untuk menggunakan pustaka Greengrass Discovery, Anda harus membuat sesuatu, termasuk sertifikat dan AWS IoT kebijakan. Untuk informasi selengkapnya, lihat [AWS IoT Memulai](https://docs.aws.amazon.com/iot/latest/developerguide/iot-gs.html). 

Anda harus menetapkan nilai untuk konstanta berikut dalam `freertos/demos/include/aws_clientcredential.h` file:

**`clientcredentialMQTT_BROKER_ENDPOINT`**  
 AWS IoT Titik akhir Anda.

**`clientcredentialIOT_THING_NAME`**  
Nama benda IoT Anda.

**`clientcredentialWIFI_SSID`**  
SSID untuk jaringan Wi-Fi Anda.

**`clientcredentialWIFI_PASSWORD`**  
Kata sandi Wi-Fi Anda.

**`clientcredentialWIFI_SECURITY`**  
Jenis keamanan yang digunakan oleh jaringan Wi-Fi Anda.

Anda juga harus menetapkan nilai untuk konstanta berikut dalam `freertos/demos/include/aws_clientcredential_keys.h` file:

**`keyCLIENT_CERTIFICATE_PEM`**  
Sertifikat PEM terkait dengan barang Anda.

**`keyCLIENT_PRIVATE_KEY_PEM`**  
Kunci pribadi PEM terkait dengan hal Anda.

Anda harus memiliki grup Greengrass dan perangkat inti yang disiapkan di konsol. Untuk informasi selengkapnya, lihat [Memulai dengan AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/latest/developerguide/).

Meskipun pustaka CoreMQTT tidak diperlukan untuk konektivitas Greengrass, kami sangat menyarankan Anda menginstalnya. Perpustakaan dapat digunakan untuk berkomunikasi dengan inti Greengrass setelah ditemukan.

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

Untuk referensi API selengkapnya, lihat Referensi API [Greengrass](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__greengrass__discovery_8h.html).

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

### Alur kerja Greengrass
<a name="freertos-lib-gg-workflow"></a>

Perangkat MCU memulai proses penemuan dengan meminta dari file JSON AWS IoT yang berisi parameter konektivitas inti Greengrass. Ada dua metode untuk mengambil parameter konektivitas inti Greengrass dari file JSON:
+ Seleksi otomatis berulang melalui semua inti Greengrass yang tercantum dalam file JSON dan terhubung ke yang pertama tersedia. 
+ Pemilihan manual menggunakan informasi `aws_ggd_config.h` untuk terhubung ke inti Greengrass yang ditentukan.

### Cara menggunakan Greengrass API
<a name="freertos-lib-gg-api"></a>

Semua opsi konfigurasi default untuk Greengrass API didefinisikan dalam. `aws_ggd_config_defaults.h`

Jika hanya ada satu inti Greengrass, `GGD_GetGGCIPandCertificate` hubungi untuk meminta file JSON dengan informasi konektivitas inti Greengrass. `GGD_GetGGCIPandCertificate`Kapan dikembalikan, `pcBuffer` parameter berisi teks file JSON. `pxHostAddressData`Parameter berisi alamat IP dan port inti Greengrass yang dapat Anda sambungkan.

Untuk opsi penyesuaian lainnya, seperti mengalokasikan sertifikat secara dinamis, Anda harus memanggil yang berikut ini: APIs

**`GGD_JSONRequestStart`**  
Membuat permintaan HTTP GET AWS IoT untuk memulai permintaan penemuan untuk menemukan inti Greengrass. `GD_SecureConnect_Send`digunakan untuk mengirim permintaan ke AWS IoT.

**`GGD_JSONRequestGetSize`**  
Mendapat ukuran file JSON dari respons HTTP.

**`GGD_JSONRequestGetFile`**  
Mendapat string objek JSON. `GGD_JSONRequestGetSize`dan `GGD_JSONRequestGetFile` gunakan `GGD_SecureConnect_Read` untuk mendapatkan data JSON dari soket. `GGD_JSONRequestStart`,`GGD_SecureConnect_Send`, `GGD_JSONRequestGetSize` harus dipanggil untuk menerima data JSON dari AWS IoT.

**`GGD_GetIPandCertificateFromJSON`**  
Mengekstrak alamat IP dan sertifikat inti Greengrass dari data JSON. Anda dapat mengaktifkan pemilihan otomatis dengan mengatur `xAutoSelectFlag` ke`True`. Pemilihan otomatis menemukan perangkat inti pertama yang dapat dihubungkan oleh perangkat FreeRTOS Anda. Untuk terhubung ke inti Greengrass, panggil `GGD_SecureConnect_Connect` fungsi, meneruskan alamat IP, port, dan sertifikat perangkat inti. Untuk menggunakan pemilihan manual, atur bidang `HostParameters_t` parameter berikut:    
**`pcGroupName`**  
ID grup Greengrass tempat inti berada. Anda dapat menggunakan perintah `aws greengrass list-groups` CLI untuk menemukan ID grup Greengrass Anda.  
**`pcCoreAddress`**  
ARN dari inti Greengrass yang Anda hubungkan.