Tabla de contenido:

Sistema de alarma inalámbrico Arduino con sensores existentes: 9 pasos (con imágenes)
Sistema de alarma inalámbrico Arduino con sensores existentes: 9 pasos (con imágenes)

Video: Sistema de alarma inalámbrico Arduino con sensores existentes: 9 pasos (con imágenes)

Video: Sistema de alarma inalámbrico Arduino con sensores existentes: 9 pasos (con imágenes)
Video: ALARMA PARA LADRONES - TINKERCAD | ARDUINO 2024, Mes de julio
Anonim
Sistema de alarma inalámbrico Arduino usando sensores existentes
Sistema de alarma inalámbrico Arduino usando sensores existentes
Sistema de alarma inalámbrico Arduino usando sensores existentes
Sistema de alarma inalámbrico Arduino usando sensores existentes
Sistema de alarma inalámbrico Arduino usando sensores existentes
Sistema de alarma inalámbrico Arduino usando sensores existentes
Sistema de alarma inalámbrico Arduino usando sensores existentes
Sistema de alarma inalámbrico Arduino usando sensores existentes

Este proyecto se puede construir en aproximadamente media hora a un costo de aproximadamente $ 20.00 si tiene sensores de alarma inalámbricos existentes de 433Mhz o 315Mhz.

También puede ser un proyecto completamente nuevo con sensores de alarma inalámbricos, como detectores de movimiento por infrarrojos e interruptores de lengüeta, disponibles en línea de manera fácil y económica. Simplemente busque sensores de 433 Mhz o 315 Mhz que utilicen la codificación PT2262 o EV1527.

Estoy seguro de que hay muchas personas como yo que han comprado un sistema de alarma GSM / 2G con sensores inalámbricos y están contentos con él, sin embargo, cuando la red 2G / GSM se apagó donde vivo, me quedé con un sistema de alarma que pude. ya no programe ni fije la hora en él. Un día, mientras me preguntaba qué podía hacer para que mi alarma volviera a funcionar, se me ocurrió comprobar si un Arduino podía recibir señales de los sensores. Me encontré con un https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ instuctable y después de algunos experimentos determiné que podía recibir las señales de mis sensores existentes. Comencé el proceso para construir un sistema de alarma que pudiera reemplazar mi alarma existente y también proporcionaría una mayor funcionalidad. Uno de los problemas con la alarma anterior fue nunca saber exactamente cuál de los 25 sensores se activó, al agregar una pantalla LCD a mi nueva configuración de alarma, ahora obtengo un texto en la pantalla LCD que indica exactamente qué sensor se activó. La nueva alarma aún se puede armar manualmente con mis llaveros inalámbricos existentes y tiene un reloj de tiempo real para permitir que se arme y desarme automáticamente en momentos preestablecidos del día.

Suministros

Consulte las notas adicionales al final para asegurarse de que utiliza la versión correcta de estas piezas.

Arduino Uno o similar

Módulo receptor de 433 o 315 MHz para Arduino

Módulo DS3231 Real Time Clock para Arduino

Módulo LDC I2C 16x2 para Arduino

Interruptores de lengüeta de alarma inalámbricos, sensores de movimiento y llaveros a distancia, según lo desee

Zumbador piezoeléctrico

LED y resistencia de 220 ohmios

Protoboard (opcional pero recomendado)

Fuente de alimentación adecuada para Arduino

Cables de puente, etc.

PC con Arduino IDE instalado

Conocimientos básicos de Arduino

Paso 1: Suministros

Suministros
Suministros
Suministros
Suministros
Suministros
Suministros

Algunas imágenes de arriba de los suministros que necesitará para este proyecto

Paso 2: Conecte el Ardunio y los módulos como se muestra en la imagen

Conecte el Ardunio y los módulos como se muestra en la imagen
Conecte el Ardunio y los módulos como se muestra en la imagen

Piezo entre el pin 5 del Arduino y la tierra

LED entre el pin 8 del Arduino y una resistencia de 220ohm y luego a tierra

Receptor de 433 o 315 Mhz, VCC a 5V, GND a tierra y cualquiera de los 2 pines de datos al pin2 del Arduino

