

Aviso de fim do suporte: em 7 de outubro de 2026, AWS o suporte para o. AWS IoT Greengrass Version 1 Depois de 7 de outubro de 2026, você não poderá mais acessar os AWS IoT Greengrass V1 recursos. Para obter mais informações, visite [Migrar de AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Conector de fluxo serial
<a name="serial-stream-connector"></a>

**Atenção**  <a name="connectors-extended-life-phase-warning"></a>
Esse conector passou para a * fase de vida útil estendida* e AWS IoT Greengrass não lançará atualizações que forneçam atributos, aprimoramentos para atributos existentes, patches de segurança ou correções de erros. Para obter mais informações, consulte [AWS IoT Greengrass Version 1 política de manutenção](maintenance-policy.md).

O [conector](connectors.md) Serial Stream lê e grava em uma porta serial em um dispositivo AWS IoT Greengrass principal.

Esse conector oferece suporte a dois modos de operação:
+ **Read-On-Demand**. Recebe solicitações de leitura e gravação em tópicos MQTT e publica a resposta da operação de leitura ou o status da operação de gravação.
+ **Polling-Read**. Faz leituras na porta serial em intervalos regulares. Esse modo também oferece suporte a Read-On-Demand solicitações.

**nota**  
As solicitações de leitura são limitadas a um tamanho máximo de leitura de 63994 bytes. As solicitações de gravação são limitadas um tamanho máximo de dados de 128000 bytes.

Esse conector tem as seguintes versões.


| Versão | 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` | 

Para obter informações sobre alterações de versão, consulte o [Changelog](#serial-stream-connector-changelog).

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

Esse conector tem os seguintes requisitos:

------
#### [ Version 3 ]
+ <a name="conn-req-ggc-v1.9.3"></a>AWS IoT Greengrass Software principal v1.9.3 ou posterior.
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python](https://www.python.org/), versão 3.7 ou 3.8, instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.
**nota**  <a name="use-runtime-py3.8"></a>
Para usar o Python 3.8, execute o comando a seguir para criar um symblink da pasta de instalação padrão do Python 3.7 para os binários instalados do Python 3.8.  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
Isso configura seu dispositivo para atender ao requisito Python para AWS IoT Greengrass.
+ <a name="conn-serial-stream-req-serial-port-resource"></a>Um [recurso do dispositivo local](access-local-resources.md) no grupo do Greengrass que aponta para a porta serial de destino.
**nota**  
Antes de implantar esse conector, recomendamos que você configure a porta serial e verifique se é possível fazer leituras e gravações nela. 

------
#### [ Versions 1 - 2 ]
+ <a name="conn-req-ggc-v1.7.0"></a>AWS IoT Greengrass Software principal v1.7 ou posterior.
+ [Python](https://www.python.org/) versão 2.7 instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.
+ <a name="conn-serial-stream-req-serial-port-resource"></a>Um [recurso do dispositivo local](access-local-resources.md) no grupo do Greengrass que aponta para a porta serial de destino.
**nota**  
Antes de implantar esse conector, recomendamos que você configure a porta serial e verifique se é possível fazer leituras e gravações nela. 

------

## Parâmetros do conector
<a name="serial-stream-connector-param"></a>

Esse conector oferece os seguintes parâmetros:

`BaudRate`  
A taxa de baud da conexão serial.  
Nome de exibição no AWS IoT console: Taxa **de transmissão**  
Obrigatório: `true`  
Digite: `string`  
Valores válidos: `110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200, 230400`  
Padrão válido: `^110$|^300$|^600$|^1200$|^2400$|^4800$|^9600$|^14400$|^19200$|^28800$|^38400$|^56000$|^57600$|^115200$|^230400$`

`Timeout`  
O tempo limite (em segundos) para a operação de leitura.  
Nome de exibição no AWS IoT console: **Timeout**  
Obrigatório: `true`  
Digite: `string`  
Valores válidos: `1 - 59`  
Padrão válido: `^([1-9]|[1-5][0-9])$`

`SerialPort`  
O caminho absoluto para a porta serial física no dispositivo. Esse é o caminho de origem especificado para o recurso de dispositivo local.  
Nome de exibição no AWS IoT console: **Porta serial**  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `[/a-zA-Z0-9_-]+`

`SerialPort-ResourceId`  
O ID do recurso de dispositivo local que representa a porta serial física.  
Esse conector recebe acesso de leitura e gravação ao recurso.
Nome de exibição no AWS IoT console: **recurso de porta serial**  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `[a-zA-Z0-9_-]+`

`PollingRead`  
Define o modo de leitura: Polling-Read ou. Read-On-Demand  
+ Para o modo Polling-Read, especifique `true`. Nesse modo, as propriedades `PollingInterval`, `PollingReadType` e `PollingReadLength` são necessárias.
+ Para o Read-On-Demand modo, especifique`false`. Nesse modo, os valores de tamanho e tipo são especificados na solicitação de leitura.
Nome de exibição no AWS IoT console: **Modo de leitura**  
Obrigatório: `true`  
Digite: `string`  
Valores válidos: `true, false`  
Padrão válido: `^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`PollingReadLength`  
O tamanho de dados (em bytes) a serem lidos em cada operação de leitura de sondagem. Isso se aplica somente ao usar o modo Polling-Read.  
Nome de exibição no AWS IoT console: comprimento de **leitura da pesquisa**  
Obrigatório:`false`. Essa propriedade é necessária quando `PollingRead` é `true`.  
Digite: `string`  
Padrão válido: `^(|[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`  
O intervalo (em segundos) em que a leitura de sondagem ocorre. Isso se aplica somente ao usar o modo Polling-Read.  
Nome de exibição no AWS IoT console: intervalo de **leitura da pesquisa**  
Obrigatório:`false`. Essa propriedade é necessária quando `PollingRead` é `true`.  
Tipo: `string`  
Valores válidos: 1 a 999  
Padrão válido: `^(|[1-9]|[1-9][0-9]|[1-9][0-9][0-9])$`

`PollingReadType`  
O tipo de dados que o thread de sondagem lê. Isso se aplica somente ao usar o modo Polling-Read.  
Nome de exibição no AWS IoT console: Tipo de **leitura da pesquisa**  
Obrigatório:`false`. Essa propriedade é necessária quando `PollingRead` é `true`.  
Tipo: `string`  
Valores válidos: `ascii, hex`  
Padrão válido: `^(|[Aa][Ss][Cc][Ii][Ii]|[Hh][Ee][Xx])$`

`RtsCts`  
Indica se é necessário habilitar o controle de fluxo RTS/CTS. O valor padrão é `false`. Para obter mais informações, consulte [RTS, CTS e RTR](https://en.wikipedia.org/wiki/RS-232#RTS,_CTS,_and_RTR).   
Nome de exibição no AWS IoT console: controle de fluxo **RTS/CTS**  
Obrigatório: `false`  
Digite: `string`  
Valores válidos: `true, false`  
Padrão válido: `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`XonXoff`  
Indica se é necessário habilitar o controle de fluxo de software. O valor padrão é `false`. Para obter mais informações, consulte [Controle de fluxo de software](https://en.wikipedia.org/wiki/Software_flow_control).  
Nome de exibição no AWS IoT console: **Controle de fluxo de software**  
Obrigatório: `false`  
Digite: `string`  
Valores válidos: `true, false`  
Padrão válido: `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`Parity`  
A paridade da porta serial. O valor padrão é `N`. Para obter mais informações, consulte [Paridade](https://en.wikipedia.org/wiki/Serial_port#Parity).   
Nome de exibição no AWS IoT console: **paridade de porta serial**  
Obrigatório: `false`  
Digite: `string`  
Valores válidos: `N, E, O, S, M`  
Padrão válido: `^(|[NEOSMneosm])$`

### Exemplo de criação de conector (AWS CLI)
<a name="serial-stream-connector-create"></a>

O seguinte comando da CLI cria um `ConnectorDefinition` com uma versão inicial que contém o conector de fluxo serial. Ele configura o conector para o modo 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"
            }
        }
    ]
}'
```

No AWS IoT Greengrass console, você pode adicionar um conector na página **Conectores** do grupo. Para obter mais informações, consulte [Conceitos básicos de conectores do Greengrass (console)](connectors-console.md).

## Dados de entrada
<a name="serial-stream-connector-data-input"></a>

Esse conector aceita solicitações de leitura ou gravação para portas seriais em dois tópicos MQTT. As mensagens de entrada devem estar no formato JSON.
+ Solicitações de leitura no tópico `serial/+/read/#`.
+ Solicitações de gravação no tópico `serial/+/write/#`.

