Reseña del sensor Aidex y su relación con IoT y mHealth

Imagen
En esta publicación quiero compartir mi experiencia personal utilizando el sensor de glucosa Aidex , el cual adquirí en AliExpress. Además de reseñar el dispositivo, quiero hablar sobre cómo se relaciona con el concepto de Internet of Things (IoT) , el área de mHealth (mobile health) y reflexionar sobre los posibles riesgos de seguridad asociados. ¿Qué es IoT? El Internet of Things o Internet de las Cosas se refiere a la conexión de objetos físicos a internet para recolectar, enviar y procesar datos. Estos dispositivos incluyen desde sensores y electrodomésticos inteligentes hasta automóviles conectados. En el caso del Aidex, el chip y el transmisor conectado al cuerpo forman parte de este ecosistema al enviar datos de glucosa en tiempo real a un dispositivo móvil. Mi experiencia con Aidex El kit incluye un sensor, un transmisor y la aplicación móvil. En mi caso, lo conecté con un Xiaomi Mi 13 y logré visualizar las mediciones de glucosa de forma continua en la...

Google Sheets: Crea una Sopa de Letras Interactiva con Script

Creación de la cuadrícula:

  • Define el tamaño , en mi caso utilice una cuadricula de 10x10



  • Utiliza la función "ALEATORIOENTRE" para generar letras aleatorias en cada celda. Por ejemplo, en la celda A1 puedes escribir: =CHAR(INT(RAND()*26)+65) para generar una letra aleatoria mayúscula.
  • Copia esta fórmula a todas las celdas de la cuadrícula.
  • Inserta las palabras que definiste anteriormente. Puedes hacerlo manualmente o utilizando la función BUSCARV si quieres que las palabras aparezcan en un orden específico
  • Otra forma de hacerlo fue con un script o macro
    • Abrir el Editor de Scripts:

      • Ve al menú Extensiones > Apps Script.
    • Crear un Script:

      • Borra cualquier código que aparezca y reemplázalo con el siguiente script:
      javascript
      function fillEmptyCellsWithRandomLetters() {
        var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
        var range = sheet.getDataRange(); // Selecciona todo el rango de datos
        var values = range.getValues(); // Obtén los valores en la cuadrícula
       
        for (var i = 0; i < values.length; i++) {
          for (var j = 0; j < values[i].length; j++) {
            if (values[i][j] === "") { // Si la celda está vacía
              values[i][j] = String.fromCharCode(Math.floor(Math.random() * 26) + 65); // Letra aleatoria de A-Z
            }
          }
        }
       
        range.setValues(values); // Escribe los nuevos valores de vuelta en la hoja
      }


 3. Validación de respuestas:

  • Vamos agregar otro script, 

function validateHighlightedWords() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var words = ["SOL", "TIERRA", "MACETA", "SEMILLA","AGUA"]; // Lista de palabras a validar
  var correct = true;

  for (var i = 0; i < words.length; i++) {
    if (!isWordHighlighted(sheet, words[i])) {
      correct = false;
      break;
    }
  }

  if (correct) {
    SpreadsheetApp.getUi().alert("¡Todas las palabras están correctamente resaltadas!");
  } else {
    SpreadsheetApp.getUi().alert("Revisa las palabras resaltadas.Aun te falta mas");
  }
}

function isWordHighlighted(sheet, word) {
  var dataRange = sheet.getDataRange();
  var data = dataRange.getValues();
  var backgroundColors = dataRange.getBackgrounds();

  // Buscar la palabra en la cuadrícula
  for (var i = 0; i < data.length; i++) {
    for (var j = 0; j < data[i].length; j++) {
      if (checkWordInDirection(data, backgroundColors, word, i, j, 0, 1) || // Horizontal derecha
          checkWordInDirection(data, backgroundColors, word, i, j, 1, 0) || // Vertical hacia abajo
          checkWordInDirection(data, backgroundColors, word, i, j, 1, 1) || // Diagonal hacia abajo a la derecha
          checkWordInDirection(data, backgroundColors, word, i, j, 1, -1))  // Diagonal hacia abajo a la izquierda
      {
        return true;
      }
    }
  }
  return false;
}

function checkWordInDirection(data, backgroundColors, word, row, col, rowDir, colDir) {
  for (var k = 0; k < word.length; k++) {
    if (row + k * rowDir >= data.length || col + k * colDir >= data[0].length ||
        col + k * colDir < 0 ||
        data[row + k * rowDir][col + k * colDir] != word[k] ||
        backgroundColors[row + k * rowDir][col + k * colDir] != "#ffff00") { // "#ffff00" es el código de color para amarillo
      return false;
    }
  }
  return true;
}

Crear un Botón en la Hoja

Insertar un Dibujo:


En la hoja de cálculo, ve al menú Insertar > Dibujo > + Nuevo.

Dentro del editor de dibujo, selecciona la herramienta de formas (Shape) y dibuja un rectángulo o cualquier forma que te guste.

Puedes agregar texto a la forma, como "Validar Sopa de Letras".

Una vez que hayas terminado, haz clic en "Guardar y cerrar".

Asignar el Script al Botón:


Haz clic derecho en el botón que acabas de crear y selecciona "Asignar script".

En el cuadro de diálogo que aparece, escribe el nombre de la función que deseas asignar. En este caso, escribe validateHighlightedWords (que es la función que valida las palabras resaltadas en amarillo).

Haz clic en "Aceptar".

2. Probar el Botón

Haz clic en el botón que acabas de crear en tu hoja de cálculo. Esto debería ejecutar el script validateHighlightedWords y mostrarte una alerta si todas las palabras están resaltadas correctamente.




Consideraciones adicionales:

  • Orientación de las palabras: Puedes hacer que las palabras aparezcan en horizontal, vertical, diagonal o incluso en zigzag.
  • Dificultad: Ajusta el tamaño de la cuadrícula y la cantidad de palabras para adaptar la sopa de letras a diferentes niveles de dificultad.
  • Temática: Crea sopas de letras relacionadas con diferentes temas (animales, países, matemáticas, etc.) para hacerlas más educativas.

Les comparto un video para que vean funcionando la sopa de Letras

                                                         https://youtu.be/kCWgJGpJouc

Si te interesa que te ayudemos creando tus sopas de letras contáctanos por medio del formulario 

Comentarios

🚀 Mantener este blog funcionando requiere tiempo y café. ¡Puedes contribuir con uno aquí!

Entradas más populares de este blog

Guía Práctica: Ejemplo Completo de ASPX para Desarrolladores Web

📊 Automatiza tu trabajo: Convierte tablas de Word a Excel con una macro

API de banxico para obtener tipo de cambio utilizando Javascript