Tabla de contenido:

Salva a mi hijo: el asiento inteligente que envía mensajes de texto si olvidas al niño en el coche: 8 pasos
Salva a mi hijo: el asiento inteligente que envía mensajes de texto si olvidas al niño en el coche: 8 pasos

Video: Salva a mi hijo: el asiento inteligente que envía mensajes de texto si olvidas al niño en el coche: 8 pasos

Video: Salva a mi hijo: el asiento inteligente que envía mensajes de texto si olvidas al niño en el coche: 8 pasos
Video: El video en el que una mujer "ordena pizza" al 911 para denunciar agresión 2024, Mes de julio
Anonim
Save My Child: el asiento inteligente que envía mensajes de texto si olvidas al niño en el coche
Save My Child: el asiento inteligente que envía mensajes de texto si olvidas al niño en el coche

Se instala en los coches y, gracias a un detector colocado en la silla infantil, nos avisa, mediante SMS o llamada telefónica, si salimos sin llevar al niño con nosotros

Paso 1: introducción

Introducion
Introducion

Entre los accidentes más tristes (y en todo caso infrecuentes) en las noticias, se encuentran los de padres que, debido a la agilidad, problemas de salud o falta de atención, se bajan del automóvil y "olvidan" a sus hijos en el asiento para niños., en un ambiente cálido o frío. Ciertamente, tales accidentes podrían haberse evitado si alguien o algo le recordara al conductor que dejó al niño en el automóvil; sin duda la tecnología puede ayudar y ofrecer soluciones, a ser implementadas en el vehículo por el fabricante o de tipo “retrofit”, como el proyecto aquí descrito aquí. Es un dispositivo basado en un teléfono celular GSM que detecta algunos parámetros, a partir de los cuales se evalúa el comportamiento del conductor y se ejecutan las acciones necesarias: en particular, se envía un SMS al teléfono del conductor que se está escapando. desde el coche. El dispositivo está instalado en el automóvil y es alimentado por el sistema eléctrico de este último; verifica que el niño está en su asiento (mediante un sensor que está compuesto por unos botones de perfil bajo, montados en un protoboard para colocar debajo de la funda del asiento infantil): si resulta que los botones están presionados (por lo tanto, el niño está sentado), el circuito también verificará que el vehículo se ha detenido (mediante un acelerómetro triaxial), si es así y una vez transcurrido el tiempo establecido, enviará un mensaje SMS de alarma al teléfono del conductor y emitirá un zumbador.

Además, realiza una llamada al mismo número de teléfono y posiblemente a otros, para que padres, amigos y otras personas puedan llamar al conductor para verificar lo que está sucediendo. Si bien la aplicación elegida es la mencionada, el proyecto se ha creado en nuestro laboratorio como una plataforma que puede adaptarse para los otros dos propósitos. El primero es un dispositivo de corriente residual para personas mayores y frágiles, mientras que el segundo es una alarma remota, que funciona en caso de apagones (y útil para evitar que el congelador se descongele y que los alimentos que contiene se vuelvan peligrosos).).

Paso 2: Diagrama de circuito de Save My Child

Diagrama de circuito de Save My Child
Diagrama de circuito de Save My Child

Veamos entonces de qué se trata todo esto, y analicemos el esquema eléctrico del circuito, cuya gestión ha sido encomendada a un microcontrolador PIC18F46K20-I / PT de Microchip, que ha sido programado a través de nuestro firmware MF1361, para que lea el estado de las entradas (a las que están conectados el sensor de peso del asiento infantil y un posible dispositivo de detección), y adquiere las señales suministradas por el acelerómetro (U5), y habla con la EEPROM externa (U4) (que contiene los ajustes para el funcionamiento del sistema) e interconecta un posible receptor de radio (U6) y gestiona un módulo celular (GSM).