Para publicar nesses tópicos, substitua o caractere curinga `+` pelo nome da coisa principal e o caractere curinga `#` pelo caminho para a porta serial. Por exemplo:

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

**Filtro de tópico:** `serial/+/read/#`  
Use esse tópico para enviar solicitações de leitura sob demanda para um pin serial. As solicitações de leitura são limitadas a um tamanho máximo de leitura de 63994 bytes.    
**Propriedades de mensagens**    
`readLength`  
O tamanho de dados a serem lidos na porta serial.  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `^[1-9][0-9]*$`  
`type`  
O tipo de dados a serem lidos.  
Obrigatório: `true`  
Digite: `string`  
Valores válidos: `ascii, hex`  
Padrão válido: `(?i)^(ascii|hex)$`  
`id`  
Um ID arbitrário para a solicitação. Essa propriedade é usada para mapear a solicitação de entrada para uma resposta de saída.  
Obrigatório: `false`  
Digite: `string`  
Padrão válido: `.+`  
**Exemplo de entrada**  

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

**Filtro de tópico:** `serial/+/write/#`  
Use esse tópico para enviar solicitações de gravação para um pin serial. As solicitações de gravação são limitadas um tamanho máximo de dados de 128000 bytes.    
**Propriedades de mensagens**    
`data`  
A string a ser gravada na porta serial.  
Obrigatório: `true`  
Digite: `string`  
Padrão válido: `^[1-9][0-9]*$`  
`type`  
O tipo de dados a serem lidos.  
Obrigatório: `true`  
Digite: `string`  
Valores válidos: `ascii, hex`  
Padrão válido: `^(ascii|hex|ASCII|HEX)$`  
`id`  
Um ID arbitrário para a solicitação. Essa propriedade é usada para mapear a solicitação de entrada para uma resposta de saída.  
Obrigatório: `false`  
Digite: `string`  
Padrão válido: `.+`  
**Exemplo de entrada: solicitação ASCII**  

