Font Size

O Datalogger com Arduino é um dispositivo essencial para registrar dados de sensores e informações de diversas áreas. A seguir, você compreenderá a importância e sua aplicabilidade em diversos outros projetos.

Um Problema

Na área ambiental, necessitamos realizar medições de variáveis climáticas em diversas áreas de um território. Através desses parâmetros, os cientistas são capazes de estimar variações climáticas e determinar possíveis fenômenos que ocorrem na natureza.

Para isto, são necessários dispositivos que sejam capazes de medir essas variáveis e registrar todas essas alterações a longo prazo.

A Solução – Datalogger com Arduino

Um dispositivo bastante utilizado é o Datalogger. Ele tem a capacidade de realizar a leitura de diversos tipos de dados e armazená-los em uma memória.

Logo, a fim de solucionar esse problema, desenvolveremos um Datalogger com Arduino e o Sensor BMP280. O Sensor BMP280 será utilizado para ler a temperatura e pressão atmosférica e, em seguida, o Arduino receberá esses dados.

Posteriormente, os dados serão salvos em um arquivo de texto, que será armazenado em um cartão de memória.

Portanto, ao final desse artigo, você terá aprendido:

  • Como criar um Datalogger com Arduino;
  • Como abrir, salvar e apagar dados do cartão de memória;
  • Como funciona o sensor BMP280.

Agora, iniciaremos a discussão completa do projeto.

Desenvolvimento do Projeto

Primeiramente, iniciaremos apresentando um esquema eletrônico bastante simples para a construção do Datalogger na Figura 1.

datalogger-com-arduino
Figura 1 – Esquema Eletrônico do Datalogger com Arduino e Sensor BMP280.

Este circuito é simples e útil, porque através dele, você será capaz de montar o seu próprio Datalogger utilizando o sensor barométrico. E, além disso, você pode criar qualquer modelo de datalogger com Arduino.

Para isto, utilizaremos os seguintes componentes eletrônicos, que podem ser encontrados em nossa Loja Online Autocore Robótica.

Lista de Componentes Eletrônicos do Datalogger com Arduino

01 x Arduino Nano
01 x Sensor Barométrico BMP280
01 x Módulo de Cartão de Memória – SD Card;
03 x LED’s (Vermelho, Verde e Laranja);
02 x Botões Momentâneos;
02 x Resistores de 10kR;
03 x Resistores de 330R;

A seguir, apresentaremos a discussão completa do código do Datalogger com Arduino.

Desenvolvimento da Lógica de Programação

Primeiramente, o projeto consiste em utilizar dois botões. O primeiro será utilizado para gravar 10 amostras no cartão de memória. Enquanto que o segundo botão, será utilizado para apagar o arquivo de dados salvo no cartão.

Além disso, utilizaremos 3 LED’s sinalizadores para cada uma destas etapas.

A seguir, apresentaremos a discussão do projeto e dividiremos em 4 partes: definição de bibliotecas e objetos, inicialização dos dispositivos, gravação dos dados no cartão de memória e remoção do arquivo de texto do cartão de memória.

Definição de Bibiliotecas, Objetos e variáveis

Primeiramente, realizamos a definição das bibliotecas e os objetos criados para o sensor BMP280 e o Módulo SD Card, conforme apresentado no código abaixo.

<code>#include &lt;SD.h&gt;
#include &lt;SPI.h&gt;
#include &lt;Wire.h&gt;
#include &lt;Adafruit_Sensor.h&gt;
#include &lt;Adafruit_BMP280.h&gt;

File myFile;

Adafruit_BMP280 SensorBMP; //Criacao do Objeto SensorBMP

#define BotaoGravar 9 
#define LEDVerde 4
#define LEDLaranja 5
#define LEDVermelho 3
#define BotaoRST 2

byte pinoCS = 10; //Pin 10 para Nano/UNO

unsigned long int tempo_atual = 0; //Variavel utilizada para armazenar o tempo de execucao atual do codigo
unsigned long ultimo_tempo = 0; //Variavel utilizada para armazenar o ultimo valor armazenado na variavel tempo_atual

int DigitalValue = 0;

byte count = 0, samples = 1;

bool state = 0, ButtonControl = 0, control = 0;</code>

Nas linhas de 1 a 5 declaramos todas as bibliotecas e, em seguida, declaramos o objeto myFile. Este objeto será utilizado para manipulação das funções do cartão de memória.

Posteriormente, foi criado o objeto SensorBMP. Através dele, você manipulará todas as funções do sensor BMP280.

Logo após, foram definidos 5 nomes para os pinos de conexão dos LED’s e botões.

Em seguida, foram declaradas e inicializadas todas as variáveis, que serão explicadas ao longo da discussão da lógica principal.

Agora, apresentaremos o processo de inicialização e configuração do sensor BMP280 e módulo SD Card, conforme apresentados no circuito da Figura 2.

datalogger-com-arduino
Figura 2 – Circuito do Datalogger com Arduino e Sensor BMP280.

Inicialização dos Módulo SD Card e do Sensor BMP280

Inicialmente, realizamos as configurações dos dispositivos dentro da função setup. Inicialmente, configuramos os pinos de conexão dos LED’s, botões e pino CS como entrada e saídas, conforme apresentado a seguir.

<code>void setup()
{
    
    //Executado uma vez quando ligado o Arduino
    pinMode(LEDVermelho, OUTPUT);
    pinMode(LEDLaranja, OUTPUT);
    pinMode(LEDVerde, OUTPUT);
    pinMode(BotaoGravar, INPUT);
    pinMode(BotaoRST, INPUT);
    pinMode(pinoCS, OUTPUT); //Define o pinoSS como saida
    
    if (!SensorBMP.begin(0x76)) //Verificacao da Inicializacao do Sensor no Endereco 0x76
    {
      digitalWrite(LEDVermelho, HIGH);
      while (1); //Entra no Loop, caso o sensor nao seja identificado
    }

    if (SD.begin())//Inicializa o SD Card
    { 
      Serial.println("SD Card pronto para uso."); //Imprime na tela
    }
    else
    {
      Serial.println("Falha na inicialização do SD Card.");
      digitalWrite(LEDVermelho, HIGH);
      return;
    }
}</code>

Posteriormente, realizamos a inicialização do sensor BMP280. Ele possui 7 pinos e pode ser configurado através da comunicação I2C ou SPI. Neste artigo, utilizaremos sua comunicação I2C. Desse modo, podemos configurá-lo em dois endereços: 0x76 ou 0x77.

Para configurá-lo no endereço 0x76 conectamos o pino SDO em nível lógico baixo. Caso contrário, configuramos o pino SDO para nível lógico alto, a fim de utilizarmos o endereço 0x77.

Portanto, para esse projeto, o configuramos para o endereço 0x76.

Na linha 12, realizamos a inicialização do sensor. Caso ele não seja inicializado corretamente, apresentará um erro e acionará um LED vermelho, a fim de sinalizar um problema.

Logo, caso seja inicializado corretamente, não acionará o LED e o módulo SD Card será inicializado.

Em seguida, o mesmo processo será repetido para o cartão de memória. Assim, caso ocorra qualquer problema, o LED vermelho será acionado, conforme apresentado na Figura 3.

datalogger-com-arduino
Figura 3 – LED Sinalizador para Problemas com Sensor ou Cartão de Memória do Datalogger.

Dessa forma, sempre que o LED vermelho for acionado, o usuário deverá verificar o cartão de memória ou o sensor. Após corrigir o problema, o dispositivo deverá ser reiniciado para iniciar sua operação normal.