Contenido del curso

                Actividad 18

                 

                Monitoreo y control de temperatura

                En esta actividad, imagina que tenemos un invernadero y quieres que sea inteligente. Para ello vamos a monitorear la medida obtenida del sensor de temperatura DS18B20 y reaccionar en función del valor de la misma encendiendo dos LEDs: el rojo simulará el encendido de un sistema de calefacción, mientras el azul será un sistema de refrigeración.

                Dependiendo de la temperatura medida, el sistema responderá con los LEDs en diferentes estados. Si la temperatura es inferior a 20ºC, se encenderá el LED rojo (se activa la calefacción), mientras que si está por encima de los 30ºC, se encenderá el LED azul (se activa la refrigeración). Cuando la lectura de temperatura se encuentre entre estos dos valores, ninguno de los sistemas se activará.


                Recuerda que la extensión de MentorBit para mBlock incluye el siguiente bloque con el que podemos
                obtener la lectura actual del sensor DS18B20:


                Recuerda que para incluir una librería previamente instalada en nuestro programa, debemos utilizar
                la sentencia siguiente:

                #include <MentorBitSensores.h>

                En nuestro ejemplo incluiremos la librería MentorBitSensores, que facilita el uso de los diferentes sensores
                con MentorBit.
                Recuerda que la librería de MentorBitSensores da acceso a la conexión del sensor DS18B20 empleando las
                siguientes referencias:

                - miObjetoMentorBitSensores.DS18B20
                Recuerda que la librería de MentorBitSensores da acceso a la siguiente función específica que devuelve
                la lectura del sensor DS18B20 directamente en grados centígrados como un dato de tipo float:

                miMentorBitSensores.obtenerLecturaDS18B20();


                Puedes descargar la solución pinchando en el siguiente icono:

                 
                #include <MentorBit.h>
                #include <MentorBitSensores.h>

                // Declaración de instancia de las clases
                MentorBit miMentorBit;
                MentorBitSensores miMentorBitSensores;

                // Inicialización del sketch
                void setup() {

                    // Configuramos los dos LEDs por defecto apagados
                    digitalWrite(miMentorBit.LED_ROJO, LOW);
                    digitalWrite(miMentorBit.LED_AZUL, LOW);

                }

                // Bucle principal del sketch
                void loop() {

                    // Obtención de la temperatura leída por el sensor DS18B20
                    float temperatura = miMentorBitSensores.obtenerLecturaDS18B20();

                    // Modificación del estado de los LEDs en función de la temperatura
                    if(temperatura < 20) { // Comprobamos que la temperatura esté por debajo de 20ºC

                        // Encendemos el LED rojo (calefacción) y apagamos el LED azul (refrigeración)
                        digitalWrite(miMentorBit.LED_ROJO, HIGH);
                        digitalWrite(miMentorBit.LED_AZUL, LOW);

                    } else if(temperatura > 30) { // Comprobamos que la temperatura esté por encima de 30ºC

                        // Apagamos el LED rojo (calefacción) y encendemos el LED azul (refrigeración)
                        digitalWrite(miMentorBit.LED_ROJO, LOW);
                        digitalWrite(miMentorBit.LED_AZUL, HIGH);

                    } else { // Caso por defecto, temperatura adecuada

                        // Apagamos el LED rojo (calefacción) y el LED azul (refrigeración)
                        digitalWrite(miMentorBit.LED_ROJO, LOW);
                        digitalWrite(miMentorBit.LED_AZUL, LOW);

                    }

                    // Esperamos un poco antes de continuar
                    delay(1000);

                }

                Actualmente no se dispone de una solución que no emplee nuestra librería.
                                                                                                        Vistas
                                                                                                        14 Número de vistas
                                                                                                        14 Vistas de miembros
                                                                                                        0 Vistas públicas
                                                                                                        Acciones
                                                                                                        0 Gustos
                                                                                                        0 No me gusta
                                                                                                        0 Comentarios
                                                                                                        Compartir en redes sociales
                                                                                                        Compartir enlace
                                                                                                        Compartir por correo

                                                                                                        Por favor iniciar sesión para compartir esto webpage por correo.