Tenga en cuenta que el circuito considera elementos que se pueden montar o no, ya que lo concebimos como una plataforma de desarrollo expandible, para aquellos de ustedes que deseaban crear su propia aplicación, a partir del firmware base. Comencemos describiendo el microcontrolador, que, después del encendido-reinicio, inicializa las líneas RB1 y RB2 como entradas suministradas con una resistencia pull-up interna, que será necesaria para leer algunos contactos normalmente abiertos que están conectados a IN1 e IN2; los diodos D2 y D3 protegen el microcontrolador en el caso de que se aplique erróneamente en las entradas una tensión superior a la de la fuente de alimentación PIC. IN1 se utiliza actualmente para el sensor de peso del asiento infantil, mientras que IN2 está disponible para otros posibles controles: podemos utilizarlo, por ejemplo, para la detección de la apertura y cierre de las puertas, a través de la lectura de la tensión en las luces de cortesía.; Al respecto, tenga en cuenta que en algunos automóviles modernos las luces del techo se gestionan (en PWM) mediante una caja de conexiones (para garantizar un encendido y apagado gradual), mientras que solo tenemos que leer el estado de las luces encendidas instantáneamente. y apagado (de lo contrario, la lectura será anormal); después de eso, tendremos que filtrar el PWM por medio de un capacitor colocado entre la entrada del microcontrolador y tierra (después del diodo). Otra entrada es RB3, que todavía se suministra con una resistencia pull-up interna, que se necesita para leer el botón P1 (que se usa para encender a la fuerza el módulo celular, que normalmente está apagado). Aún durante la inicialización de las E / S, RB4 se configura como entrada con el propósito de leer - por medio del divisor de voltaje R1 y R2 - el arranque del circuito, realizado por el doble desviador SW1b; el divisor de voltaje es necesario ya que el microcontrolador tolera un voltaje que es menor que el de entrada que se encuentra en el conector de alimentación. La función del RB4 ha sido reservada para desarrollos futuros, se explica considerando que el circuito puede ser alimentado tanto por una fuente de alimentación de red vía toma USB como por medio de una batería de litio que se conecta a la salida del regulador de carga dedicado.

Paso 3: diagrama de circuito

Diagrama de circuito
Diagrama de circuito

Cuando SW1 se mueve sobre los contactos que están marcados con una cruz en el diagrama del circuito, el resto del circuito se aísla de la batería y, por lo tanto, se apaga; si a la entrada de la fuente de alimentación (USB) se aplica una tensión de 5 voltios, solo estará funcionando la etapa del cargador (se alimenta a través del diodo D1, que lo protege de las inversiones de polaridad). Al mover SW1 a la posición de encendido, SW1b lleva el voltaje de entrada a la línea RB4 y SW1a alimenta el microcontrolador y demás, por medio del voltaje en los extremos de la batería (aproximadamente 4V cuando está a plena carga) además de encender el convertidor de conmutación elevador firmado como U3, que genera los 5V que necesita el resto del circuito.

