Guia sensor digital de temperatura e umidade AM2320 com Arduino

Tempo de leitura: 6 minutes

Neste guia, você aprenderá como usar o sensor digital de temperatura e umidade AM2320 com o Arduino. Incluí um diagrama de fiação e um código de exemplo para ajudá-lo a começar!

Para este tutorial, usaremos a biblioteca Adafruit Unified Sensor em combinação com a biblioteca de sensores Adafruit AM2320. Essas bibliotecas tornam a comunicação com o sensor via I2C muito fácil. Na primeira parte deste artigo, você pode encontrar as especificações e a pinagem do AM2320. A seguir, veremos como conectar o sensor ao Arduino.

O esboço de exemplo no final deste tutorial pode ser usado para fazer leituras de temperatura do sensor e exibir os resultados no Monitor Serial.

Se você gostaria de saber mais sobre outros sensores de temperatura, verifique os artigos abaixo.

Artigos recomendados

Se você tiver alguma dúvida, deixe um comentário abaixo.

 

Suprimentos

Componentes de hardware

Sensor digital de temperatura e umidade AM2320 × 1
Arduino Uno × 1
ProtoBoard × 1
Jumper de fios × 4
Cabo USB tipo A/B × 1

 

Sobre o AM2320

O AM2320 é um sensor digital de temperatura e umidade de baixo custo fabricado pela ASAIR. Este sensor é semelhante aos sensores DHT11/DHT22 populares, mas também apresenta uma interface I2C em vez do protocolo de comunicação de barramento único que muitos dos outros sensores DHTxx usam. Você pode encontrar um tutorial dedicado para o DHT11 e DHT22 aqui:

O sensor consiste em um elemento sensor de umidade capacitivo e um elemento de medição de temperatura integrado de alta precisão conectado a um microprocessador. A faixa de medição de temperatura do sensor é de -40 a 80 graus Celsius, com uma precisão declarada de ± 0,5°C.

 

Humidade relativa

Quando você olha o datasheet do sensor, você verá que ele mede a umidade relativa (UR) do ar e não a umidade absoluta. Mas qual é a diferença? A umidade absoluta é a quantidade de vapor d’água no ar (expressa em g/m³), independente da temperatura. A umidade relativa leva a temperatura em consideração.

A umidade relativa é a razão entre a quantidade real de vapor d’água presente no ar e a quantidade máxima de vapor d’água que o ar pode reter em uma determinada temperatura.

O ar quente pode reter mais água do que o ar frio. Isso significa que, para a mesma quantidade de vapor d’água no ar, a umidade relativa do ar frio será maior do que a do ar quente. Com 100 por cento de umidade relativa, o ar está saturado e está em seu ponto de orvalho.

 

Pinagem AM2320

A pinagem do sensor é a seguinte:

Pino Nome Descrição
1 VDD Pino positivo da fonte de alimentação (3,1 – 5,5 V)
2 SDA Dados seriais, porta bidirecional
3 GND Terra
4 SCL Porta de entrada de relógio serial (terra de barramento único)

O endereço I2C padrão do sensor é 0x5C e não pode ser alterado.

Você pode encontrar mais especificações do sensor na tabela abaixo.

 

Especificações AM2320

Tensão de alimentação 3.1 – 5.5 V
Consumo de energia Repouso: 10 μA
Medindo: 950 μA
Faixa de umidade 0 – 99.9 % RH ± 3 % RH
Faixa de temperatura -40 – 80 °C ± 0.5 °C
Interface I2C
1-Wire
Período de amostragem 2.0 s
Dimensões corporais 15 x 12.1 x 4.5 mm
Custo Custo Aproximado em torno de 10 a 20R$

Para mais informações, você pode verificar o datasheet aqui:

Dimensões AM2320

 

Conectando AM2320 ao Arduino

Conectar o AM2320 ao Arduino é muito fácil, como você pode ver no diagrama abaixo.

Sensor digital de temperatura e umidade AM2320 com diagrama de ligação Arduino

As conexões também são fornecidas na tabela abaixo

Conexões AM2320

AM2320 Arduino
Pino 1 (VDD) 5 V
Pino 2 (SDA) A4
Pino 3 (GND) GND
Pino 4 (SCL) A5

Se você não estiver usando um Arduino Uno, os pinos SDA e SCL podem estar em um local diferente. Um Arduino Uno com o layout R3 (pinagem 1.0), também tem os cabeçalhos de pinos SDA (linha de dados) e SCL (linha do relógio) próximos ao pino AREF. Verifique a tabela abaixo para mais detalhes.

Placa SDA SCL
Arduino Uno A4 A5
Arduino Nano A4 A5
Arduino Micro 2 3
Arduino Mega 2560 20 21
Arduino Leonardo 2 3
Arduino Due 20 21

Localizações de pinos SDA e SCL em diferentes placas Arduino.

 

Instalando as bibliotecas necessárias do Arduino

Para este guia, usaremos a biblioteca Adafruit Unified Sensor e a biblioteca de sensores Adafruit AM2320.

