

Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, AWS akan menghentikan dukungan untuk. AWS IoT Greengrass Version 1 Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses sumber daya. AWS IoT Greengrass V1 Untuk informasi lebih lanjut, silakan kunjungi [Migrasi dari AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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

# Konektor Aliran Serial
<a name="serial-stream-connector"></a>

**Awas**  <a name="connectors-extended-life-phase-warning"></a>
Konektor ini telah pindah ke *fase umur yang diperpanjang*, dan AWS IoT Greengrass tidak akan merilis pembaruan yang menyediakan fitur, penyempurnaan pada fitur yang ada, patch keamanan, atau perbaikan bug. Untuk informasi selengkapnya, lihat [AWS IoT Greengrass Version 1 kebijakan pemeliharaan](maintenance-policy.md).

[Konektor](connectors.md) Serial Stream membaca dan menulis ke port serial pada perangkat AWS IoT Greengrass inti.

Konektor ini mendukung dua mode operasi:
+ **Read-On-Demand**. Menerima membaca dan menulis permintaan pada topik MQTT dan menerbitkan respon dari operasi membaca atau status operasi menulis.
+ **Polling-Read**. Membaca dari port serial secara berkala. Mode ini juga mendukung Read-On-Demand permintaan.

**catatan**  
Membaca permintaan terbatas untuk maksimum membaca panjang 63994 byte. Menulis permintaan terbatas untuk panjang data maksimum 128000 byte.

Konektor ini memiliki versi berikut.


| Versi | ARN | 
| --- | --- | 
| 3 | `arn:aws:greengrass:region::/connectors/SerialStream/versions/3` | 
| 2 | `arn:aws:greengrass:region::/connectors/SerialStream/versions/2` | 
| 1 | `arn:aws:greengrass:region::/connectors/SerialStream/versions/1` | 

Untuk informasi tentang perubahan versi, lihat [Changelog](#serial-stream-connector-changelog).

## Persyaratan
<a name="serial-stream-connector-req"></a>

Konektor ini memiliki persyaratan sebagai berikut:

------
#### [ Version 3 ]
+ <a name="conn-req-ggc-v1.9.3"></a>AWS IoT Greengrass Perangkat lunak inti v1.9.3 atau yang lebih baru.
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python](https://www.python.org/) versi 3.7 atau 3.8 diinstal pada perangkat core dan ditambahkan ke variabel lingkungan PATH.
**catatan**  <a name="use-runtime-py3.8"></a>
Untuk menggunakan Python 3.8, jalankan perintah berikut untuk membuat link simbolik dari folder instalasi default Python 3.7 ke binari Python 3.8 yang diinstal.  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
Ini mengonfigurasi perangkat Anda untuk memenuhi persyaratan Python untuk AWS IoT Greengrass.
+ <a name="conn-serial-stream-req-serial-port-resource"></a>Sebuah [sumber daya perangkat lokal](access-local-resources.md) dalam grup Greengrass yang menunjuk ke port serial target.
**catatan**  
Sebelum Anda men-deploy konektor ini, kami rekomendasikan agar Anda mengatur port serial dan memverifikasi bahwa Anda dapat membaca dan menulis untuk itu. 

------
#### [ Versions 1 - 2 ]
+ <a name="conn-req-ggc-v1.7.0"></a>AWS IoT Greengrass Perangkat lunak inti v1.7 atau yang lebih baru.
+ [Python](https://www.python.org/) versi 2.7 diinstal pada perangkat core dan ditambahkan ke variabel lingkungan PATH.
+ <a name="conn-serial-stream-req-serial-port-resource"></a>Sebuah [sumber daya perangkat lokal](access-local-resources.md) dalam grup Greengrass yang menunjuk ke port serial target.
**catatan**  
Sebelum Anda men-deploy konektor ini, kami rekomendasikan agar Anda mengatur port serial dan memverifikasi bahwa Anda dapat membaca dan menulis untuk itu. 

------

## Parameter Konektor
<a name="serial-stream-connector-param"></a>

Konektor ini menyediakan parameter berikut:

`BaudRate`  
Tingkat baud dari koneksi serial.  
Nama tampilan di AWS IoT konsol: **Baud rate**  
Wajib: `true`  
Jenis: `string`  
Nilai yang valid: `110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200, 230400`  
Pola yang valid: `^110$|^300$|^600$|^1200$|^2400$|^4800$|^9600$|^14400$|^19200$|^28800$|^38400$|^56000$|^57600$|^115200$|^230400$`

`Timeout`  
Timeout (dalam detik) untuk operasi membaca.  
Nama tampilan di AWS IoT konsol: **Timeout**  
Wajib: `true`  
Jenis: `string`  
Nilai yang valid: `1 - 59`  
Pola yang valid: `^([1-9]|[1-5][0-9])$`

`SerialPort`  
Jalur absolut ke port serial fisik pada perangkat. Ini adalah jalur sumber yang ditentukan untuk sumber daya perangkat lokal.  
Nama tampilan di AWS IoT konsol: **Port serial**  
Wajib: `true`  
Jenis: `string`  
Pola yang valid: `[/a-zA-Z0-9_-]+`

`SerialPort-ResourceId`  
ID sumber daya perangkat lokal yang mewakili port serial fisik.  
Konektor ini diberikan akses baca-tulis ke sumber daya.
Nama tampilan di AWS IoT konsol: **Sumber daya port serial**  
Wajib: `true`  
Jenis: `string`  
Pola yang valid: `[a-zA-Z0-9_-]+`

`PollingRead`  
Mengatur mode baca: Polling-Read atau. Read-On-Demand  
+ Untuk mode Polling-Read, tentukan `true`. Di mode ini, properti `PollingInterval`, `PollingReadType`, dan `PollingReadLength` diperlukan.
+ Untuk Read-On-Demand mode, tentukan`false`. Di mode ini, nilai jenis dan panjang ditentukan dalam permintaan baca.
Nama tampilan di AWS IoT konsol: **Mode Baca**  
Wajib: `true`  
Jenis: `string`  
Nilai yang valid: `true, false`  
Pola yang valid: `^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`PollingReadLength`  
Panjang data (dalam byte) untuk membaca dalam setiap operasi polling membaca. Ini hanya berlaku ketika menggunakan mode Polling-Read.  
Nama tampilan di AWS IoT konsol: Panjang **baca polling**  
Diperlukan:`false`. Properti ini diperlukan ketika `PollingRead` adalah `true`.  
Tipe: `string`  
Pola yang valid: `^(|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-2][0-9]{3}|63[0-8][0-9]{2}|639[0-8][0-9]|6399[0-4])$`

`PollingReadInterval`  
Interval (dalam detik) dalam mana polling baca berlangsung. Ini hanya berlaku ketika menggunakan mode Polling-Read.  
Nama tampilan di AWS IoT konsol: Interval **baca polling**  
Diperlukan:`false`. Properti ini diperlukan ketika `PollingRead` adalah `true`.  
Tipe: `string`  
Nilai yang valid: 1 - 999  
Pola yang valid: `^(|[1-9]|[1-9][0-9]|[1-9][0-9][0-9])$`

`PollingReadType`  
Jenis data yang thread polling membaca. Ini hanya berlaku ketika menggunakan mode Polling-Read.  
Nama tampilan di AWS IoT konsol: Jenis **baca polling**  
Diperlukan:`false`. Properti ini diperlukan ketika `PollingRead` adalah `true`.  
Tipe: `string`  
Nilai yang valid: `ascii, hex`  
Pola yang valid: `^(|[Aa][Ss][Cc][Ii][Ii]|[Hh][Ee][Xx])$`

`RtsCts`  
Mengindikasikan apakah akan mengaktifkan kontrol aliran RTS/CTS. Nilai default-nya adalah `false`. Untuk informasi lebih lanjut, lihat [RTS, CTS, dan RTR](https://en.wikipedia.org/wiki/RS-232#RTS,_CTS,_and_RTR).   
Nama tampilan di AWS IoT konsol: Kontrol aliran **RTS/CTS**  
Wajib: `false`  
Jenis: `string`  
Nilai yang valid: `true, false`  
Pola yang valid: `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`XonXoff`  
Mengindikasikan apakah akan mengaktifkan kontrol aliran perangkat lunak. Nilai default-nya adalah `false`. Untuk informasi lebih lanjut, lihat [Kontrol aliran perangkat lunak](https://en.wikipedia.org/wiki/Software_flow_control).  
Nama tampilan di AWS IoT konsol: **Kontrol aliran perangkat lunak**  
Wajib: `false`  
Jenis: `string`  
Nilai yang valid: `true, false`  
Pola yang valid: `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`Parity`  
Paritas dari port serial. Nilai default-nya adalah `N`. Untuk informasi lebih lanjut, lihat [Paritas](https://en.wikipedia.org/wiki/Serial_port#Parity).   
Nama tampilan di AWS IoT konsol: **Paritas port serial**  
Wajib: `false`  
Jenis: `string`  
Nilai yang valid: `N, E, O, S, M`  
Pola yang valid: `^(|[NEOSMneosm])$`

### Buat Contoh Konektor (AWS CLI)
<a name="serial-stream-connector-create"></a>

Perintah CLI berikut membuat `ConnectorDefinition` dengan versi awal yang berisi konektor Aliran Serial. Ini mengonfigurasi konektor untuk mode Polling-Read.

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MySerialStreamConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/SerialStream/versions/3",
            "Parameters": {
                "BaudRate" : "9600",
                "Timeout" : "25",
                "SerialPort" : "/dev/serial1",
                "SerialPort-ResourceId" : "my-serial-port-resource",
                "PollingRead" : "true",
                "PollingReadLength" : "30",
                "PollingReadInterval" : "30",
                "PollingReadType" : "hex"
            }
        }
    ]
}'
```

Di AWS IoT Greengrass konsol, Anda dapat menambahkan konektor dari halaman **Konektor** grup. Untuk informasi selengkapnya, lihat [Memulai dengan konektor Greengrass (konsol)](connectors-console.md).

## Data input
<a name="serial-stream-connector-data-input"></a>

Konektor ini menerima membaca atau menulis permintaan untuk port serial pada dua topik MQTT. Pesan input harus dalam format JSON.
+ Baca permintaan pada topik `serial/+/read/#` ini.
+ Menulis permintaan pada `serial/+/write/#` topik.

Untuk menerbitkan topik ini, ganti `+` wildcard dengan core nama sesuatu dan `#` wildcard dengan jalan ke port serial. Sebagai contoh:

```
serial/core-thing-name/read/dev/serial-port
```

**Filter topik:** `serial/+/read/#`  
Gunakan topik ini untuk mengirim permintaan baca sesuai permintaan ke pin serial. Membaca permintaan terbatas untuk maksimum membaca panjang 63994 byte.    
**Properti pesan**    
`readLength`  
Panjang data untuk dibaca dari port serial.  
Wajib: `true`  
Jenis: `string`  
Pola yang valid: `^[1-9][0-9]*$`  
`type`  
Jenis data untuk dibaca.  
Wajib: `true`  
Jenis: `string`  
Nilai yang valid: `ascii, hex`  
Pola yang valid: `(?i)^(ascii|hex)$`  
`id`  
ID arbitrer untuk permintaan. Properti ini digunakan untuk memetakan permintaan input untuk respons output.  
Wajib: `false`  
Jenis: `string`  
Pola yang valid: `.+`  
**Contoh masukan**  

```
{
    "readLength": "30",
    "type": "ascii",
    "id": "abc123"
}
```

**Filter topik:** `serial/+/write/#`  
Gunakan topik ini untuk mengirim permintaan tulis ke pin serial. Menulis permintaan terbatas untuk panjang data maksimum 128000 byte.    
**Properti pesan**    
`data`  
String untuk menulis ke port serial.  
Wajib: `true`  
Jenis: `string`  
Pola yang valid: `^[1-9][0-9]*$`  
`type`  
Jenis data untuk dibaca.  
Wajib: `true`  
Jenis: `string`  
Nilai yang valid: `ascii, hex`  
Pola yang valid: `^(ascii|hex|ASCII|HEX)$`  
`id`  
ID arbitrer untuk permintaan. Properti ini digunakan untuk memetakan permintaan input untuk respons output.  
Wajib: `false`  
Jenis: `string`  
Pola yang valid: `.+`  
**Contoh masukan: permintaan ASCII**  

```
{
    "data": "random serial data",
    "type": "ascii",
    "id": "abc123"
}
```  
**Contoh masukan: permintaan hex**  

```
{
    "data": "base64 encoded data",
    "type": "hex",
    "id": "abc123"
}
```

## Data output
<a name="serial-stream-connector-data-output"></a>

Konektor menerbitkan data output pada dua topik:
+ Informasi status dari konektor pada `serial/+/status/#` topik.
+ Respon dari permintaan baca pada `serial/+/read_response/#` topik.

Ketika menerbitkan topik ini, konektor menggantikan `+` wildcard dengan core nama sesuatu dan `#` wildcard dengan jalur ke port serial. Sebagai contoh:

```
serial/core-thing-name/status/dev/serial-port
```

**Filter topik:** `serial/+/status/#`  
Gunakan topik ini untuk mendengarkan status permintaan baca dan tulis. Jika sebuah `id` properti termasuk permintaan, itu dikembalikan dalam respon.    
**Contoh keluaran: Sukses**  

```
{
    "response": {
        "status": "success"
    },
    "id": "abc123"
}
```  
**Contoh keluaran: Kegagalan**  
Sebuah respon kegagalan mencakup sebuah `error_message` properti yang menjelaskan kesalahan atau timeout ditemui ketika melakukan operasi membaca atau menulis.  

```
{
    "response": {
        "status": "fail",
        "error_message": "Could not write to port"
    },
    "id": "abc123"
}
```

**Filter topik:** `serial/+/read_response/#`  
Gunakan topik ini untuk menerima data respon dari operasi baca. Data respon Base64 dikodekan jika jenis `hex`.    
**Contoh keluaran**  

```
{
    "data": "output of serial read operation"
    "id": "abc123"
}
```

## Contoh Penggunaan
<a name="serial-stream-connector-usage"></a>

<a name="connectors-setup-intro"></a>Gunakan langkah-langkah tingkat tinggi berikut untuk mengatur contoh fungsi Lambda Python 3.7 yang dapat Anda gunakan untuk mencoba konektor.

**catatan**  <a name="connectors-setup-get-started-topics"></a>
Jika Anda menggunakan waktu aktif Python lainnya, Anda dapat membuat symlink dari Python3.x ke Python 3.7.
Topik [Memulai dengan konektor (konsol)](connectors-console.md) dan [Memulai dengan konektor (CLI)](connectors-cli.md) berisi langkah-langkah terperinci yang menunjukkan cara mengonfigurasi dan men-deploy contoh konektor Notifikasi Twilio.

1. Pastikan Anda memenuhi [persyaratan](#serial-stream-connector-req) untuk konektor.

1. <a name="connectors-setup-function"></a>Buat dan terbitkan fungsi Lambda yang mengirimkan data input ke konektor.

   Simpan [kode contoh](#serial-stream-connector-usage-example) sebagai file PY. <a name="connectors-setup-function-sdk"></a>Unduh dan unzip [AWS IoT Greengrass Core SDK for Python](lambda-functions.md#lambda-sdks-core). Kemudian, buat paket zip yang berisi file PY dan folder `greengrasssdk` dalam tingkat root. Paket zip ini adalah paket deployment yang Anda unggah ke AWS Lambda.

   <a name="connectors-setup-function-publish"></a>Setelah Anda membuat fungsi Lambda Python 3.7, terbitkankan versi fungsi dan buat alias.

1. Konfigurasikan grup Greengrass Anda.

   1. <a name="connectors-setup-gg-function"></a>Tambahkan fungsi Lambda dengan aliasnya (direkomendasikan). Konfigurasikan siklus hidup Lambda sebagai berumur panjang (atau `"Pinned": true` dalam CLI).

   1. <a name="connectors-setup-device-resource"></a>Tambahkan sumber daya perangkat lokal yang diperlukan dan berikan akses baca/tulis ke fungsi Lambda.

   1. Tambahkan konektor ke grup Anda dan konfigurasikan [parameter](#serial-stream-connector-param).

   1. Tambahkan langganan ke grup yang memungkinkan konektor untuk menerima [data input](#serial-stream-connector-data-input) dan kirim [data output](#serial-stream-connector-data-output) pada filter topik yang didukung.
      + <a name="connectors-setup-subscription-input-data"></a>Atur fungsi Lambda sebagai sumber, konektor sebagai target, dan gunakan filter topik input yang mendukung.
      + <a name="connectors-setup-subscription-output-data"></a>Atur konektor sebagai sumber, AWS IoT Core sebagai target, dan gunakan filter topik input yang mendukung. Anda menggunakan langganan ini untuk melihat pesan status di AWS IoT konsol.

1. <a name="connectors-setup-deploy-group"></a>Men-deploy grup.

1. <a name="connectors-setup-test-sub"></a>Di AWS IoT konsol, pada halaman **Uji**, berlangganan topik data keluaran untuk melihat pesan status dari konektor. Contoh fungsi Lambda yang berumur panjang dan mulai mengirim pesan segera setelah grup dalam-deploy.

   Setelah selesai pengujian, Anda dapat mengatur siklus hidup Lambda ke sesuai permintaan (atau `"Pinned": false` dalam CLI) dan men-deploy grup. Ini menghentikan fungsi dari mengirim pesan.

### Contoh
<a name="serial-stream-connector-usage-example"></a>

Contoh fungsi Lambda berikut mengirimkan pesan input ke konektor.

```
import greengrasssdk
import json

TOPIC_REQUEST = 'serial/CORE_THING_NAME/write/dev/serial1'

# Creating a greengrass core sdk client
iot_client = greengrasssdk.client('iot-data')

def create_serial_stream_request():
	request = {
		"data": "TEST",
		"type": "ascii",
		"id": "abc123"
	}
	return request

def publish_basic_request():
	iot_client.publish(payload=json.dumps(create_serial_stream_request()), topic=TOPIC_REQUEST)

publish_basic_request()

def lambda_handler(event, context):
	return
```

## Lisensi
<a name="serial-stream-connector-license"></a>

Konektor Aliran Serial mencakup perangkat lunak/lisensi pihak ketiga berikut ini:
+ [pyserial](https://github.com/pyserial/pyserial)/BSD

Konektor ini dirilis di bawah [Perjanjian Lisensi Perangkat lunak core Greengrass](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

## Changelog
<a name="serial-stream-connector-changelog"></a>

Tabel berikut menjelaskan perubahan dalam setiap versi konektor.


| Versi | Perubahan | 
| --- | --- | 
| 3 | <a name="upgrade-runtime-py3.7"></a>Memperbarui waktu aktif Lambda untuk Python 3.7, yang mengubah persyaratan waktu aktif. | 
| 2 | Konektor ARN yang diperbarui untuk Wilayah AWS dukungan. | 
| 1 | Pelepasan awal.  | 

<a name="one-conn-version"></a>Sebuah grup Greengrass dapat berisi hanya satu versi konektor pada suatu waktu. Untuk informasi lebih lanjut tentang pembaruan versi konektor, lihat [Versi upgrade konektor](connectors.md#upgrade-connector-versions).

## Lihat juga
<a name="serial-stream-connector-see-also"></a>
+ [Integrasikan dengan layanan dan protokol menggunakan konektor Greengrass](connectors.md)
+ [Memulai dengan konektor Greengrass (konsol)](connectors-console.md)
+ [Memulai dengan konektor Greengrass (CLI)](connectors-cli.md)