En cuanto al funcionamiento del circuito alimentado vía USB, SWb lleva la tensión de entrada al RB4, que - al implementar su lectura en el firmware - permite entender si se encuentra la fuente de alimentación de la red; esta función es útil para crear la alarma anti-apagón. Por otro lado, durante el funcionamiento de la batería, RB4 permite que el microcontrolador lo sepa y lleve a cabo posibles estrategias para disminuir el consumo de energía (por ejemplo, reduciendo los intervalos en los que se enciende el teléfono celular). La línea RB4 es la única forma en que el firmware tiene que entender cuándo el circuito funciona con batería, ya que si U1 está recibiendo energía incluso si RB4 está a cero voltios, significa que el circuito funciona con batería, mientras que si hay otra fuente de energía, estará funcionando gracias al voltaje extraído del USB. Volvamos ahora a la inicialización de las E / S y veamos que las líneas RC0, RE1, RE2 y RA7 se inicializan como entradas, que se les ha proporcionado una resistencia pull-up externa, dado que no podemos activarla internamente para tales líneas; serán necesarios para leer los canales del receptor híbrido, que es de todos modos un accesorio, reservado para futuros desarrollos. Un receptor de este tipo podría resultar útil para el uso doméstico como alarma remota, para aquellos que tienen dificultades para moverse o que se ven obligados a permanecer en la cama; al detectar la variación en las salidas de la radio RX, realizará una llamada telefónica para pedir ayuda o enviará un SMS similar. Esta es una aplicación posible, pero hay otras; de todos modos, debe estar implementado en el firmware. RC3, RC4, RB0 y RD4 son las líneas que se han asignado al acelerómetro U4, que más específicamente es una placa de ruptura basada en el acelerómetro triaxial MMA8452 de NXP: RC3 es una salida y es necesaria para enviar una señal de reloj., RC4 es una E / S bidireccional y acciona el SDA, mientras que los otros dos pines son entradas que han sido reservadas para la lectura de las interrupciones INT1 e INT2, que son generadas por el acelerómetro cuando ocurren ciertos eventos. Las líneas RA1, RA2 y RA0 siguen siendo entradas, pero se han multiplexado en el convertidor A / D y se utilizan para leer el acelerómetro triaxial U5, que también está en la placa de conexión y que se basa en el módulo acelerómetro MMA7361; dicho componente pretende ser una alternativa al U4 (que es el esperado actualmente por nuestro firmware) y proporciona información sobre las aceleraciones detectadas en los ejes X, Y, Z mediante tensiones analógicas que salen de las líneas correspondientes. En este caso, el firmware se simplifica, ya que no se necesita la rutina de gestión del MMA8452 (requiere la lectura de registros, la implementación del protocolo I²C-Bus, etc.). Aún en el tema de los ADC, se utiliza la línea An0 para leer el nivel de voltaje, que es suministrado por la batería de litio, que alimenta el microcontrolador y el resto del circuito (salvo el receptor de radio); si el firmware lo considera, habilita la posibilidad de apagar el conjunto cuando la batería se está agotando o cuando está por debajo de un cierto umbral de voltaje. La línea RC2 se inicializa como salida y genera una serie de pulsos digitales cuando el zumbador piezoeléctrico BUZ1 tiene que emitir la nota acústica de advertencia que ha sido indicada por el firmware; otras dos salidas son RD6 y RD7, a las que se les ha confiado la tarea de encender los LED LD1 y LD2.

Paso 4: Diagrama de circuito de PCB

Diagrama de circuito de PCB
Diagrama de circuito de PCB

Completemos el análisis de las E / S con RD0, RD2, RD3, RC5, que junto con las RX y TX de la UART desde la interfaz hacia el módulo celular SIM800C por SIMCom; en el circuito, este último está montado en una placa dedicada para ser insertada en el conector específico que se encuentra en la placa de circuito impreso. El módulo intercambia los datos de los mensajes enviados (los de alarma) y los recibidos (los de configuración) con el microcontrolador, a través de la UART del PIC, que también es necesario para los comandos de configuración del celular; el resto de líneas se refieren a algunas señales de estado: RD2 lee la salida del LED de “señal” que repite LD4, mientras que RD3 lee el Ring Indicator, es decir, el contacto del teléfono celular que suministra el nivel lógico alto cuando un se recibe una llamada telefónica. La línea RD0 permite resetear el módulo y RC5 se ocupa del encendido y apagado; El restablecimiento y el ENCENDIDO / APAGADO se implementan mediante los circuitos de la placa en la que está montado el SIM800C.

La placa, cuyo diagrama de circuito se ha mostrado - junto con el pinout del conector de inserción - en la Fig.1, contiene el teléfono celular SIM800C, un conector de antena MMX 90 ° y una regleta de clavijas 2 × 10 macho de 2 mm en la que la alimentación fuente, la línea de control de encendido (PWR), todas las señales y las líneas de comunicación serie desde y hacia el módulo GSM, como se muestra en la Fig.1.

Paso 5: Diagrama de circuito de PCB

Diagrama de circuito de PCB
Diagrama de circuito de PCB

Dado que se han definido las E / S del microcontrolador, podemos echar un vistazo a las dos secciones involucradas en la alimentación del circuito: el cargador y el convertidor elevador CC / CC.

El cargador se basa en el circuito integrado MCP73831T (U2), fabricado por Microchip; como entrada normalmente acepta 5V (el rango tolerable está entre 3.75V y 6V), provenientes de este circuito desde el conector USB; suministra, en la salida, la corriente necesaria para cargar elementos de iones de litio o polímeros de litio (Li-Po), y suministra hasta 550 mA. Una batería (para ser conectada a los contactos +/- BAT) puede tener una capacidad teóricamente ilimitada, ya que como máximo se cargaría en un tiempo muy largo, sin embargo, tenga en cuenta que por medio de una corriente de 550mA, un elemento de 550 mAh es cargado en una hora; como elegimos una celda de 500 mAh, se cargará en menos de una hora. El circuito integrado opera en la configuración típica, en la que el diodo de luz LD3 es impulsado por la salida STAT, que se lleva al nivel lógico bajo cuando se carga, mientras que permanece en un nivel lógico alto cuando deja de cargar; lo mismo se lleva a una impedancia alta (abierto) cuando se apaga el MCP73831T o cuando resulta que no hay batería conectada a la salida VB. VB (pin 3) es la salida que se utiliza para la batería de litio. El circuito integrado realiza la carga con corriente y voltaje constantes. La corriente de carga (Ireg) se establece mediante una resistencia conectada al pin 5 (en nuestro caso, es R6); su valor está conectado a la resistencia por la siguiente relación:

Ireg = 1, 000 / R

en el que el valor R se expresa en ohmios si la corriente Ireg se expresa en A. Por ejemplo, con 4.7 kohm se obtiene una limitación de 212 mA, mientras que con R siendo 2.2 kohm la corriente vale aproximadamente 454 mA. si se abre el pin 5, el circuito integrado pasa al estado inactivo y solo absorbe 2 µA (apagado); el pin puede, por tanto, utilizarse como habilitación. Completemos la descripción del diagrama del circuito con el convertidor elevador, que extrae 5 voltios estabilizados del voltaje de la batería; el escenario se basa en el circuito integrado MCP1640BT-I / CHY, que es un regulador de impulso síncrono. En su interior hay un generador PWM, que acciona un transistor cuyo colector cierra periódicamente la bobina L1 a tierra, mediante el pin SW, la carga y deja liberar la energía acumulada durante las pausas - mediante el pin 5 - a los condensadores de filtro C2, C3, C4, C7 y C9. La abrazadera de diodo que protege el transistor interno también es interna, reduciendo así los componentes externos necesarios al mínimo: de hecho, están los condensadores de filtro entre Vout y tierra, el inductor L1 y el divisor resistivo entre Vout y FB que se ocupa de con la reactivación del generador PWM a través del amplificador de error interno, estabilizando la tensión de salida en el valor deseado. Al modificar la relación entre R7 y R8, es posible, por lo tanto, modificar el voltaje suministrado por el pin Vout, pero eso no nos interesa.

Paso 6: Configuración y comandos para Save My Child

Configuración y comandos para Save My Child
Configuración y comandos para Save My Child
Configuración y comandos para Save My Child
Configuración y comandos para Save My Child

Una vez completada la instalación, deberá configurar la unidad; dicha operación se realiza a través de SMS, por lo tanto, inserte una SIM operativa en el soporte de SIM del módulo 7100-FT1308M y tome nota del número de teléfono correspondiente. Después de eso, proporcione todos los comandos requeridos a través de un teléfono celular: todos se muestran en la Tabla 1.

Entre las primeras cosas que hay que hacer está la configuración de los números de teléfono en la lista de aquellos a los que llamará el sistema o a los que se enviarán los SMS de alarma, en el caso de un niño en la silla infantil que posiblemente haya estado”. olvidado abandonado”. Para facilitar el trámite, dado que el sistema está protegido por contraseña en cuanto a esta operación, se ha diseñado un modo Easy Setup: durante la primera puesta en marcha, el sistema guardará el primer número de teléfono que lo llame, y lo considera como el primer número de la lista. Este número podrá realizar modificaciones, incluso sin contraseñas; de todas formas los comandos pueden ser enviados por cualquier teléfono, siempre y cuando el SMS correspondiente incluya la contraseña, y aunque - para agilizar algunos comandos - permitimos que los enviados por los números de teléfono de la lista se puedan dar sin necesidad de contraseñas. En cuanto a los comandos relativos a la adición y eliminación de números de teléfono de la lista, la solicitud de una contraseña hace que la lista sea administrada solo por una persona que esté habilitada para hacerlo. Pasemos ahora a la descripción de los comandos ya la sintaxis correspondiente, con la premisa de que el circuito también acepta mensajes SMS que contengan más de un comando; en ese caso los comandos deben separarse del siguiente, mediante una coma. El primer comando examinado es el que modifica la contraseña, consiste en un SMS como PWDxxxxx; pwd, en el que se debe escribir la nueva contraseña (compuesta por cinco números) en lugar de xxxxx, mientras que pwd indica la contraseña actual. La contraseña predeterminada es 12345.

