Sistema de alarma inalámbrico basado en Arduino. Alarma de casa o mediante sensor de movimiento y monitor LCD con Arduino Qué usaremos para montar

Durante la última década, el robo de automóviles ha ocupado uno de los lugares más importantes en la estructura de los delitos cometidos en el mundo. Esto se debe no tanto a la gravedad específica de esta categoría de robo en relación con el número total de delitos, sino a la importancia de los daños causados ​​por el elevado coste de los coches. La escasa eficacia de las medidas adoptadas en el ámbito de la lucha contra el robo de vehículos a finales de los años 90 llevó a la creación de grupos estables especializados en la comisión de estos delitos y en la posesión. características distintivas crimen organizado; Probablemente hayas escuchado el término "negocio de automóviles negros". El parque automovilístico de los países europeos carece anualmente de ≈ el 2% de los automóviles que se convierten en objeto de ataques criminales. Por eso, se me ocurrió la idea de hacer una alarma GSM para mi coche basada en Arduino Uno.

¡Vamos a empezar!

¿De qué recaudaremos?

Necesitamos elegir el corazón de nuestro sistema. En mi opinión, para tal señalización no hay nada mejor que Arduino Uno. El criterio principal es un número suficiente de "pines" y el precio.


Características clave de Arduino Uno

Microcontrolador - ATmega328
Tensión de funcionamiento - 5 V
Voltaje de entrada (recomendado) - 7-12 V
Voltaje de entrada (límite) - 6-20 V
Entradas/Salidas digitales: 14 (6 de las cuales se pueden utilizar como salidas PWM)
Entradas analógicas - 6
Corriente constante a través de entrada/salida - 40 mA
Corriente constante para salida 3.3V - 50mA
Memoria flash: 32 KB (ATmega328), de los cuales 0,5 KB se utilizan para el gestor de arranque
RAM - 2 KB (ATmega328)
EEPROM - 1 KB (ATmega328)
Frecuencia de reloj - 16 MHz


¡Encaja!

Ahora debe seleccionar un módulo GSM, porque nuestro sistema de alarma debe poder notificar al propietario del automóvil. Entonces, necesitas buscarlo en Google... Aquí, un sensor excelente: SIM800L, el tamaño es simplemente maravilloso.


Lo pensé y lo pedí desde China. Sin embargo, todo resultó no ser tan color de rosa. El sensor simplemente se negó a registrar la tarjeta SIM en la red. Se intentó todo lo posible y el resultado fue cero.
Encontró buena gente quien me proporcionó más cosa genial- Escudo Sim900. Ahora bien, esto es algo serio. El Shield tiene un micrófono y un conector para auriculares, lo que lo convierte en un teléfono completo.


Características clave del escudo Sim900

4 estándares de frecuencia de funcionamiento 850/ 900/ 1800/ 1900 MHz
GPRS multiranura clase 10/8
Estación móvil GPRS clase B
Cumple con GSM fase 2/2+
Clase 4 (2 W a 850/900 MHz)
Clase 1 (1 W a 1800/1900 MHz)
Control mediante comandos AT (GSM 07.07, 07.05 y comandos AT extendidos SIMCOM)
Bajo consumo de energía: 1,5 mA (modo de suspensión)
Rango de temperatura de funcionamiento: -40°C a +85°C


¡Encaja!

Ok, pero necesitas tomar lecturas de algunos sensores para poder notificar al propietario. Si el automóvil es remolcado, su posición obviamente cambiará en el espacio. Tomemos un acelerómetro y un giroscopio. Excelente. Ok, ahora estamos buscando un sensor.

Creo que el GY-521 MPU6050 definitivamente encajará. Resultó que también tiene un sensor de temperatura. Deberíamos usarlo también, habrá una "función excelente". Supongamos que el dueño del auto lo estacionó debajo de su casa y se fue. La temperatura dentro del coche cambiará "suavemente". ¿Qué pasa si un intruso intenta entrar en el coche? Por ejemplo, podrá abrir la puerta. La temperatura en el automóvil comenzará a cambiar rápidamente a medida que el aire en la cabina comience a mezclarse con el aire. ambiente. Creo que funcionará.


Características principales del GY-521 MPU6050

Módulo giroscopio de 3 ejes + acelerómetro de 3 ejes GY-521 en chip MPU-6050. Le permite determinar la posición y el movimiento de un objeto en el espacio, la velocidad angular durante la rotación. También tiene un sensor de temperatura incorporado. Se utiliza en varios helicópteros y modelos de aviones, también se puede montar un sistema de captura de movimiento basado en estos sensores.

Chip-MPU-6050
Tensión de alimentación: de 3,5 V a 6 V (CC);
Rango giroscópico: ±250 500 1000 2000°/s
Rango del acelerómetro: ±2±4±8±16g
Interfaz de comunicación - I2C
Tamaño - 15x20 mm.
Peso - 5 gramos


¡Encaja!

Un sensor de vibración también te resultará útil. De repente intentan abrir el coche con “fuerza bruta”, o en el aparcamiento otro coche choca contra tu coche. Tomemos el sensor de vibración SW-420 (ajustable).


Principales características del SW-420

Tensión de alimentación - 3,3 - 5V
Señal de salida: digital alta/baja (normalmente cerrada)
Sensor usado - SW-420
El comparador utilizado es LM393.
Dimensiones - 32x14 mm
Además, hay una resistencia de ajuste.


¡Encaja!

Atornille el módulo de la tarjeta de memoria SD. También escribiremos un archivo de registro.


Principales características del módulo de tarjeta de memoria SD

El módulo permite almacenar, leer y escribir en una tarjeta SD los datos necesarios para el funcionamiento de un dispositivo basado en un microcontrolador. El uso del dispositivo es relevante a la hora de almacenar archivos desde decenas de megabytes hasta dos gigabytes. La placa contiene un contenedor de tarjeta SD, un estabilizador de alimentación de tarjeta y un conector para interfaz y líneas de alimentación. Si necesita trabajar con audio, video u otros datos a gran escala, por ejemplo, mantener un registro de eventos, datos de sensores o almacenar información del servidor web, entonces el módulo de tarjeta de memoria SD para Arduino le permitirá usar una tarjeta SD para estos fines. Usando el módulo, puedes estudiar las características de la tarjeta SD.
Tensión de alimentación: 5 o 3,3 V
Capacidad de memoria de la tarjeta SD: hasta 2 GB
Dimensiones - 46 x 30 mm


¡Encaja!

Y agreguemos un servoaccionamiento; cuando se activan los sensores, el servoaccionamiento con la grabadora de video girará y grabará un video del incidente. Tomemos el servoaccionamiento MG996R.


Características principales del servoaccionamiento MG996R

Estable y protección confiable del daño
- Unidad metálica
- Rodamiento de bolas de doble hilera
- Longitud del cable 300 mm
- Dimensiones 40x19x43mm
- Peso 55 gramos
- Ángulo de rotación: 120 grados.
- Velocidad de funcionamiento: 0,17 segundos/60 grados (4,8 V sin carga)
- Velocidad de funcionamiento: 0,13 segundos/60 grados (6 V sin carga)
- Par de arranque: 9,4 kg/cm con alimentación de 4,8 V
- Par de arranque: 11 kg/cm con alimentación de 6 V
- Tensión de funcionamiento: 4,8 - 7,2 V
- Todas las piezas de transmisión están hechas de metal.


¡Encaja!

Nosotros coleccionamos

En Google hay una gran cantidad de artículos sobre cómo conectar cada sensor. Y no tengo ganas de inventar bicicletas nuevas, así que dejaré enlaces a opciones sencillas y funcionales.

Sistema de alarma GSM en Arduino

En este artículo aprenderá cómo (comprar) hacer usted mismo una alarma GSM utilizando un módulo GSM y Arduino de forma muy económica. El objeto de seguridad de alarma GSM es ideal. una casa de campo servirá, casa, garaje, apartamento.


Paso 1: Elementos
Para este proyecto necesitarás:


Escudo GSM

Zumbador
Sirena de alarma 12V
fuente de alimentación de 12V

Teclado para Arduino
Marco.

Paso 2: Conexión de componentes


Primero colocas módulo GSM En Arduino Uno, necesitarás soldar los cables GND y VCC junto con dos sensores, un zumbador y una entrada del módulo de relé. Después de eso, conecte estos cables soldados al conector correspondiente del escudo GSM. A continuación, creará un conector de señal de E/S a partir de estas piezas y lo último que deberá hacer es conectar el teclado.

