El sensor NTC (Termistor) se conecta a un Arduino para medir la temperatura del entorno. Utilizando el display OLED SH1106, el Arduino muestra en tiempo real la lectura de temperatura captada por el termistor, permitiendo la visualización instantánea de los cambios de temperatura. En caso de de exceso de temperatura cortara la energía del circuito, para evitar que se dañe
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
Componentes electrónicos del proyecto
Arduino Nano
El Arduino Nano es una placa pequeña, completa y compatible con la placa de pruebas basada en el ATmega328 (Arduino Nano 3.x). Tiene más o menos la misma funcionalidad del Arduino Duemilanove, pero en un paquete diferente. Solo carece de un conector de alimentación de CC y funciona con un cable USB Mini-B en lugar de uno estándar.
Microcontrolador | ATmega328 |
Arquitectura | AVR |
Tensión de funcionamiento | 5 V |
Memoria flash | 32 KB de los cuales 2 KB utiliza el gestor de arranque |
SRAM | 2 KB |
Velocidad de reloj | 16 MHz |
Pines analógicos IN | 8 |
EEPROM | 1 KB |
Corriente CC por pines de E / S | 40 mA (pines de E / S) |
Voltaje de entrada | 7-12 V |
Pines de E / S digitales | 22 (6 de los cuales son PWM) |
Salida PWM | 6 |
El consumo de energía | 19 mA |
Tamaño de PCB | 18 x 45 mm |
Peso | 7 g |
Diagrama de pines
Un Zócalo para arduino
Pines hembra
Módulo Relay
ESPECIFICACIONES TÉCNICAS
- Voltaje de Operación: 5V DC
- Señal de Control: TTL (3.3V o 5V)
- Nº de Relays (canales): 1 CH
- Capacidad máx: 10A/250VAC, 10A/30VDC
- Corriente máx: 10A (NO), 5A (NC)
- Tiempo de acción: 10 ms / 5 ms
- Para activar salida NO: 0 Voltios
Cables dupont hembra macho
Display oled sh1106
Se trata de un módulo de pantalla OLED monocromática DE 128×64 puntos con interface I2C .Que presenta varias ventajas en comparación con pantallas LCD, y podemos destacar su alto brillo, un muy buen contraste, un ángulo de visión más amplio, y bajo consumo de energía. ES compatible con Arduino Rasberry Pi y microcontroladores PIC entre otros. Trabaja con niveles lógicos de 3.3V a 5V tiene un angulo de visión mayor a los 160 grados. el Tamaño de la pantalla es de 1,3 pulgadas. Se alimenta con un voltaje de 3.3V a 5V Se lo puede usar en aplicaciones como relojes inteligentes, MP3, termómetros, instrumentos, y proyectos varios, etc.
Características
- Interface: I2C(3.3V / 5V logic level)
- Resolution: 128 x 64
- Angle of view: >160 degree
- Display color: Blue
- Display size: 1.3 inch
- Driver IC: SH1106
- Power supply: DC 3.3V~5V
- Operating temperature: -20~70’C
- Application: smart watch, MP3, thermometer, instruments, DIY projects, etc.
PCB
Módulo KY-013
El módulo de sensor de temperatura analógica KY-013 consta de un termistor NTC y una resistencia de 10 kO. La resistencia del termistor varía con la temperatura ambiente, usaremos la ecuación de Steinhart-Hart para obtener la temperatura precisa del termistor.
Tensión de funcionamiento 5V
Rango de medición de temperatura -55 ° C a 125 ° C [-67 ° F a 257 ° F]
Precisión de la medición ± 0.5 ° C
DIAGRAMA DE CONEXIÓN KY-013
Conecte la línea de alimentación de la placa (medio) y la tierra (-) a 5V y GND, respectivamente. Conecte la señal (S) al pin A0 en el Arduino.
Diagrama electrónico del pcb
Circuito
Código Fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#include <U8g2lib.h> U8G2_SH1106_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE); // Definir el pin del sensor NTC y la resistencia de referencia const int ntcPinA0 = A0; // Conecta el sensor NTC a un pin analógico const float varlorResistor = 10000.0; // Valor de la resistencia en ohmios int D4 = 4;//Pin para activar desactivar relay // Valores de resistencia conocidos a temperatura de referencia (25°C) const float refResistancia = 10000.0; // Valor de resistencia a 25°C void setup() { // Iniciamos la comunicación serie Serial.begin(9600); //Configuramos el pin D4 como salida pinMode(D4, OUTPUT); //Y lo ponemos en estado Alto digitalWrite(D4, HIGH); // Inicializamos el display SH1106 u8g2.begin(); u8g2.setPowerSave(0); } void loop() { // Leemos el valor del sensor NTC int sensorValor = analogRead(ntcPinA0); // Calculamos la resistencia del NTC float voltage = sensorValor * (5.0 / 1023.0); // Convertir el valor a voltaje float ntcResistancia = (varlorResistor * voltage) / (5.0 - voltage); // Calculamos la temperatura en grados Celsius float temperatura; temperatura = ntcResistancia / refResistancia; // (R/Ro) temperatura = log(temperatura); // ln(R/Ro) temperatura /= 3950.0; // 1/B * ln(R/Ro) temperatura += 1.0 / (25 + 273.15); // + (1/To) temperatura = 1.0 / temperatura; // Invertir temperatura -= 273.15; // Convertir a Celsius // Mostramos la temperatura en el display SH1106 u8g2.clearBuffer(); u8g2.setFont(u8g2_font_ncenB14_tr); u8g2.setCursor(0, 30); u8g2.print("Temperatura:"); u8g2.setCursor(0, 60); u8g2.print(temperatura, 2); // Muestra la temperatura con 2 decimales u8g2.print(" C"); u8g2.sendBuffer(); // Mostramos la temperatura en el monitor serie Serial.print("Temperatura: "); Serial.print(temperatura); Serial.println(" °C"); //Si es igual o mayor a 30 grados celcius if(temperatura >= 30.00){ digitalWrite(D4, LOW); }else { digitalWrite(D4, HIGH);//Activamos si cae a menos de 30 grados } delay(1000); // Esperaramos 1 segundo antes de realizar otra lectura } |
PROYECTO RECOMENDADO