La memorización de uno de los ocho números habilitados para enviar comandos de configuración se realiza mediante el envío de un SMS, cuyo texto contiene el texto NUMx + nnnnnnnnnnnnn; pwd, en el que se debe escribir la posición (qué número se está memorizando) en el lugar de la x, el número de teléfono va en el lugar de la ns, mientras que pwd es la contraseña actual. Todo debe estar escrito sin espacios. Se permiten números de 19 cifras, mientras que el + sustituye a 00 como prefijo de llamada internacional, en los teléfonos celulares. Por ejemplo, para agregar el número de teléfono 00398911512 en la tercera posición, deberá enviar un comando como este: NUM3 + 398911512; pwd. La contraseña solo es necesaria cuando intenta guardar un número de teléfono en una posición que ya ha sido ocupada por otro; por otro lado, si tienes que agregar un número en una posición vacía, solo necesitarás enviar un SMS con el siguiente texto: NUMx + nnnnnnnnnnnnn. La eliminación de un número se ejecuta mediante un SMS que contiene el texto NUMx, pwd; en el lugar de la x tendrás que escribir la posición del número de teléfono a borrar, mientras que pwd es la contraseña habitual. Por ejemplo, para borrar el cuarto número de teléfono de la lista memorizada, se necesita un mensaje que contenga el texto NUM4; pwd. Para solicitar la lista del número de teléfono memorizado en el circuito, deberá enviar un SMS con el siguiente texto: ¿NUM?; Pwd. El tablero responde al número de teléfono del que proviene el interrogatorio. ¿Es posible conocer la calidad de la señal GSM enviando el QUAL? mando; el sistema responderá con un SMS con la situación actual. El mensaje se enviará al teléfono que envió el comando. Pasemos ahora al estado de entrada y los mensajes de configuración: ¿LIV? permite conocer el estado de las entradas; IN2 puede funcionar tanto a un nivel de tensión (se configura mediante LIV2: b, que dispara la alarma cuando la entrada está abierta) como a una variación (se configura mediante LIV: v). En cuanto a las entradas, es posible configurar un tiempo de inhibición, mediante el comando INI1: mm (los minutos de interdicción van en lugar de mm) para IN1 y mediante INI2: mm para IN2; la inhibición es necesaria para evitar el envío de advertencias continuas si la entrada, en el modo de nivel, permanece abierta. Para definir qué números de la lista deben recibir llamadas telefónicas, es necesario enviar el mensaje VOCxxxxxxxx: ON; pwd, con las mismas reglas que se utilizan para la gestión de los números de teléfono a los que enviar los mensajes SMS. El mensaje de respuesta es muy similar: "Número memorizado: Posx V + nnnnnnnnnnnn, Posy V + nnnnnnnnnnn". La S de SMS ha sido reemplazada por la V de voz. Incluso en este caso, existen dos comandos diferentes para la desactivación: SMSxxxxxxxx: OFF; pwd desactiva el envío de mensajes y VOCxxxxxxxx: OFF; pwd desactiva la posibilidad de realizar llamadas telefónicas. Las x representan las posiciones de los números que no deben recibir las advertencias de alarma. Necesitamos aclarar algo sobre el comando para la configuración de los números de teléfono a llamar o al que enviar los mensajes SMS de alarma: según la configuración predeterminada del firmware y después de cada reinicio total, el sistema dirigirá tanto las llamadas como los SMS. mensajes, a todos los números memorizados. En consecuencia, para dejar de lado algunos de ellos, es necesario enviar los comandos de desactivación: SMSxxxxxxxx: OFF; pwd o VOCxxxxxxxx: OFF; pwd, e indicar las posiciones a omitir. El sistema envía un SMS al número de teléfono que ocupa el primer lugar en la lista, cada vez que se enciende de nuevo. Esta función puede desactivarse / activarse mediante los comandos AVV0 (desactivar) y AVV1 (activar); el texto predeterminado es INICIO DEL SISTEMA. Pasemos ahora a los comandos que permiten la memorización o sobrescritura de los mensajes SMS a enviar: la sintaxis es como la de TINn: xxxxxxxxx, donde n es el número de la entrada a la que se refiere el mensaje, mientras que xs corresponder al mensaje de texto, que no debe exceder una longitud de 100 caracteres. Un ajuste imprescindible es el relativo al tiempo de observación IN1, que se realiza mediante el comando OSS1: ss, en el que el tiempo (que oscila entre 0 y 59 segundos) va en lugar de ss: indica al circuito por cuánto tiempo los botones deben permanecer pulsados desde que se detecta que el coche se ha detenido y antes de la generación de la alarma. La demora es de lo fundamental, para evitar que surja una falsa alarma cuando se detiene por un corto período de tiempo. Bajo este punto de vista el firmware, cuando el circuito está encendido (cuando el tablero está encendido), espera un tiempo que es el doble del programado, para permitir al conductor realizar operaciones como cerrar la puerta del garaje o abrocharse los cinturones de seguridad, etc. También se puede definir un tiempo de observación para IN2, con los mismos procedimientos, dando el comando OSS2: ss; También es posible solicitar los tiempos configurados actualmente a través de SMS (comando OSS?). Completemos esta descripción general de los comandos con el que devuelve la configuración predeterminada: eso es RES; pwd. El mensaje de respuesta es "Reset". El resto de comandos se describe en la Tabla 1.

