Tabla de contenido:

Unidad de control remoto GSM / SMS basada en Arduino: 16 pasos (con imágenes)
Unidad de control remoto GSM / SMS basada en Arduino: 16 pasos (con imágenes)

Video: Unidad de control remoto GSM / SMS basada en Arduino: 16 pasos (con imágenes)

Video: Unidad de control remoto GSM / SMS basada en Arduino: 16 pasos (con imágenes)
Video: Android SMS App Based Device Switching using Arduino 2024, Noviembre
Anonim
Unidad de control remoto GSM / SMS basada en Arduino
Unidad de control remoto GSM / SMS basada en Arduino

! ! ! AVISO !

Debido a que la torre de telefonía celular local se está actualizando en mi área, ya no puedo usar este módulo GSM. La torre más nueva ya no admite dispositivos 2G. Por lo tanto, ya no puedo dar ningún apoyo a este proyecto.

Con una gama tan amplia de módulos GSM disponibles para el aficionado, la mayoría de nosotros terminamos comprando uno. Compré un módulo SIM800L localmente y terminé jugando con los diferentes comandos del módulo.

Usando Arduino Uno y Arduino IDE, pude convertir mis ideas en realidad. Esto no fue fácil, ya que el PROBLEMA MÁS GRANDE es la limitación de solo 2 KB de SRAM. Después de mucha investigación en Internet y en diferentes foros, pude superar esta limitación.

Diferentes técnicas de programación, una mejor comprensión del compilador Arduino y el uso de la tarjeta SIM y EEPROM para memoria adicional, salvaron este proyecto. Después de algunos cambios en el código, se construyó y probó un prototipo estable durante un período de una semana.

Un inconveniente de la SRAM limitada era que la unidad no podía equiparse con una pantalla y teclas de usuario. Esto resultó en una reescritura completa del código. Sin interfaz de usuario, la única opción que quedaba para continuar con el proyecto era hacer uso de mensajes SMS para configurar la unidad, así como los usuarios.

Este resultó ser un proyecto emocionante, y se agregaron más futuros a medida que continuaba el desarrollo.

Mi objetivo principal era seguir con el Arduino Uno, o en este caso, el ATMEGA328p, y no usar ningún componente de montaje en superficie. Esto hará que sea más fácil para el público en general copiar y construir la unidad.

Especificación de la unidad:

  • Se puede programar un máximo de 250 usuarios en la unidad
  • Cuatro salidas digitales
  • Cuatro entradas digitales
  • Cada salida se puede configurar como una salida PULSE o ON / OFF
  • La duración del pulso de salida se puede establecer entre 0,5.. 10 segundos
  • Cada entrada se puede configurar para activar los cambios de OFF a ON.
  • Cada entrada se puede configurar para activar cambios de ON a OFF
  • Cada tiempo de retardo de entrada se puede configurar entre 0 segundos y 1 hora.
  • Los mensajes SMS para cambios en las entradas se pueden enviar a 5 usuarios diferentes
  • El usuario puede establecer los nombres y el texto de estado para cada entrada
  • El usuario puede establecer los nombres y el texto de estado para cada salida
  • La unidad se puede configurar para recibir mensajes de saldo de la tarjeta SIM a través de mensajes USSD.
  • Todos los usuarios pueden solicitar actualizaciones de estado de E / S de la unidad
  • Todos los usuarios pueden controlar salidas individuales a través de mensajes SMS
  • Todos los usuarios pueden controlar salidas individuales llamando a la unidad

Caracteristicas de seguridad

  • La configuración inicial de la unidad solo se puede realizar mientras está en la unidad.
  • La configuración inicial solo puede ser realizada por el USUARIO MAESTRO
  • Los comandos de configuración inicial se desactivan automáticamente después de diez minutos.
  • Solo las llamadas y los mensajes SMS enviados por usuarios conocidos pueden controlar la unidad
  • Los usuarios solo pueden operar las salidas asignadas por el USUARIO MAESTRO

Otras características

  • Las llamadas a esta unidad son gratuitas, ya que nunca se responde.
  • Cuando se llama a la unidad, la llamada solo se interrumpirá después de 2 segundos. Esta es la confirmación para la persona que llama de que la unidad respondió a la llamada.
  • Si el proveedor de servicios de la tarjeta SIM admite mensajes USSD, el USUARIO PRINCIPAL puede realizar consultas de saldo. El mensaje USSD que contiene el saldo se enviará al USUARIO PRINCIPAL.

Paso 1: fuente de alimentación

Fuente de alimentación
Fuente de alimentación

Para garantizar que la unidad se pueda conectar a los sistemas de seguridad estándar (sistemas de alarma, puertas de garaje eléctricas, motores de portón eléctrico), la unidad se alimentará con 12 V CC, que normalmente está disponible en dichos sistemas.

La energía se aplica a los terminales 12V IN y 0V, y está protegida por un fusible de 1A. Hay terminales de salida de 12V adicionales disponibles y también están protegidos por el fusible.

El diodo D1 protege la unidad contra conexiones de polaridad inversa en las líneas de 12V.

Los condensadores C1 y C2 filtran cualquier ruido presente en las líneas de suministro de 12V. La fuente de 12V se utiliza para alimentar los relés de la unidad.

El suministro de 5 V consta de un regulador de voltaje LM7805L y emite un + 5 V estable necesario para el módulo GSM SIM800L, así como para el microprocesador. Los condensadores C3 y C4 filtran cualquier ruido que pueda estar presente en la línea de suministro de + 5V. Se utilizaron condensadores electrolíticos de tamaño relativamente grande, ya que el módulo GSM SIM800L utiliza bastante potencia al transmitir.

No se requiere disipador de calor en el regulador de voltaje.

Paso 2: Entradas digitales

Entradas digitales
Entradas digitales
Entradas digitales
Entradas digitales

Las señales de entrada digital son todas de 12 V y deben interconectarse con el microcontrolador de 5 V. Para ello, se utilizan optoacopladores para aislar las señales de 12V del sistema de 5V.

La resistencia de entrada de 1K limita la corriente de entrada al optoacoplador a alrededor de 10 mA.

Debido a las limitaciones de espacio, no había espacio disponible en la placa de circuito impreso para resistencias pull-up de 5V. El microcontrolador está configurado para permitir pull-ups débiles de los pines de entrada.

Sin señal presente en la entrada (BAJA) del optoacoplador, no fluirá corriente a través del LED del optoacoplador. Por lo tanto, el transistor optoacoplador se apaga. El pull-up débil del microcontrolador elevará el colector a casi 5V, y el microcontrolador lo verá como un ALTO lógico.

Con 12 V aplicados (ALTO) a la entrada del optoacoplador, fluirán alrededor de 10 mA a través del LED del optoacoplador. Por lo tanto, el transistor optoacoplador se encenderá. Esto reducirá el colector a casi 0 V y el microcontrolador lo verá como un BAJO lógico.

Tenga en cuenta que la entrada vista por el microcontrolador está invertida en comparación con la entrada de 12V.

El código normal para leer el pin de entrada tiene el siguiente aspecto:

entrada booleana = digitalRead (inputpin);

Para corregir la señal invertida, use el siguiente código:

Entrada booleana =! digitalRead (inputpin); // Nota la ! delante de la lectura

Ahora, la entrada vista por el microcontrolador corresponderá a la entrada en la entrada de 12V.

El circuito de entrada final consta de 4 entradas digitales. Cada entrada está conectada a terminales en la placa de circuito impreso.

Paso 3: Salidas digitales

Salidas digitales
Salidas digitales
Salidas digitales
Salidas digitales
Salidas digitales
Salidas digitales

Normalmente, con un circuito que maneja solo un número mínimo de relés, la mejor manera es usar un circuito controlador de transistor como se muestra. Es simple, de bajo costo y efectivo.

Las resistencias proporcionan una limitación de corriente de la base del transistor y la bajada a tierra. El transistor se utiliza para aumentar la corriente disponible para impulsar un relé. Con solo 1 mA extraído del pin del microcontrolador, el transistor puede cambiar una carga de 100 mA. Más que suficiente para la mayoría de tipos de relés. El diodo es un diodo de retorno que protege el circuito de picos de alto voltaje durante la conmutación del relé. La ventaja adicional de utilizar este circuito es que el voltaje de funcionamiento del relé puede ser diferente del voltaje del microcontrolador. Por lo tanto, en lugar de usar un relé de 5 V, se puede usar cualquier voltaje de CC de hasta 48 V.