Módulo LCD I2C 16X2 VCC a 5V, GND a tierra, pines SCL SDA a SCL SDA del Arduino (el pin A5 es SCL, el pin A4 es SDA)

Módulo DS3231 RTC VCC a 5V, GND a tierra, pines SCL SDA a SCL SDA del Arduino (hay un segundo conjunto ubicado encima de los pines GND y AREF de la mayoría de los Arduino)

Sé que algunos de ustedes no necesitarán más información que esta y el boceto adjunto a continuación, pero entraré en más detalles para cualquiera que desee un poco más de ayuda.

Paso 3: agregue las bibliotecas necesarias al IDE de Arduino

Agregue las bibliotecas necesarias al IDE de Arduino
Agregue las bibliotecas necesarias al IDE de Arduino
Agregue las bibliotecas necesarias al IDE de Arduino
Agregue las bibliotecas necesarias al IDE de Arduino
Agregue las bibliotecas necesarias al IDE de Arduino
Agregue las bibliotecas necesarias al IDE de Arduino

El Arduino Sketch para ejecutar la alarma utiliza algunas bibliotecas que no están instaladas en el IDE de Arduino de forma predeterminada.

Para agregar la biblioteca RCSwitch al IDE de Arduino. Abra el IDE de Arduino en el menú superior, seleccione "Sketch", luego en el menú desplegable seleccione "Incluir biblioteca" y en el siguiente menú desplegable seleccione "Administrar bibliotecas". Luego, en el cuadro "Filtrar su búsqueda", escriba "RCSW", luego haga clic en instalar para "rc-switch by sui77"

Instrucciones detalladas sobre cómo agregar bibliotecas en

Mientras estamos en eso, también necesitamos agregar las bibliotecas llamadas Time, TimeAlarms, DS1307RTC y LiquidCrystal_I2C, el mismo procedimiento que el anterior pero buscando el nombre de cada nueva biblioteca e instalando. Consulte las capturas de pantalla anteriores si no está seguro de qué bibliotecas utilizar.

El reloj en tiempo real DS3231 es compatible y utiliza la biblioteca DS1307RTC.

Paso 4: A continuación, necesitamos obtener los códigos para sus sensores

A continuación, necesitamos obtener los códigos para sus sensores
A continuación, necesitamos obtener los códigos para sus sensores
A continuación, necesitamos obtener los códigos para sus sensores
A continuación, necesitamos obtener los códigos para sus sensores

He proporcionado la plantilla del código Arduino a continuación, pero deberá encontrar los valores para cada uno de sus sensores y pegarlos en el código.

Hay mucha información sobre cómo obtener estos códigos en ambos sitios;

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

Sin embargo, aquí está mi versión abreviada;

Para obtener los códigos que envían sus sensores y llaveros remotos, conecte el Arduino como se ensambló en el paso 1 a una PC mediante un cable USB y abra el IDE de Arduino. Luego, en el IDE de Arduino, vaya al menú desplegable "Archivo", luego vaya a "Ejemplos", desplácese hacia abajo en la lista de bocetos de ejemplo hasta que encuentre "RCSWITCH", luego seleccione el boceto "ReceiveDemo_Advanced" y cárguelo en Arduino. Una vez que el boceto se cargue correctamente, abra el monitor en serie del Arduino IDE con él todavía conectado a su PC a través de USB. Ahora active el primero de los sensores para los que desea obtener el código, la salida de RCSwitch aparecerá en la ventana del monitor en serie. Para este proyecto, buscamos los códigos decimales como se resalta en la captura de pantalla 2. Deberá activar el sensor varias veces buscando el valor decimal que aparece con mayor frecuencia, a veces habrá diferentes valores mezclados con el valor verdadero, esto se debe a por interferencia de ondas de radio aleatorias u otros dispositivos que operan en la misma frecuencia.

Anote el código decimal del sensor para utilizarlo en el siguiente paso. Repita para todos los sensores y llaveros remotos que desea usar en el proyecto, realizando un seguimiento de qué código va con qué sensor. Si usa llaveros para armar y desarmar la alarma, necesitará anotar los diferentes códigos para el botón de armado y el botón de desarmado de cada control remoto.

Paso 5: Plantilla de código Arduino

A continuación se muestra una copia de mi código Arduino como un archivo.ino llamado Wireless_Alarm. Puede hacer clic en él y debería abrirse en el IDE de Arduino. No soy un programador, mi código se ensambla en parte a partir de los ejemplos que se encuentran en el IDE de Arduino, probablemente no sea particularmente elegante, pero funciona y ha sido confiable durante un largo período de tiempo.

Recuerde volver a guardar el boceto después de realizar los cambios para incluir los códigos de sus propios sensores.

Paso 6: Pegue los códigos que obtuvo en el Paso 5 en la plantilla Arduino Sketch

Ahora los pasos para personalizar el código de los sensores y mandos a distancia que está utilizando.

Si abre el boceto Wireless_Alarm en su IDE, verá en la línea 111.

if (mySwitch.getReceivedValue () == 115166236) // Código del botón de armado del mando

Donde en el código existente dice 115166236, necesita reemplazar ese número con el código decimal para el botón de armado de su mando a distancia que registró en el Paso 5.

Por ejemplo, si en el paso 5 obtuvo un decimal 1154321, modificaría la línea 111 para que lea ahora;

if (mySwitch.getReceivedValue () == 1154321) // Código del botón de armado del mando

Siga el mismo procedimiento para la línea 125.

if (mySwitch.getReceivedValue () == 115166234) // Código del botón de desarmado del mando

Sustituya 115166234 por el código del botón de desarmado del mando a distancia que registró en el paso 5.

Si desea utilizar varios mandos a distancia para armar y desarmar, copie y pegue las líneas 111 a 136 tantas veces como sea necesario, luego cambie los valores para que se adapten a sus otros mandos a distancia, pero es mejor comenzar con un mando a distancia hasta que esté seguro de que ha modificado. el boceto está funcionando.

Ahora a codificar los sensores de alarma en el croquis de la línea 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Acción para el armario de oficina del emisor de señales

Saque 1151640 e inserte el valor decimal de uno de sus sensores de alarma.

Luego en la línea 158.

lcd.print (F ("Armario de oficina")); // imprime un mensaje en la pantalla LCD para saber qué sensor se activó (y ve a buscar al ladrón:)

Cambie el armario de la oficina por lo que le gustaría que se muestre en la pantalla LCD para ese sensor. Por ejemplo, si desea que diga cocina o haga que la línea se vea así;

lcd.print (F ("Cocina")); // imprime un mensaje en la pantalla LCD para saber qué sensor se activó (y ve a buscar al ladrón:)

Los nombres no deben exceder los 16 caracteres.

Entre las líneas 165 y 187 hay una plantilla para copiar y pegar tantas veces como sea necesario en las líneas directamente debajo de 187. Reemplace el número después de mySwitch.getReceivedValue () == con el decimal de uno de sus otros sensores que registró en el paso 5 y cambie el nombre dentro de "" en lcd.print (F ("sensornamehere")); al nombre que desee darle a su sensor.

Si no está utilizando mandos a distancia para armar y desarmar su alarma, puede simplemente ignorar las líneas 111-136 o poner // al comienzo de cada una de las líneas no deseadas y Arduino no las leerá.

Recuerde guardar el archivo después de haber realizado los cambios.

Paso 7: Cargue el.ino modificado a su Arduino y pruébelo

Sube el.ino modificado a tu Arduino y prueba
Sube el.ino modificado a tu Arduino y prueba
Sube el.ino modificado a tu Arduino y pruébalo
Sube el.ino modificado a tu Arduino y pruébalo
Sube el.ino modificado a tu Arduino y prueba
Sube el.ino modificado a tu Arduino y prueba

