Skip to Content

AM2320 sensor digital de temperatura y humedad tutorial Arduino

AM2320 sensor digital de temperatura y humedad tutorial Arduino

En este tutorial, aprenderás a utilizar el sensor digital de temperatura y humedad AM2320 con Arduino. He incluido un diagrama de cableado y un código de ejemplo para ayudarte a empezar.

Para este tutorial, vamos a utilizar la librería Adafruit Unified Sensor en combinación con la librería de sensores Adafruit AM2320. Estas librerías hacen que la comunicación con el sensor vía I2C sea súper fácil. En la primera parte de este artículo, puedes encontrar las especificaciones y el pinout del AM2320. A continuación, veremos cómo conectar el sensor al Arduino.

El sketch de ejemplo al final de este tutorial puede ser utilizado para tomar lecturas de temperatura del sensor y mostrar los resultados en el Monitor Serial.

Si quiere saber más sobre otros sensores de temperatura, consulte los artículos siguientes.

Artículos recomendados

Si tiene alguna pregunta, deje un comentario a continuación.


Suministros

Componentes de hardware

Sensor digital de temperatura y humedad AM2320× 1Amazon
Arduino Uno× 1Amazon
Tablero de pruebas× 1Amazon
Cables de puente× 4Amazon
Cable USB tipo A/B× 1Amazon

Software

Arduino IDEArduino IDE

Makerguides.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to products on Amazon.com. As an Amazon Associate we earn from qualifying purchases.


Sobre el AM2320

El AM2320 es un sensor digital de temperatura y humedad de bajo coste fabricado por ASAIR. Este sensor es similar a los populares sensores DHT11/DHT22 pero también cuenta con una interfaz I2C en lugar del protocolo de comunicación de bus único que utilizan muchos de los otros sensores DHTxx. Puedes encontrar un tutorial dedicado al DHT11 y al DHT22 aquí:

El sensor consta de un elemento sensor de humedad capacitivo y un elemento de medición de temperatura integrado de alta precisión conectado a un microprocesador. El rango de medición de temperatura del sensor es de -40 a 80 grados Celsius, con una precisión declarada de ± 0,5 °C. 

Humedad relativa

Al consultar la ficha técnica del sensor, verá que mide la humedad relativa (HR) del aire y no la humedad absoluta. Pero, ¿cuál es la diferencia? La humedad absoluta es la cantidad de vapor de agua en el aire (expresada en g/m³), independientemente de la temperatura. La humedad relativa tiene en cuenta la temperatura.

La humedad relativa es la relación entre la cantidad real de vapor de agua presente en el aire y la cantidad máxima de vapor de agua que el aire puede contener a una temperatura determinada.

El aire caliente puede retener más agua que el aire frío. Esto significa que para la misma cantidad de vapor de agua en el aire, la humedad relativa del aire frío será mayor que la del aire caliente. Con una humedad relativa del 100%, el aire está saturado y se encuentra en su punto de rocío.

Pinout del AM2320

El pinout del sensor es el siguiente:

PinNombreDescripción
1VDDClavija de alimentación positiva (3,1 - 5,5 V)
2SDADatos en serie, puerto bidireccional
3GNDTierra
4SCLPuerto de entrada del reloj de serie (tierra de un solo bus)

La dirección I2C por defecto del sensor es 0x5C y no se puede cambiar.

Puede encontrar más especificaciones del sensor en la siguiente tabla.

Especificaciones del AM2320

Tensión de alimentación3.1 - 5.5 V
Consumo de energíaSueño: 10 μA
Medición: 950 μA
Rango de humedad0 - 99,9 % RH ± 3 % RH
Rango de temperatura-40 - 80 °C ± 0,5 °C
InterfazI2C
1-Wire
Período de muestreo2.0 s
Dimensiones de la carrocería15 x 12,1 x 4,5 mm
CosteComprobar el precio

Para más información, puede consultar la hoja de datos aquí:

Dimensiones del AM2320

Cableado - Conexión del AM2320 al Arduino

Conectar el AM2320 al Arduino es muy fácil como puedes ver en el diagrama de abajo.

Sensor digital de temperatura y humedad AM2320 con diagrama de cableado de Arduino
Sensor digital de temperatura y humedad AM2320 con diagrama de cableado de Arduino

Las conexiones también se indican en la siguiente tabla

Conexiones AM2320

AM2320Arduino
Pin 1 (VDD)5 V
Pin 2 (SDA)A4
Pin 3 (GND)GND
Pin 4 (SCL)A5

Si no estás usando un Arduino Uno, los pines SDA y SCL pueden estar en una ubicación diferente. Un Arduino Uno con la disposición R3 (pinout 1.0), también tiene las cabeceras de los pines SDA (línea de datos) y SCL (línea de reloj) cerca del pin AREF. Consulta la tabla siguiente para obtener más detalles.

JuntaSDASCL
Arduino UnoA4A5
Arduino NanoA4A5
Arduino Micro23
Arduino Mega 25602021
Arduino Leonardo23
Arduino Due2021
Ubicación de los pines SDA y SCL en diferentes placas Arduino.

Instalación de las librerías Arduino necesarias

Para este tutorial, vamos a utilizar la biblioteca de sensores unificados de Adafruit y la biblioteca de sensores AM2320 de Adafruit.

Para instalar estas bibliotecas, vaya a Herramientas > Gestionar Bibliotecas (Ctrl + Shift + I en Windows) en el IDE de Arduino. El Administrador de Bibliotecas se abrirá y actualizará la lista de bibliotecas instaladas.

Ahora busque 'adafruit unified sensor' y busque la biblioteca Adafruit Unified Sensor. Selecciona la última versión y haz clic en Instalar.

Instala la biblioteca de sensores Adafruit AM2320 de la misma manera.


AM2320 sensor de temperatura y humedad Código de ejemplo de Arduino

El siguiente código de ejemplo se puede utilizar para tomar las lecturas de temperatura y humedad del sensor y mostrar los resultados en el Monitor Serial del Arduino IDE.

Puedes cargar el código de ejemplo en tu Arduino utilizando el IDE de Arduino.

Para copiar el código, haga clic en el botón de la esquina superior derecha del campo de código.

/* Example code for AM2320 I2C temperature and humidity sensor with Arduino. More info: www.www.makerguides.com */

//  Include the required libraries:
#include 
#include 

// Create a new instance of the Adafruit_AM2320 class:
Adafruit_AM2320 AM2320 = Adafruit_AM2320();

void setup() {
  // Begin serial communication at a baud rate of 9600:
  Serial.begin(9600);

  // Setup the sensor;
  AM2320.begin();
}

void loop() {
  // Read the temperature and the humidity:
  float tempC = AM2320.readTemperature();
  float tempF = tempC * 1.8 + 32; // converts Celsius to Fahrenheit
  float humidity = AM2320.readHumidity();

  // Print the temperature and humidity in the Serial Monitor:
  Serial.print("Temperature: ");
  Serial.print(tempC);
  Serial.print(" \xC2\xB0"); // shows degree symbol
  Serial.print("C  |  ");
  Serial.print(tempF);
  Serial.print(" \xC2\xB0"); // shows degree symbol
  Serial.println("F");
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println(" %RH");

  // Wait 2 seconds between readings:
  delay(2000);
}

Debería ver la siguiente salida en el Monitor Serial (Ctrl + Shift + M):

Asegúrese de que la tasa de baudios en el Monitor Serial también está ajustada a 9600.

Cómo funciona el código

El primer paso es incluir la librería Adafruit AM2320 y Unified Sensor.

//  Include the required libraries:
#include 
#include 

A continuación, necesitas crear una nueva instancia de la clase Adafruit_AM2320. En este caso, llamé al sensor 'AM2320' pero puedes usar otros nombres también, como 'temperature_sensor'.

// Create a new instance of the Adafruit_AM2320 class:
Adafruit_AM2320 AM2320 = Adafruit_AM2320();

En el setup(), iniciamos la comunicación en serie con una velocidad en baudios de 9600. Asegúrese de que el Monitor Serial también está ajustado a 9600. También inicializamos el sensor con AM2320.begin().

void setup() {
  // Begin serial communication at a baud rate of 9600:
  Serial.begin(9600);

  // Setup the sensor;
  AM2320.begin();
}

En la sección de bucle del código, comienzo tomando las lecturas de temperatura y humedad del sensor con las funciones readTemperature() y readHumidity(). Tenga en cuenta que readTemperature() devuelve la temperatura en Celsius.

  // Read the temperature and the humidity:
  float tempC = AM2320.readTemperature();
  float tempF = tempC * 1.8 + 32; // converts Celsius to Fahrenheit
  float humidity = AM2320.readHumidity();

Por último, imprimo los resultados en el Monitor Serial y añado un retardo entre las lecturas. El intervalo mínimo entre lecturas es de 2 segundos (ver hoja de datos), así que añadí un retraso de 2 segundos.

  // Print the temperature and humidity in the Serial Monitor:
  Serial.print("Temperature: ");
  Serial.print(tempC);
  Serial.print(" \xC2\xB0"); // shows degree symbol
  Serial.print("C  |  ");
  Serial.print(tempF);
  Serial.print(" \xC2\xB0"); // shows degree symbol
  Serial.println("F");
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println(" %RH");

  // Wait 2 seconds between readings:
  delay(2000);

Conclusión

En este tutorial, he mostrado cómo utilizar el sensor de temperatura y humedad AM2320 con Arduino. Espero que lo hayas encontrado útil e informativo. Si lo has hecho, ¡compártelo con un amigo al que también le guste la electrónica y hacer cosas!

Me encantaría saber qué proyectos planeas construir (o ya has construido) con este sensor. Si tienes alguna pregunta, sugerencia, o si crees que faltan cosas en este tutorial, por favor deja un comentario abajo.

Tenga en cuenta que los comentarios son retenidos por la moderación para evitar el spam.

Licencia Creative Commons