Tabla de contenido:

Detector de ventana abierta Arduino - para invierno: 6 pasos
Detector de ventana abierta Arduino - para invierno: 6 pasos

Video: Detector de ventana abierta Arduino - para invierno: 6 pasos

Video: Detector de ventana abierta Arduino - para invierno: 6 pasos
Video: Alarma inalámbrica muy fácil en solo minutos con Arduino 2024, Noviembre
Anonim
Detector de ventana abierta Arduino - para invierno
Detector de ventana abierta Arduino - para invierno

Afuera hace frío, pero a veces necesito un poco de aire fresco en mis habitaciones. Entonces, abro la ventana, salgo de la habitación, cierro la puerta y quiero volver en 5 a 10 minutos. Y al cabo de unas horas recuerdo que la ventana está abierta… Tal vez tú lo sepas o tengas hijos, que te den esta experiencia.

Mi solución es el detector de ventana abierta. La batería durará más de un año, así que colóquela en otoño y retírela en primavera.

Paso 1: Lista de piezas

Lista de partes
Lista de partes
Lista de partes
Lista de partes
Lista de partes
Lista de partes
Lista de partes
Lista de partes
  1. Tablero Digispark de eBay.
  2. Auriculares viejos.
  3. Botón minúsculo para reiniciar.
  4. Conectores para altavoz; de lo contrario, no es posible reprogramar la placa.
  5. Cable.
  6. Para la fuente de alimentación necesita:

Caja de batería AAA con interruptor de encendido / apagado. Incluso puede usar baterías gastadas, ya que el módulo funcionará hasta 2,4 voltios

O

Batería de lipo vieja (incluso el 30% de la capacidad es suficiente para este propósito) y si aún no la tienes, un cargador para baterías de lipo de eBay.

O

Un soporte para pila tipo botón CR2032

Y

Diodo 1A 1N4001 o equivalente -o lo que tenga en este tamaño- para protección de polaridad inversa

Paso 2: Programación de la placa Digispark

Programación de la placa Digispark
Programación de la placa Digispark
Programación de la placa Digispark
Programación de la placa Digispark

Instalación del controlador

Debe instalar el controlador Digispark antes de poder programar la placa. Descárguelo aquí, ábralo y ejecute "InstallDrivers.exe".

Instalación de Arduino IDE

Instale la placa Digispark para Arduino IDE como se describe en

Recomiendo usar como URL de la placa Digispark en Arduino File / Preferences el nuevo https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json en lugar de https://digistump.com/package_digistump_index.json e instalar el Placas Digistump AVR versión 1.6.8.

Como queremos ahorrar energía, el reloj de la placa se cambia a 1 MHz en nuestra configuración (), puede elegir Digispark (1mhz - Sin USB) como placa en el menú Herramientas.

Compila y sube el programa al tablero

En el IDE de Arduino, cree un nuevo boceto con Archivo / Nuevo y asígnele el nombre, p. Ej. "OpenWindowAlarm". Copie el código de OpenWindowAlarm.ino

O

Descarga y extrae el repositorio. Abra el boceto con Archivo -> Abrir… y seleccione la carpeta "OpenWindowAlarm".

Compílelo y cárguelo. Tenga en cuenta que la carga no funcionará si el altavoz está conectado. Si todo funciona bien, el LED integrado del Digispark parpadeará 5 veces (durante el retraso de alarma de 5 minutos) y luego comenzará a parpadear después de 8 segundos con un intervalo de 24 segundos para señalar cada lectura de temperatura.

Paso 3: Reducción de potencia

Reducción de potencia
Reducción de potencia
Reducción de potencia
Reducción de potencia

Nuestra placa Digispark utiliza 5 mA a 3, 0 voltios. Con 2 pilas AAA (1000 mAh) funcionará durante 8 días. Pero es posible reducir el consumo de energía hasta 26 µA en 3 pasos.

  1. Deshabilitar el LED de encendido rompiendo el cable de cobre que conecta el LED de encendido al diodo con un cuchillo o quitando / deshabilitando la resistencia 102 ahorra 1.3 mA.
  2. Quitar el regulador de voltaje VIN ahorra 1.2 mA.
  3. Desconectar la resistencia USB Pullup (marcada 152) de 5 Voltios (VCC) ahorra los 2.5 mA restantes. Desconéctelo rompiendo el cable de cobre en el lado de la resistencia que apunta al ATTiny. Esto desactiva la interfaz USB y, a su vez, la posibilidad de programar la placa Digispark a través de USB. Para habilitarlo nuevamente, pero aún así ahorrar energía, conecte la resistencia (marcada con 152) directamente al USB de 5 voltios que está fácilmente disponible en el lado exterior del diodo.

    El lado correcto del diodo se puede encontrar usando un probador de continuidad. Un lado de este diodo está conectado al pin 8 del ATtiny (VCC). El otro lado está conectado a USB de 5 voltios.