Para instalar essas bibliotecas, vá para Tools > Manage Libraries (Ctrl + Shift + I no Windows) no IDE do Arduino. O Library Manager irá abrir e atualizar a lista de bibliotecas instaladas.

Agora procure por “sensor unificado adafruit” e procure a biblioteca Sensor unificado Adafruit. Selecione a versão mais recente e clique em Instalar.

Instale a biblioteca de sensores Adafruit AM2320 da mesma maneira.

 

Código de exemplo do Arduino para sensor de temperatura e umidade AM2320

O código de exemplo a seguir pode ser usado para fazer leituras de temperatura e umidade do sensor e exibir os resultados no Monitor Serial do IDE do Arduino.

Você pode fazer upload do código de exemplo para o seu Arduino usando o IDE do Arduino.

Para copiar o código, clique no botão no canto superior direito do campo do código.

/* Exemplo de código para sensor de temperatura e umidade AM2320 I2C com Arduino. */
// Inclui as bibliotecas necessárias:
#include <Adafruit_Sensor.h>
#include <Adafruit_AM2320.h>
// Crie uma nova instância da classe Adafruit_AM2320:
Adafruit_AM2320 AM2320 = Adafruit_AM2320();
void setup() {
  // Comece a comunicação serial a uma taxa de transmissão de 9600:
  Serial.begin(9600);
  // Configurar o sensor;
  AM2320.begin();
}
void loop() {
  // Leia a temperatura e a umidade:
  float tempC = AM2320.readTemperature();
  float tempF = tempC * 1.8 + 32; // converte Celsius em Fahrenheit
  float humidity = AM2320.readHumidity();
  // Imprima a temperatura e umidade no Monitor Serial:
  Serial.print("Temperatura: ");
  Serial.print(tempC);
  Serial.print(" \xC2\xB0"); // mostra o símbolo de grau
  Serial.print("C  |  ");
  Serial.print(tempF);
  Serial.print(" \xC2\xB0"); // mostra o símbolo de grau
  Serial.println("F");
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println(" %RH");
  // Aguarde 2 segundos entre as leituras:
  delay(2000);
}

Você deve ver a seguinte saída no Monitor Serial (Ctrl + Shift + M):

Certifique-se de que a taxa de transmissão no Monitor serial também esteja definida como 9600.

Como funciona o código

A primeira etapa é incluir o Adafruit AM2320 e a biblioteca Unified Sensor.

// Inclui as bibliotecas necessárias:
#include <Adafruit_Sensor.h>
#include <Adafruit_AM2320.h>

Em seguida, você precisa criar uma nova instância da classe Adafruit_AM2320. Neste caso, chamei o sensor de ‘AM2320’, mas você também pode usar outros nomes, como ‘temperatura_sensor

// Crie uma nova instância da classe Adafruit_AM2320:
Adafruit_AM2320 AM2320 = Adafruit_AM2320();

No setup(), iniciamos a comunicação serial a uma taxa de transmissão de 9600. Certifique-se de que o Monitor Serial também esteja definido como 9600. Também inicializamos o sensor com AM2320.begin().

void setup() {
  // Comece a comunicação serial a uma taxa de transmissão de 9600:
  Serial.begin(9600);
  // Configurar o sensor;
  AM2320.begin();
}

Na seção de loop do código, eu começo fazendo leituras de temperatura e umidade do sensor com as funções readTemperature() e readHumidity(). Observe que readTemperature() retorna a temperatura em Celsius.

// Leia a temperatura e a umidade:
float tempC = AM2320.readTemperature();
float tempF = tempC * 1.8 + 32; // converte Celsius em Fahrenheit
float humidity = AM2320.readHumidity();

Por último, imprimo os resultados no Monitor Serial e adiciono um atraso entre as leituras. O intervalo mínimo entre as leituras é de 2 segundos (consulte o datasheet), então adicionei um atraso de 2 segundos.

// Imprima a temperatura e umidade no Monitor Serial:
  Serial.print("Temperatura: ");
  Serial.print(tempC);
  Serial.print(" \xC2\xB0"); // mostra o símbolo de grau
  Serial.print("C  |  ");
  Serial.print(tempF);
  Serial.print(" \xC2\xB0"); // mostra o símbolo de grau
  Serial.println("F");
  Serial.print("Umidade: ");
  Serial.print(humidity);
  Serial.println(" %RH");
  // Aguarde 2 segundos entre as leituras:
  delay(2000);

 

Conclusão

Neste guia, mostrei como usar o sensor de temperatura e umidade AM2320 com o Arduino. Espero que você tenha achado útil e informativo. Se sim, compartilhe com um amigo que também gosta de eletrônicos e de fazer coisas!

Eu adoraria saber quais projetos você planeja construir (ou já construiu) com este sensor. Se você tiver alguma dúvida, sugestão, ou se achar que falta alguma coisa neste tutorial, deixe um comentário abaixo.

 

Visits: 1 Visits: 1192541