Terminales Arduino Uno/GSM:

Pin 0: no conectado;
Conclusión 1: no relacionado;
Pin 2: desconectado (GSM utilizará este pin);
Pin 3: desconectado (GSM utilizará este pin);
Pin 4: última línea usando el teclado (pin 4 del teclado - desde 8);
Conclusión 5: no relacionado;
Pin 6: segunda columna a través del teclado (pin 6 del teclado - desde 8);
Salida 7: tercera columna del teclado (teclado de dedo 7 - de 8);
Pin 8: desconectado (GSM utilizará este pin);
Pin 9: desconectado (GSM utilizará este pin);
Pin 10: datos del sensor PIR nº 2;
Conclusión 11: sirena señal de sonido(ingresa a la entrada del módulo de relé);
Pin 12: datos del sensor PIR nº 1;
Pin 13: señal de entrada del zumbador;

Como puede ver, aunque el teclado tiene 8 pines, solo tres están conectados (una fila y dos columnas, lo que permite leer dos números, una matriz de 1 × 2), por lo que puedo crear contraseñas usando estos tres cables y no hay Necesita utilizar todos los contactos del teclado. Esto se debe a que una vez que el sensor de movimiento detecta a una persona caminando en la habitación, la persona solo tendrá 5 segundos para apagar la alarma. Después de que la alarma no se apaga en un momento determinado, el escudo GSM le envía un SMS o llama a su número de teléfono. El Arduino ha sido programado para realizar una llamada y en cuanto contestes el teléfono colgará.

Por supuesto, es posible obtener lecturas falsas del sensor, por lo que existe la opción de apagar la alarma simplemente enviando un SMS desde su teléfono al Arduino. Además, otra opción que puedes hacer es configurar el escudo para que te envíe un mensaje por día para que sepas que está funcionando correctamente.

Paso 3: Código

Simplemente descargue el código a continuación y compílelo. Utiliza las bibliotecas Keypad.h y GSM.h.
Descargar archivo: (descargas: 181)
Descargar archivo: (descargas: 104)

Paso 4: Conclusión


Dado que el código Arduino Uno enviará mensajes de texto y llamará a su teléfono en solo cinco segundos después de que alguien irrumpa en su casa, supongo que tendrá mucho tiempo para llamar a la policía. Por supuesto, la sirena ahuyentará a los ladrones y su casa u otras instalaciones serán más seguras con la ayuda de este artículo.

¡Hola querido lector! El artículo de hoy trata sobre la creación de un sencillo sistema casero seguridad utilizando los componentes disponibles. Este dispositivo pequeño y económico le ayudará a proteger su hogar de intrusiones. ayuda arduino, sensor de movimiento, pantalla y altavoz. El dispositivo puede funcionar con una batería o con el puerto USB de una computadora.

¡Vamos a empezar!

¿Como funciona?

Los cuerpos de los animales de sangre caliente emiten radiación infrarroja, que es invisible para el ojo humano, pero que puede detectarse mediante sensores. Estos sensores están hechos de un material que puede polarizarse espontáneamente cuando se expone al calor, lo que permite detectar la aparición de fuentes de calor dentro del alcance del sensor.

Para un alcance más amplio, se utilizan lentes Fresnel, que recogen la radiación IR de diferentes direcciones y la concentran en el propio sensor.

La figura muestra cómo la lente distorsiona los rayos que inciden sobre ella.

Vale la pena señalar que los robots sin partes particularmente calientes y de sangre fría emiten muy poca radiación infrarroja, por lo que es posible que el sensor no funcione si los empleados de Boston Dynamics o los reptiles deciden rodearlo.

Cuando hay un cambio en el nivel de radiación IR en el rango, esto se procesará en Arduino, después de lo cual el estado se mostrará en la pantalla LCD, el LED parpadeará y el altavoz emitirá un pitido.

¿Qué necesitamos?

  1. (o cualquier otro tablero).
  2. (16 caracteres en dos líneas)
  3. Un conector para conectar la corona a Arduino
  4. (aunque puedes usar un altavoz normal)
  5. Cable USB - sólo para programación ( aprox. traducción:¡Siempre viene con nuestro Arduino!)
  6. Computadora (nuevamente, solo para escribir y cargar el programa).

