Contenido del curso

Actividad 26

 

Monitoreo de Temperatura y Luminosidad

Vamos a utilizar una pantalla OLED para crear un medidor de temperatura y luminosidad en tiempo real. Debemos programar el MentorBit para leer los datos del sensor DS18B20 y la lectura de la LDR (convertida a un porcentaje de luminosidad), mostrando los valores en la pantalla OLED. Las medidas deben irse actualizando de manera constante en el tiempo para que obtengamos los valores leídos en la pantalla en tiempo real.


Recuerda que la extensión de MentorBit para mBlock incluye el siguiente bloque con el que podemos
controlar la pantalla OLED:


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

#include <MentorBitPantallas.h>

En nuestro ejemplo incluiremos la librería MentorBitPantallas, que facilita el uso de las diferentes pantallas
con MentorBit.
Recuerda que la librería de MentorBitPantallas da acceso a la conexión de la Pantalla OLED empleando las
siguientes referencias:

- miObjetoMentorBitPantallas.oled
Recuerda que la Pantalla OLED para utilizarla primero debes inicializarla. Esto se consigue con las
siguientes líneas:

miMentorBitPantallas.inicializarOLED();
Recuerda que para controlar la pantalla OLED necesitamos varias funciones:

miMentorBitPantallas.oled.clearDisplay();

clearDisplay; vacía la pantalla, limpiándola.

miMentorBitPantallas.oled.setTextSize(TAMAÑO);

setTextSize; configura el tamaño de la letra a imprimir en la pantalla OLED, con TAMAÑO como número
entero.

miMentorBitPantallas.oled.setCursor(X, Y);

setCursor; configura la ubicación del cursor para determinar dónde imprimir el próximo mensaje en la pantalla, con
X e Y como las coordenadas cartesianas en la OLED.

miMentorBitPantallas.oled.println(MENSAJE);

println; imprime el MENSAJE donde se haya colocado por última vez el cursor. Por defecto se imprime en
las coordenadas X = 0 e Y = 0.

miMentorBitPantallas.oled.display();

display; Actualiza la pantalla con todos los cambios indicados con las instrucciones anteriores.


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

 
#include <MentorBitSensores.h>
#include <MentorBitPantallas.h>

// Declaración de instancia de las clases
MentorBitSensores misSensores;
MentorBitPantallas miMentorBitPantallas;

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

    // Inicializamos la pantalla
    miMentorBitPantallas.inicializarOLED();
    // Configuramos el tamaño del texto
    miMentorBitPantallas.oled.setTextSize(1);
    // Configuramos el color del texto
    miMentorBitPantallas.oled.setTextColor(SSD1306_WHITE);
    // Establecemos la posición inicial del Cursor y mostramos un mensaje inicial
    miMentorBitPantallas.oled.setCursor(300); // Posición centrada
    miMentorBitPantallas.oled.println("Monitoreo de"); // Mostramos este texto
    miMentorBitPantallas.oled.setCursor(2510); // Posición centrada, siguiente línea
    miMentorBitPantallas.oled.println("Temperatura y"); // Mostramos este texto
    miMentorBitPantallas.oled.setCursor(3020); // Posición centrada, siguiente línea
    miMentorBitPantallas.oled.println("Luminosidad"); // Mostramos este texto
    // Actualizamos con los cambios indicados
    miMentorBitPantallas.oled.display();

    // Esperamos un poco antes de empezar y limpiamos la pantalla
    delay(2000);

}

// Bucle principal del sketch
void loop() {

    // Obtenemos las lecturas del DS18B20
    float temperatura = misSensores.obtenerLecturaDS18B20();
    // Obtenemos la lectura de la LDR convertido en porcentaje
    float luminosidad = map(misSensores.obtenerLecturaLDR()010230100);

    // Imprimimos la infomación en la Pantalla OLED
    miMentorBitPantallas.oled.clearDisplay(); // Limpiamos el display
    miMentorBitPantallas.oled.setCursor(00); // Primera línea
    miMentorBitPantallas.oled.println("Temperatura:"); // Mostramos el texto
    miMentorBitPantallas.oled.setCursor(010); // Una línea por debajo
    miMentorBitPantallas.oled.println(temperatura); // Mostramos el valor
    miMentorBitPantallas.oled.setCursor(3510); // Por detrás del valor
    miMentorBitPantallas.oled.println("C"); // Mostramos el símbolo
    miMentorBitPantallas.oled.setCursor(030); // Dos líneas por debajo
    miMentorBitPantallas.oled.println("Luminosidad:"); // Mostramos el texto
    miMentorBitPantallas.oled.setCursor(040); // Una línea por debajo
    miMentorBitPantallas.oled.println(luminosidad); // Mostramos el valor
    miMentorBitPantallas.oled.setCursor(3540); // Por detrás del valor
    miMentorBitPantallas.oled.println("%"); // Mostramos el símbolo
    // Actualizamos con los cambios indicados
    miMentorBitPantallas.oled.display();
    // Esperamos un poco antes de continuar
    delay(250);

}

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.