FAVORITAR
FecharPlease login

Franzininho WiFi: Primeiros passos com a AWS IoT Core

Neste tutorial exploraremos a utilização do AWS IoT Core para conectar a placa Franzininho WiFi à nuvem utilizando o ESP-IDF. Além do IoT Core, a AWS oferece várias outras formas de conectar um dispositivo, como AWS IoT Greengrass Stream Manager ou AWS IoT SiteWise. Esses outros serviços para ingestão e visualização de dados podem ser vistos nesse link.

AWS IOT Core

O AWS IoT Core é o broker de mensagens que permite conectar dispositivos IoT com a nuvem AWS e seus diversos serviços. Através dele, podemos criar, configurar e gerenciar nossos dispositivos.

Atualmente suporta os seguintes protocolos de comunicação:

  • MQTT
  • MQTT over WSS (Websockets Secure)
  • HTTPS
  • LoRaWAN

Resumidamente, o serviço se baseia em:

No dia 25 de Junho de 2024, ocorrerá o “Seminário de Sistemas Embarcados e IoT 2024“, no Holiday Inn Anhembi — Parque Anhembi, São Paulo–SP.

Garanta seu ingresso

  • Things: Dispositivos (“coisas”) que queremos conectar;
  • Jobs: Ações remotas que você pode agendar para realizar operações nos seus dispositivos, como atualizações de firmware;
  • Rules: Regras através das quais podemos direcionar as mensagens recebidas pelo broker para outros serviços da AWS, por exemplo, para armazenar dados no DynamoDB.
  • Segurança: onde é possível gerenciar os certificados de autorização, políticas (policies) e papeis (roles) de autenticação.

Parte 1 – Criando a Franzininho na AWS

Para seguir o tutorial, você deve ter acesso ao console da AWS. Para começar, vamos criar uma nova “coisa” (thing) para representar nossa Franzininho na nuvem. Certifique-se que você está na região mais próxima antes de começar, selecionando-a no menu do canto superior direito. Para o Brasil, a região é sa-east-1.

  1. Na AWS, procure pelo serviço IoT Core (Service > Internet of Things > IoT core ) e crie uma nova “coisa” em Manage > All devices > Things > Create new thing.
  2. Vamos criar apenas um dispositivo (Create a single thing), mas saiba que também é possível criar vários de uma vez (Create many things). Você precisará especificar as propriedades desse dispositivo:
  • Thing name: o nome do seu dispositivo para identificá-lo de forma única. Escolha sabiamente, pois essa propriedade não pode ser alterada depois que o dispositivo é criado.
  • Configurações adicionais: podem ser utilizadas para detalhar, organizar, gerenciar e pesquisar os dispositivos, como tipo, atributos ou grupos.
  • Device shadow permite que o estado do seu dispositivo fique disponível para outros serviços mesmo que ele não esteja conectado.

Por enquanto, basta preencher o nome e prosseguir. Chamarei o meu carinhosamente de Franz.

AWS IoT Core
  1. Para conseguir se autenticar ao serivço da AWS, cada dispositivo deve ter um certificado. Utilizaremos o gerado automaticamente (Auto-generate a new certificate), mas você também tem a opção de utilizar certificados próprios.
  2. Para gerenciar o nível de acesso desse certificado aos recursos, é preciso criar uma política de autorização (policy), que é uma lista de ações permitidas ou proibidas para aquele certificado. Você pode criar uma política direto dessa aba, em Create policy, ou pela barra de navegação do IoT Core em Security > Policies.

Uma policy deve ter um nome e uma ou mais declarações (statements). Cada declaração é composta por um efeito de uma ação à um recurso.

O efeito pode ser de permissão (allow) ou proibição (deny).

As possíveis ações desse serviço são várias, mas utilizaremos as seguintes principais:

  • iot:Connect: permite a conexão do dispositivo ao serviço;
  • iot:Publish: permite que o dispositivo publique mensagens no broker;
  • iot:Receive: permite que o dispositivo receba mensagem do broker;
  • iot:Subscribe: permite que o dispositivo se inscreva nos tópicos do broker.