Paso 7: Lista de componentes

C1, C8, C10: condensador cerámico de 1 µF (0805)

C2, C6, C7, C9: condensador cerámico de 100 nF (0805)

C3, C4: condensador de tantalio de 470 µF 6,3 VL (D)

C5: condensador de tantalio de 4, 7 µF 6,3 VL (A)

R1, R2, R4: 10 kohmios (0805)

R3, R12: 1 kiloohmio (0805)

R5: 470 ohmios (0805) R6: 3,3 kohmios (0805)

R7: 470 kohmios (0805) 1%

R8: 150 kohmios (0805) 1%

R9 ÷ R11: 470 ohmios (0805)

R13 ÷ R16: 10 kohmios (0805)

R17: -

U1: PIC18F46K20-I / PT (MF1361)

U2: MCP73831T

U3: MCP1640BT-I / CHY

U4: Placa de conexión cod. 2846-MMA8452

U5: Placa de conexión cod. 7300-MMA7361 (sin usar)

P1: microinterruptor de 90 °

P2: -

LD1: LED amarillo de 3 mm

LD2, LD4: LED verdes de 3 mm

LD5: - LD3: LED rojo de 3 mm

D1 ÷ D3: MBRA140T3G

D4: MMSD4148

DZ1: diodo Zener de 2,7 V 500 mW

L1: inductor bobinado de 4,7 µH 770 mA

BUZ1: Zumbador sin electrónica

Divisor de tiras hembra de 8 vías

Divisor de tiras hembra de 9 vías

Divisor de tiras macho de 6 vías

Conector hembra de 2 × 10 de paso de 2 mm

Terminal de 2 vías de paso 2,54 (3 uds.)

Conector JST de 2 vías y 2 mm de paso para PCB

Batería LiPo de 500 mA con conector JST de 2 mm

Placa de circuito impreso S1361 (85 × 51 mm)

Paso 8: Conclusión

Conclusión
Conclusión

El proyecto que proponemos aquí es una plataforma abierta; es posible utilizarlo para crear multitud de aplicaciones, entre las que se encuentran: la alarma para evitar que los niños se olviden en el coche, el sistema de atención a distancia y la alarma a distancia que mencionamos antes. Más en general, ese es un sistema que es capaz de generar advertencias y notificaciones por teléfono, cuando ocurren ciertos eventos, que no son necesariamente emergencias, y por lo tanto también sirven para fines de monitoreo remoto.

Recomendado: