Tabla de contenido:
- Paso 1: Comandos SMS
- Paso 2: creación del controlador SMS
- Paso 3: Programación del ATMEGA328p
- Paso 4: uso del controlador de SMS
- Paso 5: Aplicación de Android
Video: Automatización del hogar basada en SMS de Android y Arduino: 5 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
! ! ! 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
Recientemente, recibí un módulo GSM / GPRS de banda cuádruple relativamente barato para jugar. Es un módulo SIM800L y se comunica con cualquier micro a través de un puerto serie. Viene completo con una antena de montaje en panel.
Decidí construir un sistema de controlador SMS simple que usa comandos de servicio de mensajes cortos (SMS) para controlar dispositivos e indicar alarmas.
Paso 1: Comandos SMS
Como ocurre con cualquier sistema de comunicación, es necesario enviar comandos específicos a un dispositivo remoto para indicarle qué hacer. Del mismo modo, el dispositivo remoto debe responder o reaccionar a estos comandos. Este proyecto consta de dos partes, el controlador SMS y un teléfono celular estándar.
La idea era crear un controlador SMS simple con cuatro salidas digitales. Dependiendo del SMS recibido, la unidad debe poder controlar las salidas individuales.
También decidí incluir cuatro entradas digitales. Esto se puede utilizar para indicar alarmas u otra información.
Antes de comenzar la compilación, decidí crear comandos específicos para funciones específicas. Estos 'comandos' se enviarán mediante un SMS desde un teléfono celular.
Comandos de recepción del controlador SMS:
o1: 1 - activa la salida 1
o1: 0 - apagar salida 1
o1: p - salida de pulsos 1 activada, luego desactivada
o2: 1 - activa la salida 2
o2: 0 - apagar salida 2
o2: p - salida de pulsos 2 activada, luego desactivada
o3: 1 - activa la salida 3
o3: 0 - apagar salida 3
o3: p - salida de pulsos 3 activada, luego desactivada
o4: 1 - activa la salida 4
o4: 0 - apagar salida 4
o4: p - salida de pulsos 4 activada, luego desactivada
???? - Solicitar estado de Entradas y Salidas
#### - Restablecer sistema
Para recibir comentarios, el controlador de SMS debe responder a los comandos recibidos y responder con un SMS. Decidí que este SMS de respuesta debería incluir el estado de todos los pines de E / S.
Comandos de respuesta del controlador SMS:
i1: x i2: x i3: x i4: x o1: x o2: x o3: x o4: x
donde x es el estado de E / S, 1 para Encendido, 0 para Apagado.
Paso 2: creación del controlador SMS
Equipamiento requerido:
Cualquier Arduino o ATMEGA328p independiente en una placa de pruebas
Módulo SIM800L GSM / GPRS con una tarjeta SIM capaz de enviar y recibir SMS
Convertidor reductor DC / DC
NOTA !
Se requiere el convertidor CC / CC para alimentar el módulo SIM800L. Este módulo opera entre 3.7V y 5V, dependiendo de la versión que tengas. Este módulo también requiere una fuente de alimentación que pueda entregar hasta 2A cuando el módulo transmite datos. ¡No se puede alimentar directamente desde el Arduino Uno
El circuito es bastante sencillo. Lo he ensamblado y probado en una placa de pruebas.
La energía al circuito es a través del convertidor CC / CC, con el voltaje de salida establecido en 4.5V. Hay cuatro LED para simular las salidas digitales y cuatro botones para las entradas digitales. El SIM800L está conectado a los pines Rx / Tx del ATMEGA328p.
Un quinto LED se utiliza para indicar cuando el sistema está ocupado enviando un SMS.
Paso 3: Programación del ATMEGA328p
Antes de programar, abra el archivo INO y edite el número de teléfono. Reemplace xxxxxxxxxx con su propio número de teléfono celular en la línea 46. Vuelva a compilar y cargue el archivo.
Además, lea las instrucciones sobre cómo configurar el puerto serie del software en el archivo INO.
//=============================================================================//
//! ! ! NOTA ! ! !
// ================
//
// BÚFER EN LA BIBLIOTECA DE SERIE DE SOFTWARE SE CAMBIARÁ A 200
//
// Para utilizar Software Serial, el usuario también debe cambiar el BÚFER de Software Serial a 200.
// Debe editarse en el siguiente archivo:
//
// C: / Archivos de programa / Arduino x.x.x / Hardware / Arduino / AVR / Libraries / SoftwareSerial / src / SoftWareSerial.h
//
// Cambie el búfer como se muestra a continuación:
//
// #ifndef _SS_MAX_RX_BUFF
// #define _SS_MAX_RX_BUFF 200
// Tamaño del búfer de RX
// #terminara si
//
//=============================================================================
Consulte este instructivo para programar el ATMEGA328p en la placa de pruebas usando un Arduino UNO.
www.instructables.com/id/Arduino-UNO-as-AtM…
Paso 4: uso del controlador de SMS
Usando el controlador de SMS
El controlador de SMS enviará automáticamente un SMS a su teléfono si se activa alguna de las cuatro entradas. Los detalles del disparador estarán contenidos en el texto del SMS.
Los mensajes y comandos SMS se pueden editar según sus necesidades en el archivo INO.
Prueba de las salidas del controlador SMS
Desde su teléfono celular, envíe los siguientes comandos a su número de tarjeta SIM SIM800L:
o1: 1, esto activará la salida 1.
En su teléfono, recibirá el siguiente SMS:
i1: 0 i2: 0 i3: 0 i4: 0 o1: 1 o2: 0 03: 0 o4: 0
01: 0, esto apagará la salida 1.
En su teléfono, recibirá el siguiente SMS:
i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0
01: p, esto encenderá la salida 1 durante 1 segundo, luego apagará la salida 1 nuevamente (pulsada).
En su teléfono, recibirá el siguiente SMS:
i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0
Prueba de las entradas del controlador SMS
En el controlador SMS, presione brevemente el botón 1
En su teléfono, recibirá automáticamente el siguiente SMS:
i1: 1 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0
En el controlador SMS, presione brevemente el botón 2
En su teléfono, recibirá automáticamente el siguiente SMS:
i1: 1 i2: 1 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0
En el controlador SMS, presione brevemente el botón 3
En su teléfono, recibirá automáticamente el siguiente SMS:
i1: 1 i2: 1i3: 1 i4: 0 o1: 0 o2: 0 03: 0 o4: 0
Como se puede ver en los SMS recibidos, las salidas cambian según los comandos recibidos. Sin embargo, las entradas no vuelven a cambiar de 1 a 0 después de presionar los botones. Como quería poder ver cualquier cambio en las entradas, decidí sellar el estado de la entrada hasta que se envíe un comando de reinicio al controlador SMS.
Restablecer alarmas
Para restablecer el estado de la entrada, envíe el siguiente comando:
####, esto restablecerá el estado de la entrada.
En su teléfono, recibirá el siguiente SMS:
i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0
Actualizaciones de estado
También puede solicitar el estado en cualquier momento enviando el siguiente comando:
????, esto solicitará una actualización de estado de las E / S.
En su teléfono, recibirá el siguiente SMS:
i1: x i2: x i3: x i4: x o1: x o2: x 03: x o4: x
donde x indica el estado, 1 para encendido, 0 para apagado.
Paso 5: Aplicación de Android
Usando MIT App Inventor 2 (https://ai2.appinventor.mit.edu/), creé una interfaz de usuario simple para mi teléfono celular Android. Esta aplicación le permite personalizar la descripción de cada E / S. También permite la entrada del número de teléfono.
Los cuatro botones se utilizan para controlar las salidas, mientras que las casillas de verificación indican el estado de la entrada.
Para editar la aplicación, cree una cuenta MIT App Inventor 2 e importe el archivo AIA.
Para instalar la aplicación en su teléfono, copie el archivo APK en su teléfono e instálelo. Deberá habilitar la instalación de aplicaciones de "Fuentes desconocidas" en la configuración de seguridad de su teléfono.
Recomendado:
Cómo hacer automatización del hogar basada en IoT con el relé de control de sensores NodeMCU: 14 pasos (con imágenes)
Cómo hacer automatización del hogar basada en IoT con el relé de control de sensores NodeMCU: en este proyecto basado en IoT, hice la automatización del hogar con el módulo de relé de control Blynk y NodeMCU con retroalimentación en tiempo real. En el modo manual, este módulo de relé se puede controlar desde el móvil o teléfono inteligente y, interruptor manual. En el modo automático, este smar
Rastreador GPS para automóvil con notificación por SMS y carga de datos de Thingspeak, basado en Arduino, automatización del hogar: 5 pasos (con imágenes)
Rastreador GPS para automóvil con notificación por SMS y carga de datos de Thingspeak, basado en Arduino, automatización del hogar: hice este rastreador GPS el año pasado y, como funciona bien, lo publico ahora en Instructable. Está conectado al enchufe de accesorios en mi maletero. El rastreador GPS carga la posición, la velocidad, la dirección y la temperatura medida del automóvil a través de un dato móvil
Automatización del hogar basada en IOT: 4 pasos
Automatización del hogar basada en IOT: Cómo funciona: hago una placa de circuito personalizada para controlar 4 relés con esp8266 NodeMcu Este circuito funciona con una potencia de 12 voltios CC y 1 amperio. cuando se enciende, nodemcu se conecta a su enrutador a través de WiFi & también conéctese con el servidor Blynk Su teléfono inteligente envíe una coma
Automatización del hogar más simple con Bluetooth, teléfono inteligente Android y Arduino: 8 pasos (con imágenes)
Automatización del hogar más simple con Bluetooth, teléfono inteligente Android y Arduino .: Hola a todos, Este proyecto se trata de construir el dispositivo de automatización del hogar más simplificado usando un arduino y un módulo bluetooth. Éste es muy fácil de construir y se puede construir en unas pocas horas. En mi versión que estoy explicando aquí mismo, puedo
Automatización simple del hogar con Raspberry Pi3 y Android Things: 5 pasos (con imágenes)
Automatización simple del hogar usando Raspberry Pi3 y Android Things: La idea es diseñar un “ HOGAR inteligente ” en el que se pueden controlar los dispositivos domésticos utilizando Android Things y Raspberry Pi. El proyecto consiste en controlar electrodomésticos como luz, ventilador, motor, etc. Materiales necesarios: Raspberry Pi 3HDMI Ca