miércoles, 16 de febrero de 2022

Encuesta de satisfacción con Arduino y BT

 

Una de las ideas para promover la mejora del cole por parte de @isramaesfran, el director, es poner un punto de encuesta de satisfacción en el centro. La intención es (y le cito, que para eso es idea suya):

"incrementar la participación del alumnado en la valoración de su día a día y, en especial, en los servicios donde son los principales usuarios y a quienes benefician o perjudican las actuaciones que llevamos a cabo."

Existen diversas empresas que ofrecen soluciones comerciales, pero Israel me preguntó si se podría hacer algo así, así que he preparado un dispositivo muy sencillo basado en Arduino que envía los datos registrados a un dispositivo móvil por BT.

Como ha habido algunas personas que se han interesado por el proyecto, lo dejo documentado por aquí por si le sirve a alguien.



Antes de nada, dejo por aquí los diferentes archivos:

  El montaje con Arduino es bastante sencillo:

Tenemos:

  • Una placa Arduino, en este caso Arduino UNO
  • Cuatro pulsadores con cuatro resistencias para montarlos en modo pull down.
  • Un módulo Bluetooth HC-05
  • Un LED, aunque se puede usar el integrado en la placa.

El programa es muy sencillo: Cuando la lectura del pulsador Excelente es  VERDADERO, es decir, cuando el pulsador está presionado, enviamos el número 1 a través del puerto serie, en este caso mediante el Bluetooth HC-05. Se enciende el LED indicando que se ha valorado y, durante 2 segundos, el LED se mantiene encendido. En este tiempo no se puede registrar otra valoración. Después se apaga el LED indicando que se puede introducir una nueva valoración.

Aquí podéis descargar el archivo .ino, y dejo por aquí el código comentado:

int Excelente = 2; //Asignamos el pin 2 al pulsador que registrala valoración Excelente
int Bien = 3; //Asignamos el pin 3 al pulsador que registrala valoración Bien
int Regular = 4; //Asignamos el pin 4 al pulsador que registrala valoración Reular
int Mal = 5;//Asignamos el pin 5 al pulsador que registrala valoración Mal
int led = 13; //Asignamos el pin 13 al LED que registra la valoración

void setup() {
    pinMode(Excelente, INPUT); //Indicamos que el pin 2 actúa como entrada
    pinMode(Bien, INPUT); //Indicamos que el pin 3 actúa como entrada
    pinMode(Regular, INPUT); //Indicamos que el pin 4 actúa como entrada
    pinMode(Mal, INPUT); //Indicamos que el pin 5 actúa como entrada
    pinMode(led, OUTPUT); //Indicamos que el pin 13 actúa como salida
    Serial.begin(9600);
}

void loop() {
    if (digitalRead(Excelente) == true) { // Cuando la lectura del pulsador Excelente es VERDADERO, es decir, cuando el pulsador está presionado
        Serial.println(1); // Enviamos el número 1 através del puerto serie, en este caso mediante el Bluetooth HC-05
        digitalWrite(led, HIGH); // Se enciende el LED indicando que se ha valorado
        delay(2000); // Espera 2 segundos, el LED se mantiene encendido este tiempo, además no se puede registrar otra valoración.
        digitalWrite(led, LOW); // Se apaga el LED indicando que se puede introducir una nueva valoración.
    }
    if (digitalRead(Bien) == true) {
        Serial.println(2);
        digitalWrite(led, HIGH);
        delay(2000);
        digitalWrite(led, LOW);
    }
    if (digitalRead(Regular) == true) {
        Serial.println(3);
        digitalWrite(led, HIGH);
        delay(2000);
        digitalWrite(led, LOW);
    }
    if (digitalRead(Mal) == true) {
        Serial.println(4);
        digitalWrite(led, HIGH);
        delay(2000);
        digitalWrite(led, LOW);
    }
}

Pero el hacerlo con Arduino se debe a que puede facilitar que otras personas lo reproduzcan, porque lo primero que usé fue una placa ZUM de BQ.

Tenemos varias en el cole y al llevar el BT incorporado evita tener que comprar un módulo HC-05 o HC-06.

Además, me apetecía probar la "ya no tan nueva" versión de Bitbloq, que aún no me había puesto con ella. La verdad es que mola no tener que instalar nada y que desde el navegador funcione todo. La anterior incorporaba Arduino (que ahora está disponible en una versión de pago) e incluso la EchidnaShield, pero en esta versión ya no 😢 

Una pena.

Pero, a lo que vamos, que como la idea era usar la ZUM, me vale Bitbloq. Este es el montaje:


He usado

  • La placa ZUM Core
  • Cuatro pulsadores: Excelente, Bien, regular, Mal.
  • Un led testigo para indicar que se está registrando la respuesta a la encuesta.
  • El Bluetooth que la placa lleva incorporado.

El programa, realizado con bloques, queda así:

Al presionar cada pulsador, la placa envía un número diferente mediante BT.

Se enciende un LED testigo que indica que la votación esté en curso y sirve como "Dispositivo antivandálico" (por lo visto las empresas serias llaman así a que no se pueda pulsar repetidas veces un botón en un corto espacio de tiempo, y te cobran ese servicio aparte XD)

Así de sencillo, porque el resto, es decir, llevar la cuenta, lo hace una app en el dispositivo móvil vinculado.


Por último, dejo aquí un vídeo comentando las diferentes partes del proyecto y su funcionamiento:


No hay comentarios:

Publicar un comentario