- Componentes requeridos:
- Explicación de trabajo:
- Explicando cuatro características del teléfono móvil Raspberry Pi:
- Diagrama de circuito y explicación:
- Explicación de programación:
En este proyecto de bricolaje vamos a construir un teléfono móvil simple usando Raspberry Pi, en el que se usa el módulo GSM para realizar o responder la llamada y enviar o leer el SMS , y también este teléfono Raspberry Pi tiene micrófono y altavoz para hablar sobre esto. Teléfono . Este proyecto también servirá como una interfaz adecuada del módulo GSM con Raspberry Pi, con todo el código necesario para operar las funciones básicas de cualquier teléfono. Anteriormente hemos construido el mismo tipo de teléfono móvil simple usando Arduino, verifique aquí
Componentes requeridos:
- Raspberry Pi 3 (cualquier modelo)
- Módulo GSM
- LCD de 16x2
- Teclado 4x4 (el usuario puede usar un teclado de membrana)
- Bote de 10k
- Tablero de circuitos
- Conexión del cable de puente
- Fuente de alimentación
- Altavoz
- MIC
- Tarjeta SIM
- Altavoz
- Circuito amplificador de audio (opcional)
Explicación de trabajo:
En este proyecto de teléfono móvil Raspberry Pi, hemos utilizado el módulo GSM y Raspberry Pi 3 para controlar las funciones de todo el sistema y conectar todos los componentes de este sistema. Se utiliza un teclado alfanumérico 4x4 para recibir todo tipo de entradas como: introducir el número de móvil, escribir mensajes, hacer una llamada, recibir una llamada, enviar SMS, leer SMS, etc. El módulo GSM SIM900A se utiliza para comunicarse con la red para llamadas y mensajes. propósito. También hemos interconectado un micrófono y un altavoz para llamadas de voz y sonido de timbre, y se utiliza una pantalla LCD de 16x2 para mostrar mensajes, instrucciones y alertas.
Alfanumérico es un método para ingresar números y alfabetos usando el mismo teclado. En este método, hemos interconectado el teclado 4x4 con Raspberry Pi y también hemos escrito un Código para aceptar alfabetos, verifique la sección Código en Código a continuación.
Trabajar en este proyecto es fácil. Todas las funciones se realizarán mediante el uso del teclado alfanumérico. Verifique el código completo y un video de demostración a continuación para comprender correctamente el proceso. A continuación, explicaremos las cuatro características de los proyectos.
Explicando cuatro características del teléfono móvil Raspberry Pi:
1. Hacer una llamada:
Para hacer una llamada usando nuestro teléfono basado en Raspberry Pi, tenemos que presionar 'C' y luego necesitamos ingresar el número de móvil en el que queremos hacer una llamada. El número se ingresará usando el teclado alfanumérico. Después de ingresar el número, nuevamente debemos presionar 'C'. Ahora Raspberry Pi procesará para conectar la llamada al número ingresado usando el comando AT:
ATDxxxxxxxxxx;
2. Recibir una llamada:
Recibir una llamada es muy sencillo. Cuando alguien llama al número SIM de su sistema, que se encuentra en el módulo GSM, su sistema mostrará el mensaje "Entrante…" en la pantalla LCD con el número entrante de la persona que llama. Ahora solo necesitamos presionar 'A' para atender esta llamada. Cuando presionamos 'A', Raspberry Pi enviará el comando dado al Módulo GSM:
ATA
3. Enviar SMS:
Cuando queremos enviar un SMS usando nuestro teléfono basado en Raspberry Pi, entonces necesitamos presionar 'D'. Ahora, el sistema solicitará el número de destinatario, que significa 'a quién' queremos enviar SMS. Después de ingresar el número, debemos presionar nuevamente 'D' y ahora la pantalla LCD solicita un mensaje. Ahora tenemos que escribir el mensaje, como lo hacemos en un móvil normal, usando el teclado y luego de ingresar el mensaje debemos presionar la 'D' nuevamente para enviar SMS. Para enviar SMS, Raspberry Pi envía el comando dado:
AT + CMGF = 1
Y envía 26 a GSM para enviar SMS.
4. Recibir y leer SMS:
Esta característica también es sencilla. En este, GSM recibirá SMS y lo almacena en la tarjeta SIM. Y Raspberry Pi monitorea continuamente la indicación de SMS recibidos a través de UART. Siempre que haya un mensaje nuevo, la pantalla LCD mostrará el texto “Mensaje nuevo” y luego solo debemos presionar 'B' para leer el SMS. La indicación de SMS recibido es:
+ CMTI: “SM”, 6 Donde 6 es la ubicación del mensaje donde se almacena en la tarjeta SIM.
Cuando Raspberry Pi recibe esta indicación de 'SMS recibido', extrae la ubicación de almacenamiento de SMS y envía un comando a GSM para leer el SMS recibido. Y muestra un texto de "Mensaje nuevo" en la pantalla LCD.
AT + CMGR =
Ahora GSM envía el mensaje almacenado a Raspberry Pi y luego Raspberry Pi extrae el SMS principal y lo muestra en la pantalla LCD.
Nota: No hay codificación para MIC y Speaker.
Verifique el código completo y un video de demostración a continuación para comprender correctamente el proceso.
Diagrama de circuito y explicación:
Los pines LCD de 16x2 RS, EN, D4, D5, D6 y D7 están conectados con los pines GPIO número 18, 23, 24, 25, 8 y 7 de Raspberry Pi respectivamente. El pin Rx y Tx del módulo GSM está conectado directamente al pin Tx y Rx de Raspberry Pi respectivamente (la tierra de Raspberry Pi y GSM deben estar conectados entre sí). Teclado 4x4 Los pines de fila R1, R2, R3, R4 están directamente vinculados al pin GPIO número 12,16, 20, 21 de Raspberry Pi y el pin de columna del teclado C1, C2, C3, C4 están vinculados con el pin GPIO número 26, 19, 13 y 6 de Raspberry Pi. MIC está conectado directamente a mic + y mic- del módulo GSM y el altavoz está conectado a los pines sp + y sp- para el módulo GSM con la ayuda de este circuito amplificador de audio, para amplificar la salida de audio. Este circuito amplificador de audio es opcional y puede conectar directamente el altavoz al módulo GSM sin este amplificador de audio.
Explicación de programación:
La programación de parte de este teléfono móvil Raspberry Pi es un poco compleja para principiantes. Estamos usando el lenguaje Python aquí para el Programa. Si es un principiante en Raspberry Pi, debe consultar nuestros tutoriales anteriores para Comenzar con Raspberry Pi e Instalar y configurar el sistema operativo Raspbian Jessie en Pi.
En este código, hemos creado def keypad (): función para interconectar un teclado simple para ingresar números. Y para ingresar alfabetos, hemos creado def alphaKeypad (): para que ese mismo teclado también se pueda usar para ingresar los alfabetos. Ahora hemos hecho que este teclado funcione con múltiples funciones como la biblioteca de teclados Arduino. Al usar este teclado, podemos ingresar caracteres y números enteros usando solo 10 teclas.
Como si presionamos la tecla 2 (abc2), mostrará 'a' y si la presionamos nuevamente, reemplazará 'a' por 'b' y si nuevamente presionamos tres veces, mostrará 'c' en el mismo lugar en LCD. Si esperamos un tiempo después de presionar la tecla, el cursor se moverá automáticamente a la siguiente posición en la pantalla LCD. Ahora podemos ingresar el siguiente carácter o número. Se aplica el mismo procedimiento para otras claves.
def teclado (): para j en rango (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 para i en rango (4): si gpio.input (ROW) = = 0: ch = MATRIX return ch while (gpio.input (ROW) == 0): pasa gpio.output (COL, 1)
def alphaKeypad (): lcdclear () setCursor (x, y) lcdcmd (0x0f) msg = "" while 1: key = 0 count = 0 key = keypad () if key == '1': ind = 0 maxInd = 6 Key = '1' getChar (Key, ind, maxInd)……………….
En primer lugar, en este script de Python hemos incluido algunas bibliotecas requeridas y pines definidos para LCD, teclado y otros componentes:
import RPi.GPIO como gpio import serial import time msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,,] ROW = COL =………………
Ahora es el momento de dar dirección a los pines:
gpio.setwarnings (Falso) gpio.setmode (gpio.BCM) gpio.setup (RS, gpio.OUT) gpio.setup (EN, gpio.OUT) gpio.setup (D4, gpio.OUT) gpio.setup (D5, gpio.OUT) gpio.setup (D6, gpio.OUT) gpio.setup (D7, gpio.OUT) gpio.setup (led, gpio.OUT) gpio.setup (buz, gpio.OUT) gpio.setup (m11, gpio.OUT) gpio.setup (m12, gpio.OUT) gpio.setup (botón, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. salida (m12, 0)
Luego inicialice la comunicación serial como se muestra a continuación:
Serial = serial.Serial ("/ dev / ttyS0", velocidad en baudios = 9600, tiempo de espera = 2)
Ahora necesitamos escribir alguna función para conducir LCD. Función def lcdcmd (ch): se utiliza para enviar comandos a la pantalla LCD y def lcdwrite (ch): la función se utiliza para enviar datos a la pantalla LCD. Junto con estas funciones, def lcdclear (): se usa para borrar la pantalla LCD, def setCursor (x, y): se usa para establecer la posición del cursor en la LCD y def lcdprint (Str): se usa para imprimir cadenas en la LCD.
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) if ch & 0x10 == 0x10: gpio.output (D4, 1)………………
def lcdwrite (ch): gpio.output (RS, 1) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) if ch & 0x10 == 0x10: gpio.output (D4, 1) si ch & 0x20 == 0x20: gpio.output (D5, 1)………………
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) para i en el rango (l): lcdwrite (ord (Str)) def setCursor (x, y): if y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Después de esto, necesitamos escribir algunas funciones para enviar SMS, recibir SMS, hacer una llamada y atender la llamada.
Función def call (): se utiliza para realizar la llamada. Y la función def ReceiveCall (datos): se utiliza para mostrar el mensaje entrante y el número en la pantalla LCD. Finalmente def assistCall (): se usa para atender la llamada.
Función def sendSMS (): se utiliza para escribir y enviar el mensaje con la ayuda de la función alphaKeypad () . Y la función def recibe SMS (datos): se utiliza para recibir y recuperar la ubicación de los SMS. Finalmente def readSMS (índice): se utiliza para mostrar el mensaje en la pantalla LCD.
Puede encontrar todas las funciones anteriores en el Código que se proporciona a continuación.
Así es como puede convertir su Raspberry Pi en un teléfono móvil con la ayuda del módulo GSM. Consulte también este teléfono inteligente con pantalla táctil Raspberry Pi.