```
{
    "data": "random serial data",
    "type": "ascii",
    "id": "abc123"
}
```  
**Exemplo de entrada: solicitação hexadecimal**  

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

## Dados de saída
<a name="serial-stream-connector-data-output"></a>

O conector publica dados de saída em dois tópicos:
+ As informações de status do conector no tópico `serial/+/status/#`.
+ Respostas de solicitações de leitura no tópico `serial/+/read_response/#`.

Ao publicar nesse tópico, o conector substitui o caractere curinga `+` pelo nome da coisa principal e o caractere curinga `#` pelo o caminho para a porta serial. Por exemplo:

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

**Filtro de tópico:** `serial/+/status/#`  
Use esse tópico para monitorar o status de solicitações de leitura e gravação. Se uma propriedade `id` for incluída na solicitação, ela será retornada na resposta.    
**Exemplo de resultado: sucesso**  

```
{
    "response": {
        "status": "success"
    },
    "id": "abc123"
}
```  
**Exemplo de resultado: falha**  
Uma resposta com falha inclui uma propriedade `error_message` que descreve o erro ou tempo limite encontrado ao executar a operação de leitura e gravação.  

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

**Filtro de tópico:** `serial/+/read_response/#`  
Use esse tópico para receber dados de resposta de uma operação de leitura. Os dados de resposta são codificados em Base64 se o tipo é `hex`.    
**Exemplo de saída**  

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

## Exemplo de uso
<a name="serial-stream-connector-usage"></a>

<a name="connectors-setup-intro"></a>Use as seguintes etapas de alto nível para configurar um exemplo de função do Lambda Python 3.7 que pode ser usado para testar o conector.