Por cierto, si no quieres comprar todas estas piezas por separado, te recomendamos que prestes atención a las nuestras. Por ejemplo, todo lo que necesitas y aún más está en nuestro kit de inicio.

¡Conectémonos!

Conectar un sensor de movimiento es muy sencillo:

  1. Conectamos el pin Vcc a Arduino de 5V.
  2. Conectamos el pin Gnd al GND del Arduino.
  3. Conectamos el pin OUT al pin digital nº7 de Arduino

Ahora conectemos el LED y el altavoz. Es igual de simple aquí:

  1. Conectamos el tramo corto (menos) del LED a tierra.
  2. Conectamos la pata larga (más) del LED a la salida nº 13 del Arduino
  3. Cable rojo del altavoz a la salida No. 10
  4. Cable negro - a tierra

Y ahora la parte difícil es conectar la pantalla LCD 1602 al Arduino. Tenemos una pantalla sin I2C, por lo que necesitaremos muchas salidas Arduino, pero el resultado merecerá la pena. El diagrama se presenta a continuación:

Sólo necesitamos parte del circuito (no dispondremos de ajuste de contraste con potenciómetro). Por lo tanto, sólo necesitas hacer lo siguiente:

Ahora ya sabes cómo conectar una pantalla 1602 al Arduino UNO R3 (así como a cualquier versión de Arduino desde Mini hasta Mega).

Programación

Es hora de pasar a la programación. A continuación te dejamos el código que sólo debes rellenar y, si has montado todo correctamente, ¡el dispositivo está listo!

#incluir intledPin = 13; // pin LED int inputPin = 7; // Pin al que está conectado el sensor de movimiento Out int pirState = LOW; // Estado actual (no se detectó nada al principio) int val = 0; // Variable para leer el estado de las entradas digitales int pinSpeaker = 10; // El pin al que está conectado el altavoz. Requiere pin PWM LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // Inicializa la pantalla LCD void setup() ( // Determina la dirección de transmisión de datos en los pines digitales pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); pinMode(pinSpeaker, OUTPUT); // Inicia la salida de información de depuración a través del puerto serie Serial .begin(9600); // Inicia la salida a la pantalla LCD lcd.begin(16, 2); // Establece el índice en las pantallas desde las cuales comenzaremos la salida // (2 caracteres, 0 líneas ) lcd.setCursor(2, 0) ; // Salida a la pantalla LCD lcd.print("P.I.R Motion"); // Mover nuevamente lcd.setCursor(5, 1); // Salida lcd.print("Sensor" ); // Pausa para tener tiempo de leer, cuál fue el retraso de salida(5000); // Borrando lcd.clear(); // Similar a lcd.setCursor(0, 0); lcd.print("Procesando datos." ); retraso(3000); lcd.clear(); lcd.setCursor(3, 0); lcd.print("Esperando"); lcd.setCursor(3, 1); lcd.print("Movimiento... ."); ) void loop() ( // Leer lectura del sensor val = digitalRead(inputPin); if (val == HIGH) ( // Si hay movimiento, entonces enciende el LED y enciende la sirena digitalWrite(ledPin, ALTO); reproducirTono(300, 300); retraso(150); // Si no hubo movimiento hasta este momento, entonces mostramos un mensaje // que fue detectado // El siguiente código es necesario para escribir solo un cambio de estado y no imprimir el valor cada vez if (pirState == LOW) ( Serial.println( "¡Movimiento detectado!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("¡Movimiento detectado!"); pirState = HIGH; ) ) else ( // Si el el movimiento terminó digitalWrite(ledPin, LOW); playTone(0, 0); delay(300); if (pirState == HIGH)( // Informa que hubo movimiento, pero ya terminó Serial.println("Movimiento finalizado !"); lcd.clear() ; lcd.setCursor(3, 0); lcd.print("Esperando"); lcd.setCursor(3, 1); lcd.print("Movimiento....") ; pirState = LOW; ) ) ) // Función de reproducción de sonido. Duración (duración) - en milisegundos, Freq (frecuencia) - en Hz void playTone(larga duración, int freq) (duración *= 1000; int period = (1.0 / freq) * 100000; tiempo transcurrido largo = 0; while (tiempo_transcurrido)< duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } }

Durante la última década, el robo de automóviles ha ocupado uno de los lugares más importantes en la estructura de los delitos cometidos en el mundo. Esto se debe no tanto a la gravedad específica de esta categoría de robo en relación con el número total de delitos, sino a la importancia de los daños causados ​​por el elevado coste de los coches. La escasa eficacia de las medidas adoptadas en el ámbito de la lucha contra el robo de vehículos a finales de los años 90 llevó a la creación de grupos estables especializados en la comisión de estos delitos y con características distintivas del crimen organizado; Probablemente hayas escuchado el término "negocio de automóviles negros". El parque automovilístico de los países europeos carece anualmente de ≈ el 2% de los automóviles que se convierten en objeto de ataques criminales. Por eso, se me ocurrió la idea de hacer una alarma GSM para mi coche basada en Arduino Uno.

¡Vamos a empezar!

¿De qué recaudaremos?

Necesitamos elegir el corazón de nuestro sistema. En mi opinión, para tal señalización no hay nada mejor que Arduino Uno. El criterio principal es un número suficiente de "pines" y el precio.


Características clave de Arduino Uno

Microcontrolador - ATmega328
Tensión de funcionamiento - 5 V
Voltaje de entrada (recomendado) - 7-12 V
Voltaje de entrada (límite) - 6-20 V
Entradas/Salidas digitales: 14 (6 de las cuales se pueden utilizar como salidas PWM)
Entradas analógicas - 6
Corriente constante a través de entrada/salida - 40 mA
Corriente constante para salida 3.3V - 50mA
Memoria flash: 32 KB (ATmega328), de los cuales 0,5 KB se utilizan para el gestor de arranque
RAM - 2 KB (ATmega328)
EEPROM - 1 KB (ATmega328)
Frecuencia de reloj - 16 MHz


¡Encaja!

Ahora debe seleccionar un módulo GSM, porque nuestro sistema de alarma debe poder notificar al propietario del automóvil. Entonces, necesitas buscarlo en Google... Aquí, un sensor excelente: SIM800L, el tamaño es simplemente maravilloso.


Lo pensé y lo pedí desde China. Sin embargo, todo resultó no ser tan color de rosa. El sensor simplemente se negó a registrar la tarjeta SIM en la red. Se intentó todo lo posible y el resultado fue cero.
Hubo gente amable que me proporcionó algo más genial: Sim900 Shield. Ahora bien, esto es algo serio. El Shield tiene un micrófono y un conector para auriculares, lo que lo convierte en un teléfono completo.


Características clave del escudo Sim900

4 estándares de frecuencia de funcionamiento 850/ 900/ 1800/ 1900 MHz
GPRS multiranura clase 10/8
Estación móvil GPRS clase B
Cumple con GSM fase 2/2+
Clase 4 (2 W a 850/900 MHz)
Clase 1 (1 W a 1800/1900 MHz)
Control mediante comandos AT (GSM 07.07, 07.05 y comandos AT extendidos SIMCOM)
Bajo consumo de energía: 1,5 mA (modo de suspensión)
Rango de temperatura de funcionamiento: -40°C a +85°C


¡Encaja!

Ok, pero necesitas tomar lecturas de algunos sensores para poder notificar al propietario. Si el automóvil es remolcado, su posición obviamente cambiará en el espacio. Tomemos un acelerómetro y un giroscopio. Excelente. Ok, ahora estamos buscando un sensor.

Creo que el GY-521 MPU6050 definitivamente encajará. Resultó que también tiene un sensor de temperatura. Deberíamos usarlo también, habrá una "función excelente". Supongamos que el dueño del auto lo estacionó debajo de su casa y se fue. La temperatura dentro del coche cambiará "suavemente". ¿Qué pasa si un intruso intenta entrar en el coche? Por ejemplo, podrá abrir la puerta. La temperatura en el automóvil comenzará a cambiar rápidamente a medida que el aire de la cabina comience a mezclarse con el aire ambiente. Creo que funcionará.


Características principales del GY-521 MPU6050