Ahora, la resistencia pullup USB solo se activa si la placa Digispark está conectada a USB, p. Ej. durante la programación y la placa consume 26 µA durante el reposo.

Si reprograma los fusibles, puede obtener un consumo de energía de 6 µA.

Para reprogramar los fusibles, necesita un ISP (que se puede construir con un Arduino) y un adaptador de conexión. Para reprogramar, puede usar este script.

Paso 4: Botón de reinicio

Botón de reinicio
Botón de reinicio
Botón de reinicio
Botón de reinicio
Botón de reinicio
Botón de reinicio
Botón de reinicio
Botón de reinicio

Si no desea quitar la energía para restablecer la alarma, conecte un botón de restablecimiento entre PB5 y tierra. Hice esto conectando la superficie de cobre VIN desconectada a PB5 y soldando el botón de reinicio directamente al orificio del pin VIN y la gran superficie de tierra del regulador de voltaje VIN eliminado.

Si desea deshacerse de los 5 segundos de espera para la conexión USB después del reinicio, puede cambiar el núcleo de micronúcleos en el ATtiny85. Ejecute el script "0_Burn_upgrade-t85_recommended.cmd" y luego vuelva a cargar la aplicación OpenWindowAlarm con el IDE de Arduino.

Paso 5: altavoz

Vocero
Vocero
Vocero
Vocero
Vocero
Vocero

Desmonté unos auriculares viejos y conecté el conector macho al cable.

Paso 6: funcionamiento

Operando
Operando
Operando
Operando
Operando
Operando

Para usar el tablero, colóquelo en el alféizar de una ventana y conéctelo a una batería. Si la temperatura en el alféizar es más baja que la temperatura donde se encontraba originalmente el tablero, tomará 5 minutos adicionales para adoptar inteligentemente el nuevo valor de inicio.

Entonces se alarmará si deja la ventana abierta más de cinco minutos.

Operación interna

  • Se detecta una ventana abierta después de TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) segundos de leer una temperatura con un valor de TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) menor que la temperatura TEMPERATURE_COMPARE_DISTANCE * TEMPERATURE_SAMPLE_SECONDS y 192 segundos antes de 3 segundos.
  • El retraso se implementa durmiendo 3 veces en `SLEEP_MODE_PWR_DOWN` durante un período de 8 segundos para reducir el consumo de energía.
  • La detección de una ventana abierta se indica mediante un parpadeo más largo de 20 ms y un clic corto cada 24 segundos. Por lo tanto, el sensor interno tiene un tiempo de 3 minutos para ajustarse a la temperatura exterior con el fin de capturar incluso los pequeños cambios de temperatura. Cuanto mayor sea el cambio de temperatura, antes cambiará el valor del sensor y detectará una ventana abierta.
  • `OPEN_WINDOW_ALARM_DELAY_MINUTES` (5) minutos después de la detección de ventana abierta, la alarma se activa.

    La alarma no se iniciará o una alarma activada se detendrá si la temperatura actual es mayor que la temperatura mínima medida (+ 1), es decir, la ventana ya se ha cerrado.

  • La alarma inicial dura 10 minutos. Después de esto, se activa durante un período de 10 segundos con una pausa creciente de 24 segundos a 5 minutos.
  • Cada VCC_MONITORING_DELAY_MIN (60) minutos se mide el voltaje de la batería. Dependiendo del tipo de batería detectado al encender (ver VCC_VOLTAGE_LIPO_DETECTION (3.6 voltios)), un voltaje de batería por debajo de VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) o VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDARD El LED de milivoltios parpadea cada 24 segundos. Solo el pitido (no el flash) es significativamente más largo que el pitido para la detección de una ventana abierta.
  • Después del encendido, el tiempo de asentamiento inactivo es de 5 minutos. Si el tablero se enfría durante el tiempo de estabilización, se agregan 4:15 (o 8:30) minutos para evitar falsas alarmas después del encendido.

Recomendado: