Arduino - sensor de temperatura - relé

Este tutorial muestra cómo usar un Arduino y un sensor de temperatura DS18B20 para controlar un relé. Específicamente, el Arduino se programa para medir continuamente la temperatura con el sensor DS18B20. Luego, el relé se ajusta de acuerdo con las siguientes reglas:

El relé luego puede conectarse a un ventilador, a un elemento calefactor, a un elemento de enfriamiento u otras cosas.

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×Sensor de Temperatura DS18B20 (con Adaptador)
1×Sensor de Temperatura DS18B20 (sin Adaptador)
1×Relé
1×Conector de Alimentación DC
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

Acerca del relé y del sensor de temperatura

Si no conoces el relé y el sensor de temperatura (disposición de pines, cómo funciona, cómo programar ...), aprende sobre ellos en los siguientes tutoriales:

Diagrama de Cableado

  • Diagrama de cableado con placa de pruebas
Diagrama de cableado del relé para sensor de temperatura de Arduino

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado con adaptador (recomendado)
Diagrama de cableado del sensor de temperatura DS18B20 y del relé para Arduino

This image is created using Fritzing. Click to enlarge image

Se sugiere adquirir un sensor DS18B20 que viene con un adaptador de cableado para facilitar la conexión. El adaptador tiene una resistencia integrada, lo que elimina la necesidad de una resistencia adicional en el cableado.

Código de Arduino - El sensor de temperatura activa el relé

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-temperature-sensor-relay */ #include <OneWire.h> #include <DallasTemperature.h> const int RELAY_PIN = A5; // Arduino pin connected to the relay's pin const int SENSOR_PIN = 2; // Arduino pin connected to DS18B20 sensor's DATA pin const float TEMPERATURE_THRESHOLD = 20; // °C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensor(&oneWire); // pass oneWire to DallasTemperature library float temperature; int relay_state; void setup() { Serial.begin(9600); // initialize serial pinMode(RELAY_PIN, OUTPUT); sensor.begin(); // initialize the sensor } void loop() { sensor.requestTemperatures(); // send the command to get temperatures temperature = sensor.getTempCByIndex(0); // read temperature in Celsius if (temperature > TEMPERATURE_THRESHOLD) relay_state = HIGH; // set relay_state to HIGH else relay_state = LOW; // set relay_state to LOW digitalWrite(RELAY_PIN, relay_state); // control the relay // print to serial Serial.print("Temperature: "); Serial.print(temperature); Serial.print("°C => relay's state: "); Serial.println(relay_state); }

Pasos R\u00e1pidos

  • Realiza el cableado entre Arduino, el sensor de temperatura y el relé como se indica en el diagrama anterior.
  • Conecta Arduino a la PC mediante un cable USB.
  • Abre Arduino IDE, selecciona la placa y el puerto correctos.
  • Navega hasta el icono Librerías en la barra izquierda del IDE de Arduino.
  • Busca “DallasTemperature”, luego encuentra la librería DallasTemperature de Miles Burton.
  • Haz clic en el botón Instalar para instalar la librería DallasTemperature.
Biblioteca de temperatura Dallas para Arduino
  • Se le pedirá que instale la dependencia de la biblioteca.
  • Haga clic en el botón Instalar Todo para instalar la biblioteca OneWire.
Biblioteca OneWire para Arduino
  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para cargar el código en Arduino
  • Ajusta la temperatura alrededor del sensor de temperatura
  • Observa el cambio del relé
  • Observa el resultado en el Monitor Serial; se muestra a continuación:
COM6
Send
Temperature: 19.1°C => relay's state: 0 Temperature: 19.3°C => relay's state: 0 Temperature: 19.7°C => relay's state: 0 Temperature: 19.8°C => relay's state: 0 Temperature: 20.1°C => relay's state: 1 Temperature: 20.6°C => relay's state: 1 Temperature: 21.4°C => relay's state: 1
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Código de Arduino - El sensor de temperatura activa el relé con tolerancia

Durante la operación, la temperatura puede experimentar fluctuaciones por encima o por debajo del umbral predeterminado, lo que provoca cambios de estado frecuentes y repentinos en el relé, lo que puede causar problemas operativos imprevistos. Para abordar este problema, es posible incluir un margen de tolerancia en el umbral. El código a continuación demuestra cómo se puede implementar esta solución:

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-temperature-sensor-relay */ #include <OneWire.h> #include <DallasTemperature.h> const int RELAY_PIN = A5; // Arduino pin connected to the relay's pin const int SENSOR_PIN = 2; // Arduino pin connected to DS18B20 sensor's DATA pin const float TEMPERATURE_THRESHOLD = 20; // °C const float TOLERANCE = 0.5; // °C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensor(&oneWire); // pass oneWire to DallasTemperature library float temperature; int relay_state; void setup() { Serial.begin(9600); // initialize serial pinMode(RELAY_PIN, OUTPUT); sensor.begin(); // initialize the sensor } void loop() { sensor.requestTemperatures(); // send the command to get temperatures temperature = sensor.getTempCByIndex(0); // read temperature in Celsius if (temperature > (TEMPERATURE_THRESHOLD + TOLERANCE)) relay_state = HIGH; // set relay_state to HIGH else if (temperature < (TEMPERATURE_THRESHOLD - TOLERANCE)) relay_state = LOW; // set relay_state to LOW digitalWrite(RELAY_PIN, relay_state); // control the relay // print to serial Serial.print("Temperature: "); Serial.print(temperature); Serial.print("°C => relay's state: "); Serial.println(relay_state); }

El código mostrado arriba especifica un umbral de 20 °C y una tolerancia de 0,5 °C. Se aplican las siguientes condiciones:

  • Si la temperatura está por debajo de 19,5 °C, el relé se apaga.
  • Si la temperatura está por encima de 20,5 °C, el relé se enciende.
  • Si la temperatura está entre 19,5 °C y 20,5 °C, el estado del relé se mantiene sin cambios.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!