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
- La guía completa para los sensores digitales de temperatura DS18B20 con Arduino
- Cómo utilizar los sensores DHT11 y DHT22 con Arduino
- Tutorial del sensor de temperatura analógico TMP36 con Arduino
- Tutorial de sensor de temperatura analógico LM35 con Arduino
Si tiene alguna pregunta, deje un comentario a continuación.
Suministros
Componentes de hardware
Sensor digital de temperatura y humedad AM2320 | × 1 | Amazon |
Arduino Uno | × 1 | Amazon |
Tablero de pruebas | × 1 | Amazon |
Cables de puente | × 4 | Amazon |
Cable USB tipo A/B | × 1 | Amazon |
Software
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 sí 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:
Pin | Nombre | Descripción |
---|---|---|
1 | VDD | Clavija de alimentación positiva (3,1 - 5,5 V) |
2 | SDA | Datos en serie, puerto bidireccional |
3 | GND | Tierra |
4 | SCL | Puerto 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ón | 3.1 - 5.5 V |
Consumo de energía | Sueño: 10 μA Medición: 950 μA |
Rango de humedad | 0 - 99,9 % RH ± 3 % RH |
Rango de temperatura | -40 - 80 °C ± 0,5 °C |
Interfaz | I2C 1-Wire |
Período de muestreo | 2.0 s |
Dimensiones de la carrocería | 15 x 12,1 x 4,5 mm |
Coste | Comprobar el precio |
Para más información, puede consultar la hoja de datos aquí:
Cableado - Conexión del AM2320 al Arduino
Conectar el AM2320 al Arduino es muy fácil como puedes ver en el diagrama de abajo.
Las conexiones también se indican en la siguiente tabla
Conexiones AM2320
AM2320 | Arduino |
---|---|
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.
Junta | 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 |
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.
Esta obra está bajo una licencia de Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Otros enlaces útiles de la web:
Benne is professional Systems Engineer with a deep expertise in Arduino and a passion for DIY projects.