Arduino Cloud: Guia Completo para Projetos IoT

Arduino Cloud: Guia Completo para Projetos IoT Deixe um comentário

Se você está se aventurando no universo da Internet das Coisas (IoT) usando placas Arduino, a plataforma Arduino Cloud emerge como uma ferramenta fundamental para transformar suas concepções em realidade. Neste guia exploraremos a Arduino Cloud, delineando seus elementos essenciais e oferecendo orientações sobre a configuração de dispositivos, a elaboração de esboços e a criação de painéis para um monitoramento eficaz.

Desenvolvida para simplificar o desenvolvimento de projetos IoT, a Arduino Cloud facilita a conexão segura de suas placas com o mundo exterior. Com suporte para diversos dispositivos, a plataforma acelera a implementação de sistemas para transmitir informações entre placas.

O que é a Arduino Cloud?

A plataforma Arduino Cloud é uma avançada solução para o desenvolvimento de projetos Arduino IoT, proporcionando uma conexão segura com o mundo exterior. Esta plataforma oferece suporte a conexões seguras com placas via WiFi, LoRa, Ethernet e Celular (GSM/NB-IoT), permitindo a rápida implementação de sistemas para transmitir informações variáveis entre placas, pouco tempo após retirá-las da embalagem.

Os principais elementos da plataforma Arduino Cloud incluem:

  • Um Ambiente de Desenvolvimento Integrado (IDE) para uma programação eficiente das placas.
  • Um serviço de backend na nuvem para a sincronização de dados provenientes das placas Arduino, com clientes Python e JavaScript disponíveis.
  • Uma ferramenta gráfica (dashboard) para um controle e monitoramento eficazes das placas, incluindo um aplicativo móvel.
  • API REST e ferramentas de linha de comando para automações em larga escala.

De maneira simplificada, a Arduino Cloud oferece a capacidade de:

  • Criar programas para Arduino com base em ideias recém-concebidas.
  • Carregar esses programas em suas placas e sincronizar facilmente os dados desejados, geralmente via Wi-Fi.
  • Desenvolver painéis de controle com uma variedade de widgets para um efetivo monitoramento e controle dos dados.

O desenvolvimento de um esboço (sketch) para a Arduino Cloud é bastante similar ao desenvolvimento de qualquer outro esboço na Arduino IDE. Você mantém as funções setup() e loop() como de costume, mas agora tem a opção adicional de selecionar variáveis para sincronização automática com a Arduino Cloud. Uma vez que uma variável está sincronizada com a Arduino Cloud, é possível acessá-la a partir de qualquer outro dispositivo conectado à plataforma.

Após a configuração do projeto, a interação e monitoramento podem ser realizados de forma intuitiva. Por exemplo, o controle de ligar/desligar uma luz conectada a um dispositivo funcionaria da seguinte maneira:

Arduino Cloud

E, caso deseje ler o valor de um sensor conectado ao seu dispositivo, o processo seria semelhante:

Arduino Cloud

O código de rede e a sincronização de dados são realizados automaticamente, permitindo que você se concentre apenas no desenvolvimento do projeto, enquanto a Arduino Cloud cuida do restante.

Configuração de um dispositivo na Arduino Cloud

A Arduino Cloud oferece suporte a uma variedade de placas, tanto oficiais quanto de terceiros, gerenciadas na guia “Devices” (Dispositivos). Esses dispositivos são considerados os “gêmeos virtuais” de suas contrapartes físicas.

Atualmente, os seguintes tipos de dispositivos são suportados:

  • Wi-Fi com criptografia através de chip criptográfico embutido;
  • Wi-Fi através do ESP32 com credenciais do usuário;
  • LoRaWAN;
  • Ethernet;
  • Celular (GSM / NB-IoT);
  • Manual (Python, MicroPython, JavaScript).

A configuração de um dispositivo na Arduino Cloud é realizada por meio de um assistente de instalação. Existem três opções principais disponíveis:

  • Placa Wi-Fi com chip criptográfico (configuração automática da chave API);
  • ESP32/ESP8266 (configuração manual da chave API);
  • Python, MicroPython, JavaScript (configuração manual da chave API).

