Está en la página 1de 12

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

FACULTAD DE MECÁNICA

INGENIERÍA DE MANTENIMIENTO

“DESARROLLO DE UN CIRCUITO PARA MEDICIÓN DE TEMPERATURA CON


SENSORES LM35, DHT11 Y ARDUINOS”

Autores:
Marlon Omar Ilbay Telenchano
Alex Paul Molina Tapia
Jairon Gabriel Manzo Puma

Tutor:
Ing. Julio Cajamarca

Riobamba – Ecuador
2022
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

1. OBJETIVOS

2.1 GENERAL

Desarrollar un circuito para medición de temperatura con sensores LM35, DHT11 y


Arduino

2.2 ESPECÍFICOS.

 Determinar las características técnicas de los sensores LM35 Y DHT11


 Realizar pruebas, mediciones experimentales y evaluar el funcionamiento del sistema de
medición de temperatura.
 Analizar el comportamiento y la comunicación serial entre el Arduino UNO y NANO

2. ACTIVIDADES POR DESARROLLAR

Realizar la toma de datos de los sensores LM35 y DHT11 con un Arduino (cualquier
Arduino), estos datos serán transmitidos al segundo Arduino (debe de tener dos puertos de
comunicaciones, considerar que el puerto 1 esté conectado al USB) de manera que este
realice las comunicaciones directamente a un computador en el cual se visualizara toda la
toma de datos de los sensores.

3. MATERIALES

• Sensor LM35
• Sensor DHT11
• Arduinos Uno
• Arduino Nano
• Cables
• Computadora
• Protoboard
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

4. FUNDAMENTO TEORICO

Comunicación serial Arduino


Los puertos de comunicación serial nos proporcionan la forma más efectiva de comunicar
nuestra paca de Arduino con nuestro ordenador, y como podrás notarlo a través de esta
comunicación podremos mandar diferentes órdenes a nuestro Arduino para automatizar procesos
o incluso recibir informaciones importantes para mostrarlas en la pantalla de nuestro
computador.
La comunicación serial entre dos dispositivos únicamente utiliza 3 líneas las cuales son:
5. Línea de recepción de datos (RX)
6. Línea de transmisión de datos (TX)
7. Línea común (GND)

¿Qué es TX y RX en Arduino?
El TX y RX del Arduino son los dos pines que emplea el dispositivo para realizar la
comunicación por medio del protocolo serial. Los datos, por lo tanto, son transmitido en la línea
o pin TX y son recibidos por la línea o pin RX.
Sensor de temperatura LM35
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

El LM35 es un circuito electrónico sensor que puede medir temperatura. Su salida es analógica,
es decir, te proporciona un voltaje proporcional a la temperatura. El sensor tiene un rango desde
−55°C a 150°C. Su popularidad se debe a la facilidad con la que se puede medir la temperatura.
Incluso no es necesario de un microprocesador o microcontrolador para medir la temperatura.
Dado que el sensor LM35 es analógico, basta con medir con un multímetro, el voltaje a salida
del sensor.
Para convertir el voltaje a la temperatura, el LM35 proporciona 10mV por cada grado
centígrado. También cabe señalar que ese sensor se puede usar sin offset, es decir que, si
medimos 20mV a la salida, estaremos midiendo 2°C.
Características principales:
§ Resolución: 10mV por cada grado centígrado.
§ Voltaje de alimentación. Por ejemplo, esté sensor se puede alimentar desde 4Vdc hasta
20Vdc.
§ Tipo de medición. Salida analógica.
§ Numero de pines: 3 pines, GND, VCC y VSalida.
§ No requiere calibración.
§ Tiene una precisión de ±¼°C.
§ Esta calibrado para medir °C.
§ Consumo de corriente: 60 Μa
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

Sensor de temperatura DHT11

El DHT11 es un sensor digital de temperatura y humedad relativa de bajo costo y fácil uso.
Integra un sensor capacitivo de humedad y un termistor para medir el aire circundante, y muestra
los datos mediante una señal digital en el pin de datos (no posee salida analógica).
Características:
§ Tensión de alimentación de 3 a 5 voltios
§ Corriente máxima de alimentación 2,5 mA
§ Rango de humedad relativa 20% a 80% con 5% de exactitud
§ Rango de temperatura de 0 a 50ºC con +-2ºC de exactitud
§ Velocidad de 1 medida por segundo
§ Tamaño 15,5mm x 12mm x 5,5mm
§ Conexión de 4 pines

8. PROCEDIMIENTO
Descargamos el Arduino Id de la tienda de Windows y procedemos a conectar el Arduino Uno
que lo utilizaremos como el maestro, y el Arduino Nano que será el que reciba la información y
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

lo utilizaremos como el esclavo. Para poder utilizar nuestros códigos debemos descargar e
instalar 2 librerías adiciones que son la <DHT11.h> que sirve para poder receptar los datos de
nuestro sensor, y la otra librería es la <SoftwareSerial.h> que se utiliza para la comunicación
serial entre los Arduino.

 El código que utilizaremos en el Arduino Uno es el siguiente:

#include <SoftwareSerial.h> //libreria de comunicacion serial


#include <Separador.h> //libreria de separacion de datos concatenados
Separador s; //operador para separacion

SoftwareSerial mySerial(8, 9); // RX, TX //puerto virtual de comunicacion

String valores; //string para datos leidos

void setup() {

Serial.begin(9600); //puerto serial para la computadora


while (!Serial) {
; // espera a que conectes el usb
}
Serial.println("Iniciando lectura de datos");

mySerial.begin(9600); //inicio puerto virtual

void loop() {

if (mySerial.available()) { //detecta si recibe datos

valores= mySerial.readStringUntil('\n'); //lee datos hasta salto de linea


String dhtemp = s.separa(valores, '/', 0); //separa primer dato por "/"
String dhHum = s.separa(valores, '/', 1); //separa segundo dato por "/"
String lmTem = s.separa(valores, '/', 2); //separa tercer dato por "/"
Serial.println("---------------------------");
Serial.print("DHT11 Temp: "+dhtemp+"| ");
Serial.print("DHT11 Hum: "+dhHum+"| ");
Serial.println("Lm35 Temp: "+lmTem);

}
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

 El código que utilizaremos en el Arduino Nano es el siguiente:

#include <DHT11.h> //cargamos la librería DHT

int pin = 2; //pin datos dht11


DHT11 dht11(pin); //Se selecciona el DHT11 (hay //otros DHT)
const int sensorPin = A0; //pin de lectura analogica
String valores; //variable string para envio de cadena

void setup() {
Serial.begin(9600); //Se inicia la comunicación serial
}
void loop() {

float temp, hum; //variables temperatura y humedad


int err; //variable error lectura sensor dht11
int value = analogRead(sensorPin); //lectura analogica pin A0
float millivolts = (value / 1023.0) * 5000; //conversion valor analogico a voltaje
float celsius = millivolts / 10; //conversion voltaje a grados

if ((err = dht11.read(hum, temp)) == 0) //comparacion de medicion dht11


{
temp = temp;
hum = hum;
}
else
{
err = 0;
}

valores = String(temp) + "/" + String(hum) + "/" + String(celsius);// cadena de valores


Serial.println(valores); //envio de datos
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

delay(300); //retardo de envio


}

 Conectamos el sensor LM35 de 3 terminales, el primer terminal se conecta a un voltaje


límite de 5 voltios, el terminal del medio proporciona la salida de voltaje que está
conectado al pin A0 de la placa Arduino Nano y de esta foma el Arduino Nano recibe la
información obtenida por el sensor, el último terminal está conectado a tierra.
 Se procede a conectar el DHT11 integrado dentro de un PCB que ya viene con la
resistencia pull-up integrada, y cuenta con 3 terminales, el primer terminal se conecta a
un voltaje límite de 5 voltios, el terminal 2 es la salida digital y lo conectamos al pin D2
de nuestro Arduino Nano. Y el ultimo terminal se conecta a la tierra GND. Y este sensor
nos dara dos valores que son la humedad y la temperatura.
 El siguiente paso es conectar el puerto serial de nuestros Arduinos mediante los pines Rx
que será nuestro receptor y Tx que es el que transmite los datos que recibe nuestro
Arduino Nano por parte de nuestros sensores hacia nuestro Arduino Uno.
 Conectamos el Arduino Uno mediante el cable al computador y abrimos el Arduino Id y
corremos nuestro programa y recibimos los datos que han recibido los sensores.

9. DISCUSIÓN Y ANALISIS
El Arduino Nano es el encargado de medir lo que está dando de voltaje el sensor DHT11 y el
LM35
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

El sensor DHT11 es un sensor digital por lo cual se debe conectarle positivo o negativo y la
salida va al pin número 2 es decir (es una trama de datos) donde se debe cargar una librería para
que se encargue de decodificar la trama de datos y dar los dos valores que se mide, que son la
humedad y temperatura.

Las librerías incorporadas para la codificación se llaman <DHT11.h>, encontramos de igual


manera el LM 35 donde su valor es analógico lineal que se comporta de tal forma que, si le
alimenta con voltaje 5 voltios y dependiendo de la energía que se envía, dará una referencia en
milivoltios dependiendo a cómo se está comportando el ambiente, por ejemplo:

Si se tiene una temperatura de 35 °c es igual a 3,5 milivoltios


Si me da una lectura de 40 mV me da 4°c

1 ° c=10 mV

mV ∗1 ° c
40 =4 ° c
10 mV

Donde se lee una medida analógica cuando va estar conectada en el AC, la medida dada se debe
transformar a voltaje porque yo se sabe que 0.40 voltios se puede pasar como lectura analógica
pero se lee 0 a 1024 con Arduino, donde lo mencionado se transformaría de cero a 5 voltios y el
resultado lo transformaría a grados.

10. CONCLUSIONES

 El sensor DHT11 además de medir la temperatura, nos proporciona la humedad, y al


enviar datos digitales tiene una estabilidad muy alta.
 El comportamiento del sensor LM35 no fue lo correspondiente a su lectura habitual
enviando valores random, de modo que se relacionó con un segundo sensor LM35 donde
su voltaje entre tierra y el pin de salida nos marca un valor de 0,25 V comparando con el
multímetro la respectiva transformación a mV y °c correspondió a 25ºc de temperatura de
ambiente.
 El Arduino tiene incorporado un soporte para la comunicación en serie en los pines 0 y 1,
pero estos pines también van al conector USB, lo que dificulta el poder usarlos, se utiliza
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

la librería software_serial para emular este proceso y permitir la comunicación en serie


por otros pines digitales del Arduino, si la librería software_serial intenta emular, pero no
logra hacerlo por ende no se puede enviar información, debido a esto se creó un puerto
virtual y desde el mismo se va transmitir hacia el Arduino, esto se puede realizar, si
enviamos con un puerto virtual hacia el Arduino, donde la trama de datos saldrá pero solo
datos extras que dañan toda la trama ya que no se especifica para poder enviar desde un
puerto virtual por tal motivo siempre se debe enviar con un puerto físico que está creado
desde el Arduino hacia el otro Arduino, se puede leer con virtual pero no pueden enviar.

11. RECOMENDACIONES

 Identificar los sensores correctamente y verificar con el multímetro ya que pude haber
errores de voltaje en dicho sensor.
 Verificar que los instrumentos estén bien calibrados para tomar la lectura de los sensores
y así minimizar el porcentaje de error que pude existir al medir la temperatura.
 Identificación de los materiales necesarios correctamente para la elaboración del circuito
deseado.

12. BIBLIOGRAFÍA

§ html.alldatasheet.es. (2022). DHT11 Datasheet(1/8 Pages) ETC2 | Temperature humidity

module. Alldatasheet.es.

https://html.alldatasheet.es/html-pdf/1132088/ETC2/DHT11/109/1/DHT11.html

§ html.alldatasheet.es. (2022). LM35 Datasheet(3/15 Pages) TI1 | LM35 Precision

Centigrade Temperature Sensors. Alldatasheet.es.

https://html.alldatasheet.es/html-pdf/517588/TI1/LM35/165/3/LM35.html
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

§ Sensor de Temperatura analógico LM35. (2021). Naylamp Mechatronics - Perú.

https://naylampmechatronics.com/sensores-temperatura-y-humedad/234-sensor-de-

temperatura-analogico-lm35.html#:~:text=LM35%20es%20un%20sensor%20de,una

%20precisi%C3%B3n%20de%200.5%C2%BAC.

13. ANEXO
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

También podría gustarte