E o recurso é o nome do serviço da AWS que a ação vai se utilizar, neste caso arn:aws:iot:region:account-id.

Você pode adicionar policies já existentes utilizando a aba Policy Examples ou criá-las manualmente. Para este exemplo, utilizei as seguintes políticas:

Altere o <account-id> para o número da sua conta, disponível no menu do canto superior direito.

  1. Por fim, baixe os arquivos de certificados e chaves que a AWS criou automaticamente para autenticar esse dispositivo. Este é o único momento que você conseguirá baixar as chaves para esse certificado, então guarde-as com carinho para utilizá-los no próximo passo.

Parte 2 – Conectando a Franzininho WiFi com ESP-IDF

Agora que temos nosso dispositivo configurado, precisamos escrever o firmware para conectá-lo. A própria Espressif disponibiliza um SDK para comunicação com AWS IoT baseada no FreeRTOS. Para utilizar, basta clonar o repositório, preferencialmente direto na pasta de componentes do seu diretório de instalação.

Dentro desse componente, já são disponibilizados alguns exemplos para utilizar com a AWS. Vamos começar utilizando o exemplo básico de MQTT em examples/mqtt/tls_mutual_auth.

Para configurar, utilizaremos o menuconfig:

  1. Nas configurações do exemplo (Example Configuration), insira o nome do dispositivo exatamente como foi criado na AWS (Franz, no meu caso) e o endpoint do broker MQTT, que está disponível no menu AWS IoT > Settings > Device endpoint na sua conta do AWS. As demais configurações podem ser deixadas como padrão.
AWS IoT Core
  1. Nas configurações de rede (Example Connection Configuration), insira as configurações da sua rede Wi-Fi (SSID e senha)
  2. O método padrão de autenticação com a AWS é utilizando credenciais PKI embarcadas no diretório certs/. Lembra dos certificados que foram gerados automaticamente ao criar um dispositivo? É aqui que você vai colocá-los para embarcar no dispositivo. Copie o certificado, a chave privada e um dos certificados de root que você tinha armazenado anteriormente.

Com tudo configurado, é só buildar e passar para a placa (siga o tutorial em Primeiros passos). Este exemplo se conecta ao broker MQTT, se sobrescreve no tópico CLIENT_IDENTIFIER "/example/topic” (Franz/example/topic, por exemplo) e publica mensagens de Hello World.

Sua conexão foi estabelecida com sucesso caso receba a mensagem a seguir:

Parte 3 – Monitorando a Franzininho

Agora que a Franzininho está conectado, podemos monitorar sua atividade pelo console da AWS.

  • Você pode ver as mensagens mais recentes em Manage > Things > Nome do seu dispositivo > Activity.
AWS IoT Core
  • E você também pode interagir através do MQTT Test Client, por exemplo, publicando no tópico CLIENT_IDENTIFIER "/example/topic” que estamos inscritos.
AWS IoT Core

A mensagem recebida pode ser vista na Franzininho:

E é isso, agora você pode brincar de Internet das Coisas com sua Franzininho WiFi utilizando a AWS!

Artigo publicado originalmente em: Primeiros passos com a AWS

Saiba mais

Franzininho WiFi: Primeiros passos na Arduino IDE

Treinamento Franzininho WiFi – Videos gravados

Franzininho WiFi: Explorando o display LCD com uma biblioteca própria

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
Inline Feedbacks
View all comments
Home » Internet Das Coisas » Franzininho WiFi: Primeiros passos com a AWS IoT Core

EM DESTAQUE

WEBINARS

LEIA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste:


Seminário de
Sistemas Embarcados e IoT 2024
 
Data: 25/06 | Local: Hotel Holiday Inn Anhembi, São Paulo-SP
 
GARANTA SEU INGRESSO

 
close-link