Essas opções são visíveis ao criar um novo dispositivo:

Configuração Arduino Cloud

Para configurar uma placa Arduino na Arduino Cloud, siga as etapas abaixo:

1. Conecte sua placa ao seu computador.
2. Acesse a Arduino Cloud e vá para a seção “Devices” (Dispositivos). Clique no botão “Add Device” (Adicionar Dispositivo) e em seguida selecione “Arduino Board” (Placa Arduino). Após algum tempo, sua placa será visível, e você poderá clicar no botão “Configure” (Configurar).

Configuração da placa na Arduino Cloud

3. Permita algum tempo para a configuração, pois um esboço está sendo carregado em sua placa e seu chip criptográfico está sendo configurado.

Concluído, sua placa está configurada e pronta para ser utilizada na Arduino Cloud.

Ao configurar um dispositivo, você gera um ID do Dispositivo e uma Chave Secreta. Esta é a etapa final da configuração do seu dispositivo.

Configuração da placa na Arduino Cloud

Importante! Certifique-se de baixar ou armazenar essas informações, pois não será possível recuperar a Chave Secreta após esta etapa. Se você perder a Chave Secreta ou esquecer de baixar e armazenar as informações, será necessário remover e configurar o dispositivo novamente.

Configuração de uma Thing na Arduino Cloud

A comunicação entre dispositivos IoT e a Arduino Cloud é gerenciada por algo chamado “Things” (Coisas). As Things são uma espécie de réplica virtual do seu hardware/configuração, onde você realiza grande parte das configurações para seus projetos. 

Configuração Thing Arduino Cloud

Na interface da Thing, você pode:

  • Criar variáveis na nuvem que podem ser sincronizadas entre dispositivos.
  • Selecionar o dispositivo principal que você deseja associar.
  • Inserir credenciais de rede (como rede/senha Wi-Fi).

Variáveis

Na seção de variáveis, você cria “Variáveis na Nuvem”, que são variáveis que existem tanto na Arduino Cloud quanto em sua placa/configuração, e são sincronizadas continuamente. Você pode configurar uma variável para ser:

Configuração Thing

  • Leitura/Gravação: você pode interagir com a variável a partir de um painel de controle.
  • Somente Leitura: você só pode ler dados da placa.

Quando você cria uma variável, ela é automaticamente adicionada ao seu arquivo thingProperties.h, que é incluído no seu sketch da Arduino Cloud. Isso significa que você não precisa declará-las novamente.

Por exemplo, se você deseja enviar valores de temperatura para a Nuvem a partir de um sensor, tudo o que você precisa fazer é:

temperatura = sensor.readTemperature();

Há um grande número de variáveis disponíveis, incluindo tipos básicos como int, booleano e String, mas também tipos complexos que armazenam múltiplos valores, como a variável ColoredLight.

Dispositivo

Na seção de dispositivos, você pode selecionar um dispositivo previamente configurado ou configurar um novo. Associar um dispositivo significa que seu dispositivo e a Thing estão vinculados indefinidamente até que você decida desvinculá-los.

Configuração na Thing

O status do seu dispositivo também é exibido nesta seção (online/offline).

Rede

Na seção de rede, você configura as credenciais para sua rede, como sua rede/senha Wi-Fi, chave secreta (para placas ESP32) e outras credenciais, por exemplo, LoRaWAN e celular. 

Configuração na Thing

As credenciais inseridas são automaticamente incluídas em seu sketch.

Desenvolvendo um dashboard na Arduino Cloud

Dashboards (Painéis) na Arduino Cloud são ferramentas essenciais para monitorar e controlar de maneira eficiente suas placas Arduino por meio de uma interface web. Esses painéis não estão associados a uma Thing ou dispositivo específico, permitindo o controle global através de um único painel.

Os painéis são compostos por widgets, os quais estão diretamente vinculados a uma variável. Sempre que uma variável é atualizada, o widget correspondente também é atualizado.

Configuração na Thing

Cada painel é constituído por um ou vários widgets, todos vinculados às suas variáveis na nuvem. Por exemplo, é possível configurar um interruptor para ligar/desligar uma luz, um medidor para exibir a temperatura ou um gráfico para visualizar dados ao longo do tempo.

A flexibilidade dos painéis permite o controle e monitoramento de diversos dispositivos simultaneamente, sem estar restrito a uma Thing ou dispositivo específico. Por exemplo, é possível ter 10 dispositivos monitorando a temperatura em diferentes partes do mundo, e os dados são exibidos em um único painel.

Modos de Edição/Visualização

Os painéis possuem dois modos: edição e visualização. Para configurar o painel, utilize o modo de edição.

Em ambos os modos, é possível clicar no ícone de Layout para Dispositivos Móveis, visualizando como os widgets serão exibidos em seu Aplicativo Remoto de IoT.

Dashboard

No modo de edição, é possível criar widgets, vinculá-los a variáveis, movê-los e fixá-los no lugar. Os widgets podem ser dimensionados e personalizados conforme desejado. Por exemplo, um widget de interruptor pode ser ajustado de um tamanho 1×1 para 5×5.

Dashboard

No modo de visualização, é possível apenas monitorar/interagir com os widgets.

Criando um sketch (esboço) esboço na Arduino Cloud

Um esboço (sketch) é um arquivo onde escrevemos programas para serem executados em nossas placas Arduino. Os esboços têm a extensão .ino, que suporta a linguagem de programação Arduino (uma variante de C++).

O Arduino Cloud possui duas categorias de esboços:

  • Sketch Regular: um único arquivo .ino onde você escreve um programa. Esses esboços podem ser utilizados em qualquer placa Arduino.
  • Sketch IoT: um conjunto de arquivos gerados automaticamente ao criar um Thing. Isso inclui um arquivo .ino e dois arquivos de cabeçalho (.h) que contêm a configuração + credenciais do seu Thing. Disponível apenas para placas com suporte IoT.

Você pode acessar todos os seus esboços em Sketches na Arduino Cloud, onde pode selecionar facilmente entre seus esboços regulares e esboços IoT.

Sketches Regulares

Um esboço regular no Arduino Cloud é exatamente igual a um esboço usado no Arduino IDE, sem nenhuma diferença. Você pode pegar um esboço do IDE online e compilá-lo no IDE offline.

Um esboço regular tem apenas dois requisitos mínimos: a inclusão das funções void loop() e void setup(), necessárias para qualquer esboço Arduino.

void setup(){
    //código executado uma vez
}

void loop(){
    //código executado infinitamente
}

Sketches IoT

Os esboços IoT são mais complexos e são gerados automaticamente ao criar um Thing e variáveis. O arquivo do esboço é gerado com um conjunto de métodos específicos da nuvem incluídos, sendo essenciais:

  • initProperties(): inicializa propriedades/variáveis do seu Thing.
  • ArduinoCloud.begin(): inicia a biblioteca com a conexão preferida (por exemplo, Wi-Fi ou LoRaWAN).
  • ArduinoCloud.update(): sincroniza todos os dados entre a placa e o Arduino Cloud.
  • Além disso, qualquer variável criada com permissão de leitura/escrita também gerará uma função de retorno que é executada sempre que o valor da variável muda.

Se você criar uma variável chamada teste, a função será renderizada como void onTestChange(){}.

Aqui está um exemplo de como um esboço padrão se parece: 

#include "thingProperties.h"

void setup(){
  Serial.begin(115200);
  delay(1500);

  //inicializar as variáveis/propriedades
  initProperties();

  //informações de depuração
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
}

void loop() {
  //sincronizar com a nuvem
  ArduinoCloud.update();
}

void onTestChange(){
  /*
  Função de retorno, executa sempre que
  o valor da variável muda
  */
}

Se você tiver dúvidas, sugestões ou experiências para compartilhar, fique a vontade para deixar um comentário abaixo. E para não perder nenhum conteúdo como este, não deixe de nos seguir no Instagram.

Faça seu comentário

Acesse sua conta e participe