Categoría: Sensores

  • Sistema de gestión de batería avanzado Analogico + SBS

    Sistema de gestión de batería avanzado Analogico + SBS

    A veces, en ingeniería, el reto no es solo crear algo nuevo, sino hacer que conviva con lo que ya existe. Hace poco estuve trabajando en un proyecto muy interesante que resume perfectamente esta idea: un sistema de gestión y registro de baterías (Datalogger) capaz de hablar dos “idiomas” distintos.

    El problema: Lo viejo vs. Lo nuevo

    En el mundo de las baterías hay, básicamente, dos grandes grupos conviviendo:

    1. Las baterías “inteligentes” (SBS): Son las modernas. Ellas mismas te dicen “estoy al 80%”, “tengo esta temperatura” o “me quedan tantos ciclos de vida”. Se comunican digitalmente.
    2. Las baterías “tradicionales” (Analógicas): Son las de toda la vida. No “hablan”, así que para saber cómo están tienes que medir físicamente su voltaje, la corriente que entra y sale, y usar sondas externas para vigilar que no se calienten.

    El objetivo era crear un cerebro único que pudiera manejar ambas situaciones sin despeinarse.

    La solución: Un sistema híbrido

    Desarrollé un firmware capaz de trabajar en dos modos. Si el sistema detecta una batería moderna, se comporta como un “host” digital: lee directamente los datos internos (voltaje, amperaje, salud de la batería) a través de protocolos de comunicación estándar. Es limpio y preciso.

    Pero, si conectamos una batería analógica, el sistema cambia el chip. Pasa a usar sensores físicos para leer la corriente y el voltaje, y gestiona sondas de temperatura externas para asegurarse de que todo opera dentro de los márgenes de seguridad.

    ¿Por qué es útil esto?

    Lo bonito de este desarrollo es la versatilidad. El dispositivo no solo gestiona la carga, sino que actúa como una “caja negra”:

    • Registro de datos: Guarda un historial diario en una tarjeta SD con todo lo que pasa (ciclos de carga, temperaturas, potencias…).
    • Seguridad: Tiene alarmas programadas. Si una batería se calienta demasiado o baja de cierto nivel, el sistema avisa y corta para prevenir daños, da igual si la batería es digital o analógica.
    • Visualización: Toda la info se muestra sencilla en una pantalla OLED para que el usuario sepa qué pasa de un vistazo.

    Al final, este proyecto ha sido un buen ejercicio de adaptación. La electrónica sirve para hacer de puente entre tecnologías distintas, alargando la vida útil de los equipos y mejorando la seguridad, sea cual sea la batería que se use.

  • Sensor de humedad de suelo con control de alimentación (moisture-sensor-for-plants)

    Sensor de humedad de suelo con control de alimentación (moisture-sensor-for-plants)

    moisture-sensor-for-plants

    Este proyecto implementa un sistema básico para medir la humedad del suelo mediante un microcontrolador, optimizando el consumo de energía de la sonda gracias a un pin de alimentación controlado por software. Está diseñado para facilitar la integración en entornos de bajo consumo o alimentados por baterías.

    Ver repositorio en Github

    Objetivo

    Obtener lecturas confiables del nivel de humedad del suelo mientras se evita la corrosión y el consumo innecesario de corriente de la sonda, encendiéndola solo durante el tiempo mínimo necesario para la medición.

    Estructura del proyecto

    El código está organizado en tres partes principales:

    1. Encabezado (moisture.h)

    Define la interfaz de uso:

    • moistureInit(): inicializa los pines para alimentar la sonda y leer la señal analógica.
    • moistureSetWarmup(): permite configurar el tiempo de precalentamiento antes de la medición.
    • moistureRead(): realiza la lectura del valor crudo del ADC.

    2. Implementación (moisture.cpp)

    Contiene la lógica de funcionamiento:

    • Al inicializar, configura el pin de alimentación como salida y lo apaga por defecto.
    • Durante la lectura, habilita la alimentación, espera el tiempo de calentamiento configurado (300 ms por defecto) y luego toma la muestra analógica.
    • Apaga la alimentación inmediatamente después de la lectura para reducir la corrosión y el consumo.

    3. Sketch principal (moisture1.ino)

    Ejemplo de uso que inicializa el sensor con pines definidos, configura el precalentamiento si es necesario y lee los valores de humedad periódicamente, mostrando los resultados por el puerto serial.

    Características destacadas

    • Control programático de la alimentación de la sonda.
    • Configuración flexible del tiempo de precalentamiento.
    • Lectura directa del valor analógico en formato crudo (0–1023).
    • Diseño modular para facilitar la reutilización en otros proyectos.

    Aplicaciones

    El sistema está pensado para proyectos de riego automático, monitoreo de jardines o cultivos, y cualquier implementación que requiera reducir el consumo y prolongar la vida útil de sondas de humedad

  • SENSOR FINGERPRINT 071405

    SENSOR FINGERPRINT 071405

    El FINGERPRINT 071405 es un sensor óptico de huella digital compacto y fácil de integrar en proyectos de seguridad y acceso biométrico. Ofrece detección rápida y un alto nivel de precisión, lo que lo convierte en una opción recomendada para cerraduras inteligentes, control de asistencia y aplicaciones IoT.


    Principio de funcionamiento

    1. Captura óptica: Una pequeña cámara CMOS interna ilumina el dedo con un LED infrarrojo y toma una imagen de la huella.
    2. Procesado interno: El propio módulo extrae los “minucias” (optimiza las crestas y valles) y genera un template digital.
    3. Comparación: El microcontrolador puede enviar patrones de huella almacenados para comprobación o pedir al sensor que registre un nuevo usuario.

    Especificaciones técnicas

    • Resolución: 500 dpi
    • Interface: UART TTL (3,3 V lógico)
    • Voltaje de alimentación: 3,6 V – 6 V
    • Corriente en reposo: ≈ 40 mA
    • Corriente en captura: ≈ 60 mA
    • Tiempo de verificación: < 1 s
    • Plantillas almacenables: hasta 2 000
    • Dimensiones: 35 × 20 × 16 mm

    Conexión al microcontrolador

    1. Alimentación: VIN a 5 V, GND a masa.
    2. Datos:
      • TX del sensor → RX del microcontrolador
      • RX del sensor → TX del microcontrolador
    3. Nivel lógico: Si se trabaja a 3,3 V, asegurar que VIN sea ≥ 3,6 V y usar un conversor de nivel para la señal RX.

    [Sensor] [Microcontrolador]
    VIN ──► 5 V
    GND ──► GND
    TX ──► RX (UART)
    RX ──► TX (UART)*

    • con conversor de nivel si MCU opera a 3,3 V

    Uso con librería Adafruit

    Se recomienda la biblioteca Adafruit Fingerprint para gestionar enrolamiento y verificación de forma sencilla:

    #include <Adafruit_Fingerprint.h>
    #include <HardwareSerial.h>
    
    // Usar Serial1 para ESP32, Serial para otros microcontroladores
    HardwareSerial uart(1);
    Adafruit_Fingerprint sensor(&uart);
    
    void setup() {
      uart.begin(57600, SERIAL_8N1, RX_PIN, TX_PIN);
      sensor.begin(57600);
      if (sensor.verifyPassword()) {
        Serial.println("Sensor listo");
      } else {
        Serial.println("Error de comunicación");
        while (1);
      }
    }
    
    uint8_t getFingerprintID() {
      if (sensor.getImage() != FINGERPRINT_OK) return FINGERPRINT_NOFINGER;
      sensor.image2Tz();
      return sensor.fingerFastSearch();
    }
    
    void loop() {
      uint8_t id = getFingerprintID();
      if (id == FINGERPRINT_NOFINGER) return;
      if (id == FINGERPRINT_OK) {
        Serial.print("Huella reconocida con ID: ");
        Serial.println(sensor.fingerID);
      } else {
        Serial.println("Huella no reconocida");
      }
      delay(1000);
    }
    
    

    Aplicaciones comunes

    • Control de acceso en cerraduras electrónicas
    • Registro de asistencia en oficinas o aulas
    • Autenticación en dispositivos IoT
    • Seguridad en proyectos de domótica y automatización

    Ventajas de el modelo:

    • Rápido y fiable: verificación en menos de 1 s.
    • Alto almacenamiento: hasta 2 000 plantillas.
    • Fácil integración: comunicación por puerto serie TTL.
    • Robustez: carcasa de resina protege el sensor óptico.

    Para maximizar la fiabilidad, se aconseja limpiar periódicamente la superficie y evitar la exposición directa a la luz solar intensa.