Módulo giroscopio de 3 ejes + acelerómetro de 3 ejes GY-521 en chip MPU-6050. Le permite determinar la posición y el movimiento de un objeto en el espacio, la velocidad angular durante la rotación. También tiene un sensor de temperatura incorporado. Se utiliza en varios helicópteros y modelos de aviones, también se puede montar un sistema de captura de movimiento basado en estos sensores.

Chip-MPU-6050
Tensión de alimentación: de 3,5 V a 6 V (CC);
Rango giroscópico: ±250 500 1000 2000°/s
Rango del acelerómetro: ±2±4±8±16g
Interfaz de comunicación - I2C
Tamaño - 15x20 mm.
Peso - 5 gramos


¡Encaja!

Un sensor de vibración también te resultará útil. De repente intentan abrir el coche con “fuerza bruta”, o en el aparcamiento otro coche choca contra tu coche. Tomemos el sensor de vibración SW-420 (ajustable).


Principales características del SW-420

Tensión de alimentación - 3,3 - 5V
Señal de salida: digital alta/baja (normalmente cerrada)
Sensor usado - SW-420
El comparador utilizado es LM393.
Dimensiones - 32x14 mm
Además, hay una resistencia de ajuste.


¡Encaja!

Atornille el módulo de la tarjeta de memoria SD. También escribiremos un archivo de registro.


Principales características del módulo de tarjeta de memoria SD

El módulo permite almacenar, leer y escribir en una tarjeta SD los datos necesarios para el funcionamiento de un dispositivo basado en un microcontrolador. El uso del dispositivo es relevante a la hora de almacenar archivos desde decenas de megabytes hasta dos gigabytes. La placa contiene un contenedor de tarjeta SD, un estabilizador de alimentación de tarjeta y un conector para interfaz y líneas de alimentación. Si necesita trabajar con audio, video u otros datos a gran escala, por ejemplo, mantener un registro de eventos, datos de sensores o almacenar información del servidor web, entonces el módulo de tarjeta de memoria SD para Arduino le permitirá usar una tarjeta SD para estos fines. Usando el módulo, puedes estudiar las características de la tarjeta SD.
Tensión de alimentación: 5 o 3,3 V
Capacidad de memoria de la tarjeta SD: hasta 2 GB
Dimensiones - 46 x 30 mm


¡Encaja!

Y agreguemos un servoaccionamiento; cuando se activan los sensores, el servoaccionamiento con la grabadora de video girará y grabará un video del incidente. Tomemos el servoaccionamiento MG996R.


Características principales del servoaccionamiento MG996R

Protección estable y confiable contra daños
- Unidad metálica
- Rodamiento de bolas de doble hilera
- Longitud del cable 300 mm
- Dimensiones 40x19x43mm
- Peso 55 gramos
- Ángulo de rotación: 120 grados.
- Velocidad de funcionamiento: 0,17 segundos/60 grados (4,8 V sin carga)
- Velocidad de funcionamiento: 0,13 segundos/60 grados (6 V sin carga)
- Par de arranque: 9,4 kg/cm con alimentación de 4,8 V
- Par de arranque: 11 kg/cm con alimentación de 6 V
- Tensión de funcionamiento: 4,8 - 7,2 V
- Todas las piezas de transmisión están hechas de metal.


¡Encaja!

Nosotros coleccionamos

En Google hay una gran cantidad de artículos sobre cómo conectar cada sensor. Y no tengo ganas de inventar bicicletas nuevas, así que dejaré enlaces a opciones sencillas y funcionales.

Hola a todos, hoy veremos un dispositivo llamado sensor de movimiento. Muchos de nosotros hemos oído hablar de esto, algunos incluso se han ocupado de este dispositivo. ¿Qué es un sensor de movimiento? Intentemos resolverlo, entonces:

Sensor de movimiento o sensor de desplazamiento - un dispositivo (dispositivo) que detecta el movimiento de cualquier objeto. Muy a menudo, estos dispositivos se utilizan en sistemas de seguridad, alarma y monitoreo. Hay muchas formas de factores de estos sensores, pero consideraremos el módulo del sensor de movimiento para conectarlo a placas. arduino,y específicamente de la empresa RobotDyn. ¿Por qué esta empresa? No quiero publicitar esta tienda ni sus productos, pero fueron los productos de esta tienda los que fueron elegidos como muestras de laboratorio debido a la presentación de alta calidad de sus productos al consumidor final. Entonces nos encontramos - sensor de movimiento(Sensor PIR) de RobotDyn:


Estos sensores son de tamaño pequeño, consumen poca energía y son fáciles de usar. Además, los sensores de movimiento RobotDyn también tienen contactos serigrafiados, esto es, por supuesto, un detalle pequeño, pero muy agradable. Bueno, aquellos que usan los mismos sensores, pero solo de otras compañías, no deben preocuparse: todos tienen la misma funcionalidad, e incluso si los contactos no están marcados, el pinout de dichos sensores es fácil de encontrar en Internet.

Básico especificaciones sensor de movimiento (sensor PIR):

Área de operación del sensor: de 3 a 7 metros

Ángulo de seguimiento: hasta 110 o

Tensión de funcionamiento: 4,5...6 Voltios

Consumo de corriente: hasta 50 µA

Nota: La funcionalidad estándar del sensor se puede ampliar conectando un sensor de luz a los pines IN y GND, y luego el sensor de movimiento solo funcionará en la oscuridad.

Inicializando el dispositivo.

Cuando se enciende, el sensor tarda casi un minuto en inicializarse. Durante este período, el sensor puede dar señales falsas, esto debe tenerse en cuenta al programar un microcontrolador con un sensor conectado a él, o en circuitos. actuadores, si la conexión se realiza sin utilizar un microcontrolador.

Ángulo y área de detección.

El ángulo de detección (seguimiento) es de 110 grados, el rango de distancia de detección es de 3 a 7 metros, la siguiente ilustración lo muestra todo:

Ajuste de sensibilidad (distancia de detección) y retardo de tiempo.

La siguiente tabla muestra los principales ajustes del sensor de movimiento, a la izquierda hay un regulador de retardo de tiempo, respectivamente, en la columna de la izquierda hay una descripción de las posibles configuraciones. La columna de la derecha describe los ajustes de la distancia de detección.


Conexión de sensores:

  • Sensor PIR - Arduino Nano
  • Sensor PIR - Arduino Nano
  • Sensor PIR - Arduino Nano
  • Sensor PIR - para sensor de luz
  • Sensor PIR - para sensor de luz

Un diagrama de conexión típico se muestra en el siguiente diagrama; en nuestro caso, el sensor se muestra convencionalmente desde la parte posterior y está conectado a la placa Arduino Nano.

Boceto que demuestra el funcionamiento del sensor de movimiento (usamos el programa):

/* * Sensor PIR -> Arduino Nano * Sensor PIR -> Arduino Nano * Sensor PIR -> Arduino Nano */ void setup() ( //Establece una conexión con el monitor del puerto Serial.begin(9600); ) void loop( ) ( //Leer el valor umbral del puerto A0 //normalmente es superior a 500 si hay una señal if(analogRead(A0) > 500) ( //Señal del sensor de movimiento Serial.println("¡Hay movimiento! !!"); ) else ( / /Sin señal Serial.println("Todo está en silencio..."); ) )

El boceto es una prueba común del funcionamiento del sensor de movimiento, tiene muchas desventajas, tales como:

  1. Posibles falsas alarmas, el sensor requiere una autoinicialización en un minuto.
  2. Unión rígida al monitor del puerto, sin actuadores de salida (relé, sirena, indicador LED)
  3. El tiempo de señal en la salida del sensor es demasiado corto; cuando se detecta movimiento, es necesario retrasar la señal mediante programación durante un período de tiempo más largo.

Al complicar el circuito y ampliar la funcionalidad del sensor, se pueden evitar las desventajas descritas anteriormente. Para hacer esto, deberá complementar el circuito con un módulo de relé y conectar una lámpara normal de 220 voltios a través de este módulo. El módulo de relé en sí se conectará al pin 3 de la placa Arduino Nano. Entonces el diagrama esquemático:

Ahora toca mejorar ligeramente el boceto que probó el sensor de movimiento. Es en el boceto donde se implementará un retraso en el apagado del relé, ya que el propio sensor de movimiento tiene un tiempo de señal demasiado corto en la salida cuando se activa. El programa implementa un retraso de 10 segundos cuando se activa el sensor. Si se desea, este tiempo se puede aumentar o disminuir cambiando el valor de la variable. Valor de retraso. A continuación se muestra un boceto y vídeo de toda la obra. circuito ensamblado:

/* * Sensor PIR -> Arduino Nano * Sensor PIR -> Arduino Nano * Sensor PIR -> Arduino Nano * Módulo de relé -> Arduino Nano */ //relout - pin (señal de salida) para el módulo de relé const int relout = 3 ; //prevMillis - variable para almacenar el tiempo del ciclo de escaneo del programa anterior //intervalo - intervalo de tiempo para contar segundos antes de apagar el relé unsigned long prevMillis = 0; intervalo int = 1000; //DelayValue - el período durante el cual el relé se mantiene encendido int DelayValue = 10; //initSecond - Variable de iteración del bucle de inicialización int initSecond = 60; //countDelayOff - contador de intervalo de tiempo static int countDelayOff = 0; //disparador - indicador de activación del sensor de movimiento static bool trigger = false; void setup() ( //Procedimiento estándar para inicializar el puerto al que está conectado el módulo de relé //¡¡¡IMPORTANTE!!! - para que el módulo de relé permanezca en el estado inicialmente apagado //y no se active durante la inicialización, necesita escribir //el valor ALTO en el puerto de entrada/salida, esto evitará “clics” falsos y //preservará el estado del relé como estaba antes de que todo el circuito se pusiera en funcionamiento pinMode(relout, OUTPUT); digitalWrite(relout, HIGH); //Aquí todo es simple: esperamos hasta que finalicen 60 ciclos (variable initSecond) //que duran 1 segundo, tiempo durante el cual el sensor se “autoinicializa” for(int i = 0; i< initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) >500) ( //Establece el indicador de activación del sensor de movimiento if(!trigger) ( trigger = true; ) ) //Mientras el indicador de activación del sensor de movimiento está configurado while(trigger) ( //Ejecutar siguiendo instrucciones//Guardar en la variable currMillis //el valor de los milisegundos que han pasado desde //el inicio de la ejecución del programa unsigned long currMillis = millis(); //Comparar con el valor anterior de milisegundos //si la diferencia es mayor que el intervalo especificado, entonces: if(currMillis - prevMillis > intervalo) ( //Guardar el valor actual de milisegundos en la variable prevMillis prevMillis = currMillis; // Verifique el contador de retraso comparándolo con el valor del período //durante el cual el relé debe mantenerse en estado ON if(countDelayOff >= DelayValue) ( ​​​​//Si el valor es igual, entonces: //reinicie el disparador del sensor de movimiento flag trigger = false; //Restablece el contador de retraso countDelayOff = 0; //Apaga el relé digitalWrite(relout, HIGH); //Interrumpe la pausa del ciclo; ) else ( //Si el valor es aún menor, luego //Incrementar el contador de retardo en un conteoDelayOff ++; //Mantener el relé en estado activado digitalWrite(relout, LOW ); ) ) ) )

El programa contiene la siguiente estructura:

sin firmar largo prevMillis = 0;

intervalo int = 1000;

...

currMillis largo sin firmar = millis();

if(currMillis - prevMillis > intervalo)

{

prevMillis = currMillis;

....

// Nuestras operaciones están encerradas en el cuerpo de la estructura.

....

}

Para aclarar, se decidió comentar por separado este diseño. Entonces, este diseño le permite realizar una tarea paralela en el programa. El cuerpo de la estructura opera aproximadamente una vez por segundo, esto se ve facilitado por la variable intervalo. Primero, la variable. currMillis se asigna el valor devuelto al llamar a la función milisegundos(). Función milisegundos() Devuelve el número de milisegundos que han pasado desde el inicio del programa. si la diferencia currMillis - anteriorMillis mayor que el valor de la variable intervalo entonces esto significa que ya ha pasado más de un segundo desde el inicio de la ejecución del programa y necesita guardar el valor de la variable currMillis en una variable anteriorMillis luego realizar las operaciones contenidas en el cuerpo de la estructura. si la diferencia currMillis - anteriorMillis menor que el valor de la variable intervalo, entonces aún no ha transcurrido un segundo entre los ciclos de escaneo del programa y se omiten las operaciones contenidas en el cuerpo de la estructura.

Bueno, al final del artículo, un vídeo del autor:

Habilite javascript para que los comentarios funcionen.
Compartir