AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konektor Aliran Serial
Awas
Konektor ini telah pindah kefase kehidupan, danAWS IoT Greengrasstidak akan merilis pembaruan yang menyediakan fitur, penyempurnaan untuk fitur yang ada, patch keamanan, atau perbaikan bug. Untuk informasi selengkapnya, lihat AWS IoT Greengrass Version 1kebijakan pemeliharaan.
Konektor Aliran Serial membaca dan menulis ke port serial pada perangkat AWS IoT Greengrass core.
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 permintaan Read-On-Demand.
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 |
|
2 |
|
1 |
|
Untuk informasi tentang perubahan versi, lihat Changelog.
Persyaratan
Konektor ini memiliki persyaratan sebagai berikut:
Parameter Konektor
Konektor ini menyediakan parameter berikut:
BaudRate
-
Tingkat baud dari koneksi serial.
Nama tampilan diAWS IoTKonsol: Tingkat baud
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 diAWS IoTKonsol: Waktu habis
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 diAWS IoTKonsol: 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.
catatan
Konektor ini diberikan akses baca-tulis ke sumber daya.
Nama tampilan diAWS IoTKonsol: Sumber daya port Serial
Wajib:
true
Jenis:
string
Pola yang valid:
[a-zA-Z0-9_-]+
PollingRead
-
Mengatur modus baca: Polling-Read-Read-On-Demand.
Untuk mode Polling-Read, tentukan
true
. Di mode ini, propertiPollingInterval
,PollingReadType
, danPollingReadLength
diperlukan.Untuk mode Read-On-Demand, tentukan
false
. Di mode ini, nilai jenis dan panjang ditentukan dalam permintaan baca.
Nama tampilan diAWS IoTKonsol: 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 diAWS IoTKonsol: Panjang baca polling
Diperlukan:
false
. Properti ini diperlukan saatPollingRead
adalahtrue
.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 diAWS IoTKonsol: Interval baca
Diperlukan:
false
. Properti ini diperlukan saatPollingRead
adalahtrue
.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 diAWS IoTKonsol: Jenis pemungutan suara
Diperlukan:
false
. Properti ini diperlukan saatPollingRead
adalahtrue
.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. Nama tampilan diAWS IoTKonsol: 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. Nama tampilan diAWS IoTKonsol: 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. Nama tampilan diAWS IoTKonsol: Paritas port Serial
Wajib:
false
Jenis:
string
Nilai yang valid:
N, E, O, S, M
Pola yang valid:
^(|[NEOSMneosm])$
Buat Contoh Konektor (AWS CLI)
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 konsol AWS IoT Greengrass tersebut, Anda dapat menambahkan konektor dari halaman grup Konektor ini. Untuk informasi lebih lanjut, lihat Memulai dengan konektor Greengrass (konsol).
Data input
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. Misalnya:
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 input
-
{ "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 input: Permintaan ASCII
-
{ "data": "
random serial data
", "type": "ascii", "id": "abc123" } - Contoh input: permintaan hex
-
{ "data": "
base64 encoded data
", "type": "hex", "id": "abc123" }
Data output
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. Misalnya:
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 output: Sukses
-
{ "response": { "status": "success" }, "id": "abc123" }
- Contoh output: Gagal
-
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
Gunakan langkah-langkah tingkat tinggi berikut untuk mengatur contoh fungsi Lambda Python 3.7 yang dapat Anda gunakan untuk mencoba konektor.
catatan
-
Jika Anda menggunakan waktu aktif Python lainnya, Anda dapat membuat symlink dari Python3.x ke Python 3.7.
-
Topik Memulai dengan konektor (konsol) dan Memulai dengan konektor (CLI) berisi langkah-langkah terperinci yang menunjukkan cara mengonfigurasi dan men-deploy contoh konektor Notifikasi Twilio.
Pastikan Anda memenuhi persyaratan untuk konektor.
-
Buat dan terbitkan fungsi Lambda yang mengirimkan data input ke konektor.
Simpan kode contoh sebagai file PY. Unduh dan unzip AWS IoT Greengrass Core SDK for Python. 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.Setelah Anda membuat fungsi Lambda Python 3.7, terbitkankan versi fungsi dan buat alias.
-
Konfigurasikan grup Greengrass Anda.
-
Tambahkan fungsi Lambda dengan aliasnya (direkomendasikan). Konfigurasikan siklus hidup Lambda sebagai berumur panjang (atau
"Pinned": true
dalam CLI). -
Tambahkan sumber daya perangkat lokal yang diperlukan dan berikan akses baca/tulis ke fungsi Lambda.
-
Tambahkan konektor ke grup Anda dan konfigurasikan parameter.
-
Tambahkan langganan ke grup yang memungkinkan konektor untuk menerima data input dan kirim data output pada filter topik yang didukung.
Atur fungsi Lambda sebagai sumber, konektor sebagai target, dan gunakan filter topik input yang mendukung.
Atur konektor sebagai sumber, AWS IoT Core sebagai target, dan gunakan filter topik input yang mendukung. Anda menggunakan langganan ini untuk melihat pesan status dalam konsol AWS IoT tersebut.
-
-
Men-deploy grup.
-
Di konsol AWS IoT tersebut, pada halaman Tes ini, berlangganan ke topik data output 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
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
Konektor Aliran Serial mencakup perangkat lunak/lisensi pihak ketiga berikut ini:
pyserial
/BSD
Konektor ini dirilis di bawah Perjanjian Lisensi Perangkat lunak core Greengrass
Changelog
Tabel berikut menjelaskan perubahan dalam setiap versi konektor.
Versi |
Perubahan |
---|---|
3 |
Memperbarui waktu aktif Lambda untuk Python 3.7, yang mengubah persyaratan waktu aktif. |
2 |
Tingkatkan konektor ARN untuk Wilayah AWS dukungan. |
1 |
Pelepasan . |
Sebuah grup Greengrass dapat berisi hanya satu versi konektor pada suatu waktu. Untuk informasi lebih lanjut tentang pembaruan versi konektor, lihat Versi upgrade konektor.