Con el Arduino aún conectado a su PC por USB, cargue el boceto en la placa Arduino. Una vez que la carga se haya completado con éxito, la pantalla LCD debería mostrar "Alarma en desarmado". Presione el botón de armado en su control remoto y la pantalla LCD debe leer "Alarma en armado" y el LED debe estar encendido para hacerle saber que está armado, ahora active un sensor mientras está armado, la pantalla LCD debe leer Alarma seguida de una marca de tiempo y la ubicación del sensor, el zumbador debe sonar durante 2 minutos a menos que presione el botón de desarmado. Si no obtiene este resultado, vuelva a verificar los códigos que obtuvo en el Paso 5 y los cambios que realizó en el código en el paso anterior, y también vuelva a verificar el cableado de todos los componentes. Si la pantalla LCD no lee nada, hay un ajuste de contraste en la parte posterior del módulo LCD. Una vez que el contraste esté configurado correctamente, si la pantalla LCD aún no lee, intente cambiar la dirección de la pantalla LCD de 0x3f a 0x27 en la línea 12 del esquema. Solución de problemas de LCD aquí Tutorial de LCD I2C

Paso 8: Configuración de la hora en el módulo RTC y cambio de los tiempos de armado y desarmado

Con suerte, su RTC ya se configuró con la hora correcta, pero si no abre el IDE, seleccione 'Archivo' y, en el menú desplegable, haga clic en "Ejemplos", desplácese hacia abajo hasta "DS1307RTC" y seleccione el boceto "SetTime", descargue el boceto a su Arduino y establecerá el reloj en tiempo real con la hora de su PC. Luego deberá volver a cargar el boceto Wireless_Alarm en su Arduino.

El Wireless_Alarm.ino que he proporcionado configurará de forma predeterminada la alarma para que se active automáticamente a las 10.15 p. M. Todas las noches y se desactive a las 6.00 a. M. Cada mañana. Para cambiar estos tiempos, modifique el Sketch en las líneas 71 y 72. El tiempo está entre paréntesis después de Alarm.alarmRepeat en el formato HH, MM, SS. cambie esto a la hora que más le convenga.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // DESARMAR tiempo

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // Hora de ARM

Entonces, para cambiar el tiempo de desarmado a las 9.15 a.m. y el tiempo de armado a las 5.30 p.m., el código se vería así

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // DESARMAR tiempo

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // Hora de ARM

Si no desea que la alarma se active y desactive automáticamente, coloque // delante de las 2 líneas y no se utilizarán.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // DESARMAR tiempo

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Tiempo de armado

El tiempo durante el que suena el zumbador de la alarma se puede cambiar modificando la línea 22

intervalo largo constante = 120000; // para un retraso de milisegundos durante el tiempo que suena la alarma

El intervalo está en milisegundos, por lo que 120000 = 120 segundos, si se cambia 120000 a 30000, la alarma sonará durante 30 segundos.

Un solenoide para hacer funcionar una sirena, luz estroboscópica, pitido de alto volumen, etc. también se puede conectar al pin 7 o al pin 9 y funcionará durante el "intervalo" como se estableció anteriormente. Tenga en cuenta que la carga máxima para un pin Arduino no debe exceder los 40 mA.

Paso 9: Notas adicionales

Al seleccionar un módulo receptor de 433 o 315 MHz para Arduino, debe elegir la frecuencia para que coincida con los sensores de alarma que desea utilizar. Sugiero comprar un módulo que viene con una pequeña antena helicoidal en espiral para un mejor rendimiento, alternativamente, una antena de cable recto de 17,3 mm de largo también aumenta el rendimiento.

Con el módulo LCD de 16x2 debe usar un LCD I2C de 4 pines para usar las instrucciones y el código que proporciono aquí, se podría hacer con un LCD estándar de 16 pines pero no funcionará con el cableado o el código aquí.

Los interruptores de lengüeta de alarma inalámbricos, los sensores de movimiento y los llaveros remotos deben ser de 433 Mhz o 315 Mhz para que coincidan con el receptor que desea usar y deben usar la codificación PT2262 o EV1527.

La alarma es ampliable y adaptable, ya agregué una tarjeta SD para grabar cuando se activan los sensores, modifiqué la pantalla LCD para que solo se encienda cuando se mantenga presionado un botón y agregué una sirena de 100dB, pero no he incluido detalles aquí para mantener el artículo como lo más breve y sencillo posible. Espero que compartir el trabajo que he realizado con esta alarma sea de alguna utilidad para otros.

Feliz de responder cualquier pregunta.

Gracias.

Recomendado: