Modelo de programação do AWS IoT 1-Click - AWS IoT 1-Click

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á.

Modelo de programação do AWS IoT 1-Click

Para criar aplicativos usando dispositivos AWS IoT 1-Click, os programadores usam oAPI de dispositivos do AWS IoT 1-ClickO e aAPI de projetos do AWS IoT 1-Click. A API de dispositivos interage com o componente de dispositivos AWS IoT 1-Click e lida com eventos provenientes de dispositivos. Esses eventos incluem a ativação e a desativação dos dispositivos e a definição de formatos e ações de evento (funções Lambda) que eles desencadeiam. A API de dispositivos é totalmente aliada com os componentes da AWS que residem na região onde o fabricante registrou os dispositivos. É por isso queRegiões de dispositivo AWSO pode ser diferente da região onde o cliente está usando os dispositivos. A API de projetos interage com o serviço Projetos do AWS IoT 1-Click e é usada para gerenciar dispositivos do AWS IoT 1-Click em agregado, o que permite:

  • Agrupar dispositivos em projetos.

  • Criar modelos usados para definir ações para todos os dispositivos no projeto.

  • Definir atributos que armazenam dados contextuais pertinentes ao projeto.

Você pode usar o modelo de programação do AWS IoT 1-Click para programar dispositivos individuais usando a API de dispositivos. Nesse caso, você usará o tipo de dispositivo AWS IoT 1-Click. A API define os formatos de evento padrão e uma lista de métodos que formam a interface de programação de todos os dispositivos desse tipo. Para chamar os métodos relacionados a um determinado tipo de dispositivo, um programador pode usar a API InvokeDeviceMethod e especificar o método do dispositivo como um parâmetro.

Por exemplo, todos os dispositivos AWS IoT 1-Click que têm o tipo de dispositivo “botão” emitem eventos associados a cliques e têm métodos para definir funções de retorno de chamada que são invocadas quando o dispositivo é clicado. Para obter informações sobre a interface de botões, consulte Interfaces por tipo de dispositivo. Veja o código para definir esta função de retorno de chamada:

String methodParameters = mapper.writeValueAsString( SetOnClickCallbackRequestParameters.builder() .deviceId(deviceId) .callback(DeviceCallback.builder() .awsLambdaArn(“arn:aws:lambda:us-west-2:123456789012:MyButtonListener”) .build()) .build()); InvokeDeviceMethodRequest request = new InvokeDeviceMethodRequest() .withDeviceMethod(new DeviceMethod() .withDeviceType("button") .withMethodName("setOnClickCallback")) .withDeviceMethodParameters(methodParameters);

Use a API de projetos para programar uma frota de dispositivos. Usando as APIs, primeiramente defina qual será a aparência de cada posicionamento, incluindo modelos e atributos de dispositivo para cada posicionamento. Após fazer isso, crie posicionamentos com IDs de dispositivo específicos. Cada posicionamento seguirá o mesmo modelo. Veja o código de exemplo para fazer isso:

final Map<String, String> callbacks = new HashMap<>(); callbacks.put("onClickCallback", "arn:aws:lambda:us-west-2:123456789012:MyButtonListener"); final DeviceTemplate item = DeviceTemplate.builder() .withDeviceType(“button”) .withCallbackOverrides(callbacks) .build(); final Map<String, DeviceTemplate> deviceTemplateMap = new HashMap<>(); deviceTemplateMap.put(“MyDevice”, item); final Map<String, String> placementDefaultAttributes = new HashMap<>(); placementDefaultAttributes.put(“location”, “Seattle”) request = CreateProjectRequest.builder() .withProjectName(“HelloWorld”) .withDescription(“My first project!”) .withPlacementTemplate(PlacementTemplate.builder() .withDefaultAttributes(placementDefaultAttributes) .withDeviceTemplates(deviceTemplateMap) .build()) .build(); projectsClient.createProject(request)

Eventos de retorno de chamada do AWS IoT 1-Click

AWS IoT 1-Click permite que você se inscreva em eventos de dispositivo registrando retornos de chamada. Um exemplo de retorno de chamada é uma função do AWS IoT 1-Click. Esse retorno de chamada é invocado sempre que há um evento disponível a ser consumido. Para obter informações sobre eventos e as respectivas cargas úteis, consulte as seções Eventos do AWS IoT 1-Click e Eventos de Health do AWS IoT 1-Click.

Eventos do AWS IoT 1-Click

Os dispositivos do tipo button publicam um evento de clique sempre que são clicados. Você pode se inscrever nesse evento:

  • Chamando o método SetOnClickCallback do dispositivo em um dispositivo.

  • Configurando o projeto associado adequadamente, como mostrado no exemplo anterior e criação de código do projeto.

No exemplo a seguir, lembre-se de que a seção placementInfo está presente somente quando o dispositivo tem um posicionamento associado. Para obter mais informações, consulte Projetos, modelos e posicionamentos.

{ "deviceEvent": { "buttonClicked": { "clickType": "SINGLE", "reportedTime": "2018-05-04T23:26:33.747Z" } }, "deviceInfo": { "attributes": { "key3": "value3", "key1": "value1", "key4": "value4" }, "type": "button", "deviceId": " G030PMXXXXXXXXXX ", "remainingLife": 5.00 }, "placementInfo": { "projectName": "test", "placementName": "myPlacement", "attributes": { "location": "Seattle", "equipment": "printer" }, "devices": { "myButton": " G030PMXXXXXXXXXX " } } }

Eventos de Health do AWS IoT 1-Click

Os dispositivos publicam um evento de integridade com base nos parâmetros de integridade calculados pelo serviço AWS IoT 1-Click, mas você define seus limites correspondentes. O exemplo a seguir representa a carga útil JSON de um evento de integridade para o dispositivo G030PMXXXXXXXXXX com vida útil restante de 10% (anote o par de chave/valor "remainingLifeLowerThan":10).

{ "deviceEvent": { "deviceHealthMonitor": { "condition": { "remainingLifeLowerThan": 10 } } }, "deviceInfo": { "attributes": { "key2": "value2", "key1": "value1", "projectRegion": "us-west-2" }, "type": "button", "deviceId": "G030PMXXXXXXXXXX", "remainingLife": 5.4 } }

Métodos de dispositivo

Os métodos de dispositivo AWS IoT 1-Click são APIs compatíveis com dispositivos de um certo tipo, conforme demonstrado na tabela a seguir. A lista completa de métodos de dispositivo compatíveis com qualquer dispositivo pode ser recuperada chamando GetDeviceMethods.

Tipo de dispositivo Nome de método Descrição

device

getDeviceHealthParameters

Obtém os parâmetros de integridade do dispositivo, como remainingLife.

device

setDeviceHealthMonitorCallback

Define um retorno de chamada a ser chamado quando os parâmetros de integridade do dispositivo estiverem abaixo de um limite.

device

getDeviceHealthMonitorCallback

Obtém o retorno de chamada configurado, que é chamado quando os parâmetros de integridade do dispositivo estiverem abaixo de um limite.

button

setOnClickCallback

Define um retorno de chamada a ser chamado quando o botão for clicado.

button

getOnClickCallback

Obtém o retorno de chamada configurado, que é chamado quando o botão for clicado.