**nota**  <a name="connectors-setup-get-started-topics"></a>
Se você usar outros runtimes do Python, poderá criar um symblink do Python3.x para o Python 3.7.
Os tópicos [Conceitos básicos de conectores (console)](connectors-console.md) e [Conceitos básicos de conectores (CLI)](connectors-cli.md) contêm etapas detalhadas que mostram como configurar e implantar um exemplo do conector de notificações do Twilio.

1. Certifique-se de cumprir os [requisitos](#serial-stream-connector-req) para o conector.

1. <a name="connectors-setup-function"></a>Crie e publique uma função do Lambda que envie dados de entrada para o conector.

   Salve o [código de exemplo](#serial-stream-connector-usage-example) como arquivo PY. <a name="connectors-setup-function-sdk"></a>Baixe e descompacte o [SDK do AWS IoT Greengrass Core para Python](lambda-functions.md#lambda-sdks-core). Crie então um pacote zip que contenha o arquivo PY e a pasta `greengrasssdk` no nível raiz. Este pacote zip é o pacote de implantação que você transfere por upload para o AWS Lambda.

   <a name="connectors-setup-function-publish"></a>Depois de criar a função do Lambda Python 3.7, publique uma versão de função e crie um alias.

1. Configure o grupo do Greengrass.

   1. <a name="connectors-setup-gg-function"></a>Adicione a função do Lambda pelo seu alias (recomendado). Configure o ciclo de vida do Lambda como de longa duração (ou `"Pinned": true` na CLI).

   1. <a name="connectors-setup-device-resource"></a>Adicione o recurso de dispositivo local necessário e conceda acesso de leitura/gravação à função do Lambda.

   1. Adicione o conector ao grupo e configure seus [parâmetros](#serial-stream-connector-param).

   1. Adicione assinaturas ao grupo que permitam que o conector receba [dados de entrada](#serial-stream-connector-data-input) e envie [dados de saída](#serial-stream-connector-data-output) em filtros de tópico compatíveis.
      + <a name="connectors-setup-subscription-input-data"></a>Defina a função do Lambda como origem, o conector como destino e use um filtro de tópico de entrada compatível.
      + <a name="connectors-setup-subscription-output-data"></a>Defina o conector como origem, o AWS IoT Core como destino, e use um filtro de tópico de saída compatível. Você usa essa assinatura para visualizar mensagens de status no AWS IoT console.

1. <a name="connectors-setup-deploy-group"></a>Implante o grupo.

1. <a name="connectors-setup-test-sub"></a>No AWS IoT console, na página **Teste**, inscreva-se no tópico de dados de saída para ver as mensagens de status do conector. A função de exemplo do Lambda é de longa duração e começa a enviar mensagens imediatamente após o grupo ser implantado.

   Ao finalizar o teste, você pode definir o ciclo de vida do Lambda como sob demanda (ou `"Pinned": false` na CLI) e implantar o grupo. Isso impede o envio de mensagens pela função.

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

O exemplo a seguir da função do Lambda envia uma mensagem de entrada para o conector.

```
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
```

## Licenças
<a name="serial-stream-connector-license"></a>

O conector de fluxo serial inclui o seguinte licenciamento/software de terceiros:
+ [pyserial](https://github.com/pyserial/pyserial)/BSD

Esse conector é liberado de acordo com o [Contrato de licença de software do Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

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

A tabela a seguir descreve as alterações em cada versão do conector.


| Versão | Alterações | 
| --- | --- | 
| 3 | <a name="upgrade-runtime-py3.7"></a>Atualização do runtime do Lambda para Python 3.7, o que altera o requisito de runtime. | 
| 2 | ARN do conector atualizado para Região da AWS suporte. | 
| 1 | Versão inicial.  | 

<a name="one-conn-version"></a>Um grupo do Greengrass só pode conter uma versão do conector por vez. Para obter informações sobre como fazer upgrade de uma versão do conector, consulte [Atualizar a versões do conector](connectors.md#upgrade-connector-versions).

## Consulte também
<a name="serial-stream-connector-see-also"></a>
+ [Integrar a serviços e protocolos usando conectores do Greengrass](connectors.md)
+ [Conceitos básicos de conectores do Greengrass (console)](connectors-console.md)
+ [Conceitos básicos de conectores do Greengrass (CLI)](connectors-cli.md)