Presentamos el ULN2803

Cuantos más relés requiera un proyecto, mayor será el número de componentes. Esto hará que el diseño de la placa de circuito impreso sea más difícil y podría consumir un valioso espacio de la placa de circuito impreso. Pero el uso de una matriz de transistores, como el ULN2803, definitivamente ayudará a mantener el tamaño de la PCB pequeño. El ULN2803 es ideal para entradas de 3.3V y 5V desde un microcontrolador, y puede manejar relés de hasta 48V DC. Este ULN2803 tiene 8 circuitos de transistores individuales, cada circuito equipado con todos los componentes necesarios para conmutar un relé.

El circuito de salida final consta de un ULN3803, que activa 4 relés de salida de 12 V CC. Cada contacto del relé está disponible en los terminales de la placa de circuito impreso.

Paso 4: Oscilador del microcontrolador

Oscilador del microcontrolador
Oscilador del microcontrolador
Oscilador del microcontrolador
Oscilador del microcontrolador
Oscilador del microcontrolador
Oscilador del microcontrolador

Circuito del oscilador

El microcontrolador necesita un oscilador para funcionar correctamente. Para mantener el diseño de Arduino Uno, el circuito utilizará el oscilador estándar de 16MHz. Hay dos opciones disponibles:

Cristal

Este método utiliza un cristal conectado a dos condensadores de carga. Ésta es la opción más común.

Resonador

Un resonador es básicamente un cristal y dos condensadores de carga en un solo paquete de 3 pines. Esto reduce la cantidad de componentes y aumenta el espacio disponible en la placa de circuito impreso.

Para mantener el conteo de componentes lo más bajo posible, opté por usar un resonador de 16MHz.

Paso 5: LED de indicación

LED de indicación
LED de indicación
LED de indicación
LED de indicación

¿Qué sería de cualquier circuito sin algunos LED? En la placa de circuito impreso se hicieron provisiones para LED de 3 mm.

Las resistencias de 1K se utilizan para limitar la corriente a través del LED a menos de 5 mA. Cuando se utilizan LED de alto brillo de 3 mm, el brillo es excelente.

Para una fácil interpretación de los LED de estado, se utilizan dos colores. Combinando los dos LED con indicaciones parpadeantes, se puede obtener una gran cantidad de información de solo dos LED.

LED rojo

El LED rojo se usa para indicar condiciones de falla, retrasos prolongados, cualquier comando incorrecto.

LED verde

El LED verde se utiliza para indicar entradas y comandos correctos y / o en buen estado.

Paso 6: Circuito de reinicio del microprocesador

Circuito de reinicio del microprocesador
Circuito de reinicio del microprocesador

Por razones de seguridad, algunas de las funciones de la unidad solo están disponibles en los primeros 10 minutos después de encender la unidad.

Con un botón de reinicio, no es necesario apagar la unidad para reiniciarla.

Cómo funciona

La resistencia de 10K mantendrá la línea RESET cerca de 5V. Cuando se presiona el botón, la línea RESET se llevará a 0V, manteniendo así el microcontrolador en reinicio. Cuando se suelta el botón, la línea RESET vuelve a% v, reiniciando el microcontrolador.

Paso 7: Módulo SIM800L

Módulo SIM800L
Módulo SIM800L
Módulo SIM800L
Módulo SIM800L
Módulo SIM800L
Módulo SIM800L

El corazón de la unidad es el módulo GSM SIM800L. Este módulo utiliza solo 3 pines de E / S en el microcontrolador.

El módulo se conecta al microcontrolador a través de un puerto serie estándar.

  • Todos los comandos a la unidad se envían a través del puerto serie utilizando comandos AT estándar.
  • Con una llamada entrante, o cuando se recibe un SMS, la información se envía al microcontrolador a través del puerto serie utilizando texto ASCII.

