Monitoramento da umidade do solo com Arduino Giga

Arduino Giga com Arduino Cloud: Monitorando a umidade do solo Deixe um comentário

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

Monitoramento da umidade do solo com Arduino Giga

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.

Arduino Giga R1 WiFi

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

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.

cadastro gratuito na Arduino IoT Cloud

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.

cadastro gratuito na Arduino IoT Cloud

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.

cadastro gratuito na Arduino IoT Cloud

Criando e configurando uma Thing na Arduino IoT Cloud

Clique no botão CREATE NEW e escolha a opção Thing.

configurando uma Thing na Arduino IoT Cloud

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.

configurando uma Thing na Arduino IoT Cloud

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.

Thing na Arduino IoT Cloud e arduino giga

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

Thing na Arduino IoT Cloud e arduino giga

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. 

Conectando Iot Cloud e Arduino Giga

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.

Conectando Iot Cloud e Arduino Giga

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.

Conectando Iot Cloud e Arduino Giga

Quando terminar estas configurações, clique em Ok e será mostrado o dispositivo Giga R1 associado à thing criada.

Conectando Iot Cloud

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.

Conectar rede wifi e Arduino giga

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

Conectar rede wifi

 

Será aberta uma janela com as características da variável. Preencha conforme informações a seguir.

Conectar rede na Iot Cloud

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:

Conectar rede na Iot Cloud

Configurando a dashboard

Clique no ícone com um quadrado com uma lista vertical no canto superior esquerdo e selecione a opção Dashboards.

Confugurando a dashboard

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.

Configurando a dashboard

Será aberta uma nova aba como vista a seguir:

Configurando a dashboard

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.

Configurando a dashboard

Role o menu e escolha a opção Percentage. Será aberta uma tela para configurações do elemento.

Configurando a dashboard

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.

Configurando a dashboard

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.

Configurando a dashboard

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.

Editando o sketch no Arduino IoT Cloud

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:

Esquemático do circuito

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.

Integração entre dispositivo e dashboard

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.

Dashboard sensor de umidade de 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.

Faça seu comentário

Acesse sua conta e participe