Olá pessoal! A versão Arduino Giga é extremamente poderosa, que nos proporciona uma diversidade de projetos hobbistas quanto profissionais. Neste artigo, faremos o monitoramento da umidade do solo com uso de dashboard online usando a Arduino Giga com Arduino Cloud. Vamos lá?
Especificações Arduino Giga
O Arduino Giga R1 WiFi board é uma versão Arduino com microcontrolador de dois núcleos: um Cortex M7 480 MHz e um Cortex M4 240 MHz. Com 75 pinos digitais, sendo 12 destes também PWM, com 14 pinos de entrada analógica e 2 conversores digital-analógico (DAC), ela também conta com conectividade WiFi e Bluetooth Low energy (BLE).
Para saber mais sobre a versão Arduino Giga R1, veja este artigo no Blog MakerHero aqui.
Tendo este recurso de conectividade, vamos explorar a conexão com o Arduino IoT Cloud para monitorar a umidade do solo e mostrar os resultados em uma dashboard.
Lista de materiais
- 1 Arduino Giga R1 WiFi board
- 1 cabo USB tipo C
- 1 sensor capacitivo de umidade do solo
- Kit jumpers macho-macho
Arduino IoT Cloud
Trata-se de uma plataforma online desenvolvida pelo Arduino CC onde são conectadas via internet diversas versões Arduino e suporta plataforma de terceiros (como ESP8266 e ESP32).
Através deste ambiente online, é possível gerar projetos IoT com telas personalizadas, para receber e enviar dados remotamente, de maneira simplificada. Os sketches ficam armazenados na nuvem, com ou sem limite de armazenamento, dependendo do plano escolhido. A comunicação entre o dispositivo físico e a nuvem é chamada de Thing.
Há um plano gratuito individual com limite de duas things com cinco variáveis de entrada/saída. Também há planos individuais com mais recursos, que podem ser pagos de forma anual ou mensal, além de planos para escolas e empresas.
Com o plano gratuito já é possível fazer muitos projetos. Vamos começar com o cadastro gratuito na Arduino IoT Cloud para acesso.
Cadastro na Arduino IoT Cloud
Clique aqui para acessar a página de login.
Caso você já possua conta no site Arduino CC, clique em SIGN IN. Caso não tenha conta, clique em CREATE ONE. É possível fazer login utilizando contas do Google, GitHub, Facebook ou Apple. Você pode associar à um aplicativo de Autenticação para aumentar o nível de segurança.
Ao realizar o login, você tem acesso ao que já foi realizado anteriormente ou, caso seja o primeiro acesso, há seções com tutoriais e documentação para que não comece do zero.
Criando e configurando uma Thing na Arduino IoT Cloud
Clique no botão CREATE NEW e escolha a opção Thing.
Será aberta uma nova aba, com as informações referentes à thing criada. Podemos renomear, adicionar variáveis e dispositivos, além de configurar a rede sem fio.
A thing foi renomeada para Umidade do solo com Arduino Giga (você pode renomear com o nome que desejar). Faremos a associação da placa Arduino Giga com a Thing. Para isto, clique no botão verde em formato de elipse logo abaixo de Associate Device, ao lado direito da tela. Caso já tenha associado dispositivos anteriormente, serão listados em uma janela. Caso seja a primeira configuração, verá uma janela como mostrada a seguir.
Clique em SET UP NEW DEVICE e serão mostradas as opções automáticas: Arduino board (oficiais Arduino) ou Third party device (placas terceiras, como ESP32 e ESP8266).
Para conectar qualquer dispositivo ao Arduino IoT Cloud, é necessário instalar o Arduino Cloud Agent em seu computador. Clique aqui para realizar a instalação e então, abra o programa instalado para aparecer um ícone branco com o símbolo do Arduino no canto direito (caso seja Windows). Isto significa que seu computador está pronto para conectar seu dispositivo físico com a nuvem.
Ao concluir a instalação, você pode fechar a janela referente ao Arduino Cloud Agent e voltar para a tela de Setup Device. Escolha a opção Arduino board e conecte o cabo USB-C no Arduino Giga e na entrada USB de seu computador.
Clique em Configure. Será solicitado que dê um nome ao seu dispositivo. Renomeei como Giga R1. Após renomear, seguirá para a etapa de preparar sua placa para receber um sketch e verificar se a comunicação está ok.
Quando terminar estas configurações, clique em Ok e será mostrado o dispositivo Giga R1 associado à thing criada.
O próximo passo é configurar a rede para conectar a placa Giga. Para isto, clique no botão verde em formato de elipse logo abaixo da seção Network. Será aberta uma janela de configuração da rede, como mostrada a seguir.
Digite o nome da rede em Wi-Fi Name e senha da rede em Password. Clique em SAVE quando terminar.
É necessário adicionar variável na thing. Clique no botão ADD localizado na parte superior
Será aberta uma janela com as características da variável. Preencha conforme informações a seguir.
Name: nivel_umidade
Select variable type: Integer Number
Variable Permission: Read only
Variable Update Policy: on change
Ao terminar, clique em ADD VARIABLE. Repita o processo para adicionar mais duas variáveis:
Name: perc_umidade
Select variable type: Percentage
Variable Permission: Read only
Variable Update Policy: on change
Name: mensagem
Select variable type: Character string
Variable Permission: Read and Write
Variable Update Policy: on change
Serão mostradas as três variáveis criadas como mostradas a seguir:
Configurando a dashboard
Clique no ícone com um quadrado com uma lista vertical no canto superior esquerdo e selecione a opção Dashboards.
Caso já tenha criado uma dashboard anteriormente, será listada nesta página. Caso não a tenha criado, role até o fim da página e clique no botão + CREATE DASHBOARD.
Será aberta uma nova aba como vista a seguir:
Da mesma forma que você renomeia uma thing, também pode renomear uma dashboard. Renomeei como Monitoramento de umidade do solo.
O retângulo no centro da tela mostra o espaço onde você pode inserir os elementos da dashboard. Clique no botão ADD para inserir o primeiro elemento.
Role o menu e escolha a opção Percentage. Será aberta uma tela para configurações do elemento.
Devemos associar uma variável criada anteriormente com o elemento para a dashboard. Para Percentage, escolha na Thing Umidade do solo com Arduino Giga a variável perc_umidade. Clique em LINK VARIABLE.
Adicione a opção Messenger e faça o link com a variável mensagem. Repita o processo na escolha da opção Chart, fazendo o link com a variável nivel_umidade. Sua dashboard deve estar parecida com a imagem a seguir.
Editando o sketch na Arduino Cloud
Volte para o menu Things e escolha a Thing que editamos, no caso, a thing Umidade do solo com Arduino Giga. Escolha o menu Sketch, com uma marcação em vermelho.
Será aberta uma janela com um sketch pré-definido.
Faça as modificações ou insira o código a seguir:
/* Sketch generated by the Arduino IoT Cloud Thing "Untitled 2" https://create.arduino.cc/cloud/things/0aeba7ea-7f73-4e49-a818-34846e3fd038 Arduino IoT Cloud Variables description The following variables are automatically generated and updated when changes are made to the Thing String mensagem; int nivel_umidade; CloudPercentage perc_umidade; Variables which are marked as READ/WRITE in the Cloud Thing will also have functions which are called when their values are changed from the Dashboard. These functions are generated with the Thing and added at the end of this sketch. */ #include "thingProperties.h" // Variáveis para range do sensor de umidade do solo // Realizar testes com o sensor utilizado // Valor de valorAgua é para quando estiver imerso em água // Valor de valorAr é para quando estiver fora da terra int valorAr = 175; int valorAgua = 0; void setup() { // Inicializa Monitor Serial com 9600 bits por segundo Serial.begin(9600); // delay de 1,5s para inicialização delay(1500); // Define thingProperties.h initProperties(); // Conecta ao Arduino IoT Cloud ArduinoCloud.begin(ArduinoIoTPreferredConnection); /* The following function allows you to obtain more information related to the state of network and IoT Cloud connection and errors the higher number the more granular information you’ll get. The default is 0 (only errors). Maximum is 4 */ setDebugMessageLevel(2); ArduinoCloud.printDebugInfo(); } void loop() { ArduinoCloud.update(); // Leitura da variável nivel_umidade no pino A0 int umidade = analogRead(0); int percentual = map(umidade, valorAr, valorAgua, 0, 100); Serial.print("Nivel de umidade: "); Serial.println(umidade); Serial.print("Porcentagem de umidade: "); Serial.print(percentual); Serial.println("%"); //Update Arduino IoT Cloud values nivel_umidade = umidade; perc_umidade = percentual; //Se a porcentagem for menor que 30% if(perc_umidade < 30) { //É enviada uma mensagem para a dashboard mensagem = "Nivel baixo de agua. Regue a planta!"; } //If the moisture percentage is greater than 50% if(perc_umidade > 50) { //É enviada uma mensagem para a dashboard mensagem = "Nivel de agua suficiente!"; } } /* Since Mensagem is READ_WRITE variable, onMensagemChange() is executed every time a new value is received from IoT Cloud. */ void onMensagemChange() { // Adicione código caso queira interagir por mensagens }
Você pode editar o código nesta tela ou escolher a opção Open full editor para mais opções.
Esquemático do circuito com Arduino Giga
A montagem do circuito encontra-se na imagem seguinte:
Onde:
Sensor de umidade capacitivo |
Arduino Giga R1 |
GND |
GND |
VCC |
3,3V |
AUOT |
A0 |
Integração entre Arduino Giga e dashboard
Realize a compilação do sketch clicando em Verify (ícone com ✓). Se não houver erros, clique no botão Verify and Upload (ícone com →) e aguarde.
Se tudo ocorrer bem, serão mostradas mensagens de carregamento. Caso apresente algum erro, verifique:
- Se a porta COM é a mesma do Arduino Giga;
- Se as variáveis foram nomeadas e associadas de forma correta;
- Se o Arduino Create Agent está ativo.
Aguarde alguns segundos e volte para a tela de dashboard. Devem aparecer mensagens e valores referentes à leitura do sensor de umidade do solo.
Experimente testar em solo seco e úmido para verificar as variações de leitura. Caso os valores do sensor estejam estranhos, faça o teste com o sensor imerso em água para atualizar a variável local valorAgua e com o sensor totalmente seco no ar para atualizar a variável local valorAr.
Gostou de conhecer um pouco mais sobre o Arduino Giga e sua integração com o Arduino IoT Cloud? Deixe um comentário abaixo contando o que achou. Para mais sobre os lançamentos do universo maker, acompanhe as novidades no nosso blog. E não esqueça de nos seguir no Instagram para não perder nenhuma novidade.