Para ahorrar espacio, el módulo GSM se conecta a la placa de circuito impreso a través de un encabezado de 7 pines. Esto facilita la extracción del módulo GSM. Esto también permite al usuario insertar / quitar fácilmente la tarjeta SIM en la parte inferior del módulo.

Se requiere una tarjeta SIM activa y la tarjeta SIM debe poder enviar y recibir mensajes SMS.

Configuración del módulo GSM SIM800L

Al encender la unidad, el pin de reinicio del módulo GSM se baja durante un segundo. Esto asegura que el módulo GSM solo se inicia después de que la fuente de alimentación se haya estabilizado. El módulo GSM tarda un par de segundos en reiniciarse, así que espere 5 segundos antes de enviar cualquier comando AT al módulo.

Para garantizar que el módulo GSM esté configurado para comunicarse correctamente con el microcontrolador, se utilizan los siguientes comandos AT durante el inicio:

A

se utiliza para determinar si hay un módulo GSM disponible

AT + CREG?

Sondeo de este comando hasta que el módulo GSM se registre en la red de telefonía móvil

AT + CMGF = 1

Establecer el modo de mensaje SMS en ASCII

AT + CNMI = 1, 2, 0, 0, 0

Si hay SMS disponible, envíe los detalles del SMS al puerto serie del módulo GSM

AT + CMGD = 1, 4

Elimina los mensajes SMS almacenados en la tarjeta SIM

AT + CPBS = / "SM

Configure la agenda telefónica del módulo GSM en la tarjeta SIM

AT + COPS = 2, luego AT + CLTS = 1, luego AT + COPS = 0

Establecer la hora del módulo GSM a la hora de la red del teléfono móvil

Espere 5 segundos para que se establezca el tiempo

AT + CUSD = 1

Habilitar la función de mensajería USSD

Paso 8: el microcontrolador

El microcontrolador
El microcontrolador
El microcontrolador
El microcontrolador
El microcontrolador
El microcontrolador

El microcontrolador es un AtMega328p estándar, el mismo que se usa en el Arduino Uno. Por tanto, el código es comparable con ambos. Para permitir una fácil programación a bordo, se encuentra disponible un encabezado de programación de 6 pines en la placa de circuito impreso.

Las diferentes secciones de la unidad están conectadas al microprocesador e incluyen lo siguiente:

  • Cuatro entradas digitales
  • Cuatro salidas digitales
  • El oscilador
  • Dos LED de indicación
  • Circuito de reinicio
  • Módulo GSM SIM800L

Todas las comunicaciones hacia y desde el módulo GSM se realizan mediante la función SoftwareSerial (). Este método se utilizó para liberar el puerto serie principal para el IDE de Arduino durante la fase de desarrollo.

Con solo 2 KB de SRAM y 1 KB de EEPROM, no hay suficiente memoria para almacenar más de un par de usuarios que se pueden vincular a la unidad. Para liberar la SRAM, toda la información del usuario se almacena en la tarjeta SIM del módulo GSM. Con esta disposición, la unidad puede atender hasta 250 usuarios diferentes.

Los datos de configuración de la unidad se almacenan en EEPROM, separando así los datos del usuario y los datos del sistema entre sí.

Todavía hay varios pines de E / S de repuesto disponibles, sin embargo, la opción de agregar una pantalla LCD y / o un teclado no fue posible debido a la gran cantidad de SRAM utilizada por los búferes de recepción y transmisión de SoftWareSerial (), Debido a la falta de cualquier tipo de interfaz de usuario en la unidad, todos los ajustes y usuarios se programan mediante mensajes SMS.

Paso 9: Optimización de la memoria SRAM

Optimización de la memoria SRAM
Optimización de la memoria SRAM

Bastante temprano en la etapa de desarrollo, Arduino IDE reportó poca memoria SRAM al compilar el código. Se utilizaron varios métodos para superar esto.

Limite los datos recibidos en el puerto serie

El módulo GSM informará todos los mensajes al microcontrolador del puerto serie. Al recibir algunos mensajes SMS, la longitud total del mensaje recibido puede superar los 200 caracteres. Esto puede consumir rápidamente toda la SRAM disponible en el chip AtMega y provocará problemas de estabilidad.

para evitar esto, solo se utilizarán los primeros 200 caracteres de CUALQUIER mensaje recibido del módulo GSM. El siguiente ejemplo muestra cómo se hace esto contando los caracteres recibidos en la variable Contador.

// escanear en busca de datos desde el puerto serie del software

// ----------------------------------------------- RxString = ""; Contador = 0; while (SSerial.available ()) {retraso (1); // breve retraso para dar tiempo a que se coloquen nuevos datos en el búfer // obtener un nuevo carácter RxChar = char (SSerial.read ()); // agrega los primeros 200 caracteres a la cadena if (Contador <200) {RxString.concat (RxChar); Contador = Contador + 1; }}

Reducción del código Serial.print ()

Aunque es útil durante el desarrollo, Arduino Serial Monitor puede consumir una gran cantidad de SRAM. El código se desarrolló utilizando la menor cantidad posible de código Serial.print (). Una sección de código que se ha probado para que funcione, todo el código Serial.print () se eliminó de esa parte del código.

Usando el código Serial.print (F ((""))

Mucha de la información que normalmente se muestra en el monitor serial Arduino tiene más sentido cuando se agregan descripciones. Tome el siguiente ejemplo:

Serial.println ("Esperando acciones específicas");

La cadena "Esperando acciones específicas" es fija y no se puede cambiar.

Durante la compilación del código, el compilador incluirá la cadena "Esperando acciones específicas" en la memoria FLASH.

Además, el compilador ve que la cadena es una constante, utilizada por la instrucción "Serial.print" o "Serial.println". Durante el arranque del micro, esta constante también se coloca en la memoria SRAM.

Al usar el prefijo "F" en las funciones Serial.print (), le dice al compilador que esta cadena solo está disponible en la memoria FLASH. Para este ejemplo, la cadena contiene 28 caracteres. Son 28 bytes que se pueden liberar en SRAM.

Serial.println (F ("Esperando acciones específicas"));

Este método también se aplica a los comandos SoftwareSerial.print (). Como el módulo GSM funciona con comandos AT, el código contiene numerosos comandos SoftwareSerial.print ("xxxx"). El uso del prefijo "F" liberó casi 300 bytes de SRAM.

No utilice el puerto serie de hardware

Después de la depuración del código, el puerto serie de hardware se desactivó eliminando TODOS los comandos Serial.print (). Esto liberó algunos bytes adicionales de SRAM.

Sin ningún comando Serial.print () dejado en el código, se pusieron a disposición 128 bytes adicionales de SRAM. Esto se hizo quitando el puerto serie de hardware del código. Esto aumentó los búferes de transmisión de 64 bytes y de recepción de 64 bytes.

// Serial.begin (9600); // puerto serie de hardware deshabilitado

Usando EEPROM para cadenas

Para cada entrada y salida, era necesario guardar tres cadenas. Son el nombre del canal, la cadena cuando el canal está encendido y la cadena cuando el canal está apagado.

Con un total de 8 canales de E / S, serán

  • 8 cadenas que contienen los nombres de los canales, cada una de 10 caracteres
  • 8 cadenas que contienen la descripción del canal On, cada una de 10 caracteres
  • 8 cadenas que contienen la descripción del canal desactivado, cada una de 10 caracteres

Esto anuncia hasta 240 bytes de SRAM. En lugar de almacenar estas cadenas en SRAM, se almacenan en EEPROM. Esto liberó 240 bytes adicionales de SRAM.

Declarar cuerda con las longitudes correctas

Las variables normalmente se declaran al principio del código. Un error común al declarar una variable de cadena es que no declaramos la cadena con el número correcto de caracteres.

String GSM_Nr = "";

String GSM_Name = ""; String GSM_Msg = "";

Durante el inicio, el microcontrolador no asignará memoria en SRAM para estas variables. Posteriormente, esto puede causar inestabilidad cuando se utilizan estas cadenas.

Para evitar esto, declare las cadenas con el número correcto de caracteres que la cadena utilizará en el software.

Cadena GSM_Nr = "1000000000";

String GSM_Name = "2000000000"; Cadena GSM_Msg = "3000000000";

Observe cómo no declaré las cadenas con los mismos caracteres. Si declara todas estas cadenas con, por ejemplo, "1234567890", el compilador verá la misma cadena en las tres variables y solo asignará suficiente memoria en la SRAM para una de las cadenas.

Paso 10: Tamaño del búfer de serie del software

Tamaño del búfer de serie del software
Tamaño del búfer de serie del software

En el siguiente código, notará que se pueden leer hasta 200 caracteres desde el puerto serie del software.

// escanear en busca de datos desde el puerto serie del software

// ----------------------------------------------- RxString = ""; Contador = 0; while (SSerial.available ()) {retraso (1); // breve retraso para dar tiempo a que se coloquen nuevos datos en el búfer // obtener un nuevo carácter RxChar = char (SSerial.read ()); // agrega los primeros 200 caracteres a la cadena if (Contador <200) {RxString.concat (RxChar); Contador = Contador + 1; }}

Esto también requiere un búfer de al menos 200 bytes para el puerto serie del software. de forma predeterminada, el búfer del puerto serie del software es de solo 64 bytes. Para aumentar este búfer, busque el siguiente archivo:

SoftwareSerial.h

Abra el archivo con un editor de texto y cambie el tamaño del búfer a 200.

/******************************************************************************

* Definiciones ********************************************** ****************************** / #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // Tamaño del búfer RX #endif

Paso 11: Hacer la placa de circuito impreso

Hacer la placa de circuito impreso
Hacer la placa de circuito impreso

La placa de circuito impreso se diseñó utilizando la versión gratuita de Cadsoft Eagle (creo que el nombre ha cambiado).

  • La placa de circuito impreso tiene un diseño de una sola cara.
  • No se utilizan componentes de montaje en superficie.
  • Todos los componentes están montados en la placa de circuito impreso, incluido el módulo SIM800L.
  • No se requieren componentes o conexiones externos
  • Los puentes de cables están ocultos debajo de los componentes para una apariencia más limpia.

Utilizo el siguiente método para hacer placas de circuito impreso:

  • La imagen de la placa de circuito impreso se imprime en Press-n-Peel utilizando una impresora láser.
  • El Press-n-Peel se coloca sobre una pieza limpia de placa de circuito impreso y se fija con cinta adhesiva.
  • La imagen de la placa de circuito impreso se transfiere desde Press-n-Peel a la placa de circuito impreso en blanco pasando la placa a través de un laminador. Para mí, 10 pases funcionan mejor.
  • Después de que la placa de circuito impreso se enfríe a temperatura ambiente, el Press-n-Peel se levanta lentamente de la placa.
  • A continuación, se graba la placa de circuito impreso utilizando cristales de persulfato de amonio disueltos en agua caliente.
  • Después de grabar, el Press-n-Peel azul y el tóner negro se eliminan limpiando la placa de PC grabada con un poco de acetona.
  • Luego, la tabla se corta a la medida con una Dremel.
  • Los orificios para todos los componentes del orificio pasante se perforan con una broca de 1 mm.
  • Los conectores de tornillo de terminal se perforan con una broca de 1,2 mm.

Paso 12: Montaje de la placa de circuito impreso

Montaje de la placa de circuito impreso
Montaje de la placa de circuito impreso
Montaje de la placa de circuito impreso
Montaje de la placa de circuito impreso
Montaje de la placa de circuito impreso
Montaje de la placa de circuito impreso
Montaje de la placa de circuito impreso
Montaje de la placa de circuito impreso

El ensamblaje se realiza agregando primero los componentes más pequeños y trabajando hasta llegar a los componentes más grandes.

Todos los componentes utilizados en este Instructable, excluyendo el módulo SIM800, se obtuvieron de mi proveedor local. Piensa en ellos por tener siempre stock. Por favor, eche un vistazo a su página web sudafricana:

www.shop.rabtron.co.za/catalog/index.php

¡NOTA! Primero suelde los dos puentes ubicados debajo del ATMEGA328p IC

El orden es el siguiente:

  • Resistencias y diodos
  • Botón de reinicio
  • Zócalos IC
  • Regulador de voltaje
  • Pines de encabezado
  • Pequeños condensadores
  • LEDs
  • Portafusibles
  • Bloques de terminales
  • Relés
  • Condensadores electrolíticos

Antes de insertar los circuitos integrados, conecte la unidad a 12V y pruebe que todos los voltajes sean correctos.

Finalmente, usando un poco de laca transparente, cubra el lado de cobre de la placa de circuito impreso para protegerla de los elementos.

Cuando la laca se haya secado, inserte los circuitos integrados, pero deje el módulo GSM hasta que se haya programado el AtMega.

Paso 13: Programación del AtMega328p

Programando el AtMega328p
Programando el AtMega328p
Programando el AtMega328p
Programando el AtMega328p
Programando el AtMega328p
Programando el AtMega328p

# # Actualización de firmware a la versión 3.02 # #

Se habilitó el envío de SMS al USUARIO MAESTRO cuando se restablezca la energía en el dispositivo

Estoy usando un Arduino Uno con un escudo de programación para programar la unidad. Para obtener más información sobre cómo usar un Arduino Uno como programador, consulte este Instructable:

Arduino UNO como programador AtMega328P

Es necesario quitar el módulo GSM de la placa de circuito impreso para acceder al encabezado de programación. Tenga cuidado de no dañar el cable de la antena al retirar el módulo GSM.

Conecte el cable de programación entre el programador y la unidad usando el encabezado de programación en la placa de circuito impreso y cargue el boceto en la unidad.

La fuente externa de 12V no es necesaria para programar la unidad. La placa de circuito impreso se alimentará desde el Arduino a través del cable de programación.

Abra el archivo adjunto en el IDE de Arduino y prográmelo en la unidad.

Después de programar, retire el cable de programación e inserte el módulo GSM.

La unidad ya está lista para usarse.

Paso 14: Conexión de la unidad

Conexión de la unidad
Conexión de la unidad
Conexión de la unidad
Conexión de la unidad
Conexión de la unidad
Conexión de la unidad

Todas las conexiones a la unidad se realizan a través de los terminales de tornillo.

Encendido de la unidad

Asegúrese de haber insertado una tarjeta SIM registrada en el módulo GSM y de que la tarjeta SIM pueda enviar y recibir mensajes SMS.

Conecte una fuente de alimentación de 12 V CC a la ENTRADA de 12 V y cualquiera de los terminales de 0 V. Una vez encendido, se encenderá el LED rojo en la placa de circuito impreso. En aproximadamente un minuto, el módulo GSM debería haberse conectado a la red de telefonía celular. El LED rojo se apagará y un LED rojo en el módulo GSM parpadeará rápidamente.

Una vez alcanzada esta etapa, la unidad está lista para ser configurada.

Conexiones de entrada

Las entradas digitales funcionan con 12V. Para encender una entrada, es necesario aplicar 12 V a la entrada. Quitar los 12V apagará la entrada.

Conexiones de salida

Cada salida consta de un contacto conmutador. Conecte cada contacto según sea necesario.

Paso 15: Configuración inicial

Configuración inicial
Configuración inicial

Se debe realizar la configuración inicial de la unidad para garantizar que todos los parámetros estén configurados con los valores predeterminados de fábrica y que la tarjeta SIM esté configurada para aceptar la información del usuario en el formato correcto.

Como todos los comandos se basan en SMS, necesitará otro teléfono para realizar la configuración.

Para la configuración inicial, debe estar en la unidad.

Configure el número de teléfono del USUARIO MAESTRO

Como solo el USUARIO MAESTRO puede configurar la unidad, este paso debe realizarse primero.

  • La unidad debe estar alimentada.
  • Presione y suelte el botón Reset y espere a que se apague el LED rojo de la placa de circuito impreso.
  • El LED NET en el módulo GSM parpadeará rápidamente.
  • La unidad ahora está lista para aceptar los comandos de configuración inicial. Esto debe llevarse a cabo dentro de los 10 minutos.
  • Envíe un mensaje SMS que contenga MASTER, descripción al número de teléfono de la unidad.
  • Si se recibe, el LED verde de la placa de circuito impreso parpadeará dos veces.
  • Ahora se ha programado el USUARIO MAESTRO.

Restaurar la unidad a los valores predeterminados de fábrica

Después de que se haya programado el USUARIO MAESTRO, la configuración de la unidad debe establecerse en los valores predeterminados de fábrica.

  • Envíe un mensaje SMS con solo CLEARALL al número de teléfono de la unidad.
  • Si se recibe, el LED verde y rojo en la placa de circuito impreso parpadeará alternativamente una vez por segundo. La unidad ha sido restaurada con la configuración predeterminada de fábrica.
  • Todos los ajustes se han restaurado a los valores predeterminados de fábrica.
  • Presione y suelte el botón Reset para reiniciar la unidad.

Formatear la tarjeta SIM

El último paso es borrar toda la información almacenada en la tarjeta SIM y configurarla para su uso en esta unidad.

  • Presione y suelte el botón Reset y espere a que se apague el LED rojo de la placa de circuito impreso.
  • El LED NET en el módulo GSM parpadeará rápidamente.
  • La unidad ahora está lista para aceptar los comandos de configuración inicial. Esto debe llevarse a cabo dentro de los 10 minutos.
  • Envíe un mensaje SMS solo con ERASESIM al número de teléfono de la unidad.
  • Si se recibe, el LED verde de la placa de circuito impreso parpadeará en forma de árbol.

La unidad ya se ha configurado y está lista para su uso.

Paso 16: Comandos SMS

Comandos SMS
Comandos SMS

Hay tres tipos diferentes de comandos utilizados por la unidad. Todos los comandos se envían por SMS y están todos en el siguiente formato:

COMANDO

  • Todos los comandos, excepto los comandos de USUARIO NORMAL, distinguen entre mayúsculas y minúsculas.
  • Los parámetros no distinguen entre mayúsculas y minúsculas.

Comandos de configuración inicial

MAESTRO, nombre

El número de teléfono del remitente del SMS se utiliza como número de teléfono del USUARIO MAESTRO. Aquí se puede agregar una descripción de la unidad.

LIMPIAR TODO

Restablecer la unidad a los valores predeterminados de fábrica

CLEARSIM

Borrar todos los datos de la tarjeta SIM

REINICIAR

Reinicia la unidad

Comandos MASTER USER para configurar la unidad

OUTMODE, c, m, t ¡NOTA! ! ! AUN NO IMPLEMENTADO

Configure canales específicos para que tengan salidas PULSADO, TEMPORIZADO o ENGANCHE. t es la duración del tiempo en minutos para las salidas TEMPORIZADAS

PULSO, cccc

Configure canales específicos para salidas PULSADAS. Si no se configura, los canales se configurarán como salidas LATCHING.

PULSETIME, t Establece la duración de la salida pulsada en segundos (0.. 10s)

ENTRADA, cccc

Configure los canales que deben activarse y envíe un mensaje SMS cuando el estado cambie de APAGADO a ENCENDIDO

ENTRADA, cccc

Configure los canales que deben activarse y envíe un mensaje SMS cuando el estado cambie de ON a OFF

INTIME, c, t

Establece el tiempo de retardo de entrada para detectar cambios de estado en segundos.

INTEXT, ch, nombre, encendido, apagado

Configure el nombre de cada canal de entrada, en texto y fuera de texto

OUTTEXT, ch, name, on, off

Configure el nombre de cada canal de salida, en texto y fuera de texto

Agregar, ubicación, número, salidas de llamadas, salidas de SMS, entradas

Agregar usuario a la tarjeta SIM en la 'ubicación' de la memoria, con canales de entrada y salida asignados al usuario

Del, ubicación

Eliminar usuario de la 'ubicación' de la memoria de la tarjeta SIM

Nombre del Canal

Pulsará la salida con el nombre ChannelName

ChannelName, onText o ChannelName, offText

Activará / desactivará la salida con el nombre de ChannelName y onText / offText

Comandos de usuario normales para controlar la unidad

???? Solicitar actualización de estado de E / S. El SMS de estado se enviará al remitente.

Nombre del Canal

Pulsará la salida con el nombre ChannelName

ChannelName, onText

Activará la salida con el nombre de ChannelName y el texto de estado onText

ChannelName, offText Apagará la salida con el nombre de ChannelName y el texto de estado offText

Para obtener una descripción más detallada de los comandos, consulte el documento PDF adjunto.

Recomendado: