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á.
Usando AWS IoT Events para monitorar seus dispositivos de IoT
Você pode usar AWS IoT Events para monitorar seus dispositivos ou processos e agir com base em eventos significativos. Para fazer isso, siga estas etapas básicas:
- Criar entradas
-
Para monitorar seus dispositivos e processos para inserir dados de telemetria no AWS IoT Events. Isso é feito enviando mensagens como entradas para o AWS IoT Events. Você pode enviar mensagens como entradas de várias maneiras:
-
Use a BatchPutMessageoperação.
-
Defina uma ação de regra do
iotEvents
para o mecanismo de regras do AWS IoT Core. A ação de regra encaminha os dados da mensagem de sua entrada para o AWS IoT Events. -
Em AWS IoT Analytics, use a CreateDatasetoperação para criar um conjunto de dados com
contentDeliveryRules
. Essas regras especificam a AWS IoT Events entrada para a qual o conteúdo do conjunto de dados é enviado automaticamente. -
Defina uma iotEventsação em um modelo de AWS IoT Events
onInput
detectoronExit
outransitionEvents
evento. As informações sobre a instância do modelo de detector e o evento que iniciou a ação são devolvidas ao sistema como uma entrada com o nome que você especificar.
Antes que seus dispositivos comecem a enviar dados dessa forma, é preciso definir uma ou mais entradas. Para fazer isso, dê um nome a cada entrada e especifique quais campos nos dados da mensagem recebida a entrada monitora. AWS IoT Events recebe sua entrada, na forma de JSON carga útil, de várias fontes. Cada entrada pode ser acionada sozinha ou em combinação com outras entradas para detectar eventos mais complexos.
-
- Como criar um modelo de detector
-
Defina um modelo de detector (um modelo de seu equipamento ou processo) usando estados. Para cada estado, você define a lógica condicional (booliana) que avalia as entradas recebidas para detectar eventos significativos. Quando um evento é detectado, ele pode alterar o estado ou iniciar ações personalizadas ou predefinidas usando outros serviços. AWS É possível definir eventos adicionais que acionam ações ao entrar ou sair de um estado e, opcionalmente, quando uma condição é atendida.
Neste tutorial, você envia uma SNS mensagem da Amazon como ação quando o modelo entra ou sai de um determinado estado.
- Como monitorar um dispositivo ou processo
-
Se você estiver monitorando vários dispositivos ou processos, especifique um campo em cada entrada que identifica o dispositivo ou processo específico do qual a entrada vem. (Veja o campo
key
noCreateDetectorModel
.) Quando um novo dispositivo é identificado (um novo valor é visto no campo de entrada identificado pelokey
), um detector é criado. (Cada detector é uma instância de um modelo de detector). Em seguida, o novo detector continua respondendo às entradas provenientes desse dispositivo até que o modelo do detector seja atualizado ou excluído.Se você estiver monitorando um único processo (mesmo que vários dispositivos ou subprocessos estejam enviando entradas), você não especifica um campo de identificação
key
exclusivo. Nesse caso, um único detector (instância) é criado quando a primeira entrada chega. - Como enviar mensagens como entradas para seu modelo de detector
-
Há várias maneiras de enviar uma mensagem de um dispositivo ou processo como entrada em um AWS IoT Events detector que não exigem que você execute formatação adicional na mensagem. Neste tutorial, você usa o AWS IoT console para escrever uma regra de AWS IoT Events ação para o mecanismo de AWS IoT Core regras que encaminha os dados da sua mensagem para o. AWS IoT Events Para fazer isso, você identifica a entrada pelo nome. Em seguida, você continua usando o AWS IoT console para gerar algumas mensagens que são encaminhadas como entradas para. AWS IoT Events
Como descobrir quais estados são necessários em um modelo de detector?
Para determinar quais estados seu modelo de detector deve ter, primeiro decida quais ações devem ser tomadas. Por exemplo, se seu automóvel funciona com gasolina, você olha o medidor de combustível ao iniciar uma viagem para ver se precisa reabastecer. Aqui você tem uma ação: diga ao motorista que “vá buscar gasolina”. Seu modelo de detector precisa de dois estados: “o carro não precisa de combustível” e “o carro precisa de combustível”. Em geral, a intenção é definir um estado para cada ação possível, além de um extra para quando nenhuma ação for necessária. Isso funciona mesmo que a ação em si seja mais complicada. Por exemplo, talvez você queira pesquisar e incluir informações sobre onde encontrar o posto de gasolina mais próximo ou o preço mais barato, mas faça isso ao enviar a mensagem “vá buscar gasolina”.
Para decidir em qual estado entrar em seguida, as entradas são analisadas. As entradas contêm as informações necessárias para decidir em que estado você deve estar. Para criar uma entrada, selecione um ou mais campos em uma mensagem enviada pelo seu dispositivo ou processo para ajudar na decisão. Neste exemplo, é preciso uma entrada que informe o nível atual de combustível (“porcentagem cheia”). Talvez seu carro esteja enviando várias mensagens diferentes, cada uma com vários campos diferentes. Para criar essa entrada, é preciso selecionar a mensagem e o campo que informa o nível atual do medidor de gasolina. A duração da viagem que está prestes a fazer (“distância até o destino”) pode ser codificada para simplificar a situação; a duração média da viagem pode ser usada. Você fará alguns cálculos com base na entrada (em quantos litros essa porcentagem total se traduz? A duração média da viagem é maior do que os quilômetros que você pode viajar, considerando os litros disponíveis e sua média de “quilômetros por litro”?). Realize esses cálculos e envie mensagens em eventos.
Até agora, você tem dois estados e uma entrada. É preciso um evento no primeiro estado que realize os cálculos com base na entrada e decida se deseja ir para o segundo estado. Esse é um evento de transição. (transitionEvents
estão na lista de eventos onInput
de um estado. Ao receber uma entrada nesse primeiro estado, o evento executa uma transição para o segundo estado, se a condition
do evento for atendida.) Ao chegar ao segundo estado, você envia a mensagem assim que entra no estado. (Um evento onEnter
é usado. Ao entrar no segundo estado, esse evento envia a mensagem. Não é necessário esperar a chegada de outra entrada). Existem outros tipos de eventos, mas isso é tudo o que precisa para um exemplo simples.
Os outros tipos de eventos são onExit
e onInput
. Assim que uma entrada é recebida e a condição é atendida, um evento onInput
executa as ações especificadas. Quando uma operação sai de seu estado atual e a condição é atendida, o evento onExit
executa as ações especificadas.
Perdeu alguma coisa? Sim, como voltar ao primeiro estado de “carro não precisa de combustível”? Depois de encher o tanque de gasolina, a entrada mostra um tanque cheio. Em seu segundo estado, é preciso um evento de transição de volta ao primeiro estado que acontece quando a entrada é recebida (nos eventos onInput:
do segundo estado). Ele deve voltar ao primeiro estado se seus cálculos mostrarem que agora você tem gasolina suficiente para chegar aonde deseja.
Isso é o básico. Alguns modelos de detectores ficam mais complexos ao adicionar estados que refletem entradas importantes, não apenas ações possíveis. Por exemplo, é possível ter três estados em um modelo de detector que monitora a temperatura: um estado “normal”, um estado “muito quente” e um estado de “problema potencial”. Você faz a transição para o estado de problema potencial quando a temperatura sobe acima de um determinado nível, mas ainda não está muito quente. Não se deve enviar um alarme a menos que essa temperatura continue por mais de 15 minutos. Se a temperatura voltar ao normal antes disso, o detector voltará ao estado normal. Se o temporizador expirar, o detector passará para o estado muito quente e enviará um alarme, só por precaução. É possível fazer a mesma coisa usando variáveis e um conjunto mais complexo de condições de eventos. Mas, muitas vezes, é mais fácil usar outro estado para armazenar os resultados de seus cálculos.
Como saber se você precisa de uma ou várias instâncias de um detector?
Para decidir quantas instâncias são necessárias, pergunte “O que tenho interesse em saber?”. Digamos que quer saber como está o clima hoje. Está chovendo (estado)? Precisa pegar um guarda-chuva (ação)? É possível ter um sensor que informa a temperatura, outro que informa a umidade e outros que relatam a pressão barométrica, a velocidade e direção do vento e a precipitação. Mas é necessário monitorar todos esses sensores juntos para determinar o estado do clima (chuva, neve, céu nublado, sol) e a ação apropriada a ser tomada (pegar um guarda-chuva ou aplicar protetor solar). Apesar do número de sensores, você quer que uma instância de detector monitore o estado do clima e informe qual ação tomar.
Mas caso seja o meteorologista da sua região, poderá ter várias instâncias dessas matrizes de sensores, localizadas em locais diferentes da região. As pessoas em cada local precisam saber como está o clima em seu próprio local. Nesse caso, várias instâncias do detector serão necessárias. Os dados relatados por cada sensor em cada local devem incluir um campo designado como campo key
. Esse campo permite ao AWS IoT Events criar uma instância do detector para a área e, em seguida, continuar a rotear tais informações para essa instância do detector à medida que elas continuam chegando. Chega de ventos destruindo penteados ou narizes queimados pelo sol!
Basicamente, você precisa de uma instância de detector se tiver uma situação (um processo ou um local) para monitorar. Caso tenha muitas situações (locais, processos) para monitorar, precisará de várias instâncias de detector.