Control de teléfono GSM con comandos AT y Arduino (Hacking GSM phone with Arduino)
We are going to use an old GSM phone like a
GSM shield to connect our system to cellular network. This is a simple, confidence
and cheap way to do it.
In this particular case we have a Motorola
w375 but it is possible to every GSM phone , not smart. Just need to search the
pinouts or test points. In general, they are in a visible place rear the
battery.
This project or idea is ideal to connect
arduino to de GSM network.
En este artículo vamos a ver cómo podemos usar un viejo
celular o teléfono GSM como modem GSM.
Es decir, podemos utilizar un Arduino para llamar, recibir o enviar
mensajes por medio de la red celular.
Este es un método barato o gratis prácticamente, de otro modo
necesitaríamos un módulo GSM o GSM Shield.
Hay otras posibilidades para enviar información por internet,
y que llegué a nuestro Smartphone o teléfono celular, por ejemplo usando un
módulo WIFI o Ethernet.
La ventaja de utilizar una red celular (GSM) para
comunicarnos y no INTERNET es que este último no es tan fiable ya que depende
de la conexión a internet, y de la red eléctrica. Si se corta la conexión o nos
quedamos sin energía eléctrica no se podría producir la comunicación, en cambio
la red celular siempre está disponible.
Es de resaltar que hoy en día una conexión a internet es muy
fiable y existen maneras para que sea más confiable. Aun así, sigue siendo la
comunicación por GSM la más confiable.
En este caso en particular utilizamos un Motorola W375, el
que teníamos disponible. Sin embargo, se puede utilizar para cualquier tipo de
celular, por ejemplo, Nokia, Sony Ericsson, ZTE, entre otros celulares viejos
que no son SMART. Tener en cuenta que cada marca en particular y a veces cada
modelo puede tener una forma de conexión diferente o una distribución de pines
diferentes.
Componentes:
·
Módulo
Arduino: si es uno del cual se puede extraer el chip mejor sino puede hacerse
con cualquier tipo, pero tenemos que utilizar un pequeño código para simular el
puerto serial.
·
Adaptador
UART- TTL a USB (opcional).
·
Celular
o teléfono GSM (no Smart)
·
Datasheet,
PCB, Test Points ó Pinouts (Distribución de pines o pines de Programación).
·
Plug
de audio 2.5 mm.
·
Cables
varios, soldador de estaño, pines de conexión, etc.
En nuestro ejemplo vamos a utilizar un Arduino Uno (sin Chip)
y un adaptador de UART-TTL a USB. Básicamente este último para ver que funciona
aún sin el Arduino, es opcional si no lo tenemos no es necesario.
Por otro lado, en este ejemplo no vamos a utilizar ningún
tipo de código grabado en el Arduino ya que lo utilizamos sin Chip, en otro
artículo podremos ver cómo hacerlo con el chip. Si desean verlo pueden buscar
en internet “¿cómo conectar Arduino y GSM Shield o SIM800L?” ya que es
básicamente lo mismo, pero utilizamos puertos virtuales con la librería
“SoftwareSerial”.
El objetivo de Este artículo es utilizar un modem GSM para
hacer una llamada o enviar un SMS por la red celular. Entonces vamos a ver cómo
ser haría la conexión si fuéramos a usar por ejemplo un SIM800L.
Módulo GSM SIM800L
En la imagen anterior se omitió mostrar la alimentación o la
fuente para el módulo, no se puede alimentar directamente desde el Arduino ya que
no se le puede sacar los mA (miliampers) necesarios para alimentar el modulo.
En algunos blogs muestran que es posible pero lo cierto es que es inestable. Es
necesario utilizar una batería externa o fuente para cubrir los picos de
consumo, sobre todo cuando está transmitiendo.
En el datasheet del módulo están todos los datos.
El módulo se conecta al Arduino utilizando una conexión UART
que es un protocolo de comunicación serial asincrónica. Esto básicamente
significa que solo necesitamos 3 cables para realizar la conexión, un pin RX,
un pin con TX y GND. El sistema de
comunicación o la tecnología se llama TTL que significa básicamente que las
señales digitales manejan el voltaje entre 0 a 5 volts.
La conexión es simple, al conectarlo a un Arduino sin chip y
conectar por USB el Arduino a la computadora podemos comunicarnos directamente
con el módulo vía monitor Serial. Es decir, si abrimos el monitor Serial del
IDE de Arduino y conectamos el módulo en el puerto COM correspondiente y una
velocidad de por ejemplo 115200 baudios, el módulo responde. Por ejemplo,
escribimos y enviamos “AT” y nos responde con un “Ok”, esto quiere decir que
están comunicados. A partir de allí sabemos que el módulo funciona y podemos
utilizar todos los comandos.
Si tenemos un conversor UART a USB también podemos probar el
módulo SIM800L conectado a la PC de la misma manera que con el Arduino.
Modem GSM con Motorola
W375
En el caso particular del Motorola W375, trae puerto “micro
USB” es decir que podemos conectarnos con un cable, el teléfono, a la PC. Esto
era para descargar imágenes, etc.
Además esto permitía comunicarnos con el puerto de
comunicaciones COM. Si tenemos el cable podemos probar la comunicación abriendo
el Monitor Serial del IDE Arduino y veremos que cuando nos conectamos a un
puerto (115200 baudios) nos muestra un mensaje que dice “AT Command
Interpreter”. Es decir que puede interpretar los comandos AT.
Este método no lo podemos utilizar con un Arduino porque no
podemos conectarnos vía USB, necesitamos comunicarnos desde el teléfono a los
pines del Arduino.
Los celulares GSM viejos venían de fábrica con pines de
comunicación solo que no estaban disponibles para el usuario común de una
manera sencilla o práctica. Estos pines ,pinouts o puntos de prueba (test
points) se usaban por los fabricantes de diferentes maneras, por ejemplo, para
desbloquear el terminal, programación, etc.
En nuestro caso disponíamos de un Motorola w375, un hermoso
celular que te da mucha nostalgia. En este caso anda perfecto, pero estaba
olvidado en algún cajón, decidimos utilizarlo para darle un uso moderno. El
único problema es que para este celular no disponíamos mucha información del
fabricante ni tampoco encontramos mucha información en internet.
Este tipo de celulares permitía usar estos pines desde el
plug o conector de audio, en este caso no fue posible (suponemos que debido a
un bloqueo de fabrica o porque un componente se rompió y dejo de funcionar)
pero en el esquemático está bien claro que debería ser posible. No quedó más
remedio que utilizar los pines de atrás. En otros casos, hay unos ejemplos en
internet donde es posible.
En la imagen anterior mostramos la conexión con el plug que
en nuestro caso no funciono pero debería funcionar.
Después de un arduo trabajo de investigación logramos
conseguir los planos de la placa, con los componentes y un esquemático del
circuito electrónico con los datos que necesitamos. En el caso de otros
celulares es más sencillo y la información es fácilmente encontrada, la foto
con los pines, incluso hay programas para ciertas marcas como Nokia donde nos
muestra los pines para cada terminal.
En nuestro terminal, sacando la batería vemos unos pines que
están accesibles, pero sin planos es imposible saber que es cada pin, por
suerte lo conseguimos y tenemos los 3 pintes que necesitamos, RX, TX y GND.
En la imagen
anterior vemos los pines ya identificados detrás de la batería.
Entonces tuvimos que recurrir a un método más invasivo.
Tuvimos que desarmar el teléfono para tener un acceso más franco a estos pines.
Luego de encontrarlos, y saber la denominación de cada uno, soldamos unos
cables para que sea práctico utilizarlos. Hay que asegurar que quede firme, y
hay que tener cuidado con las pistas ya que son muy sensibles y si las quemamos
no las podemos utilizar más.
Listo, una vez que tenemos todo conectado podemos probar y el
teléfono responde frente a los comandos AT, podemos por ejemplo realizar una
llamada con los simples comandos.
ATD+”número”; >> llama al
número
ATH >> cuelga.
En otro artículo podemos ver la utilidad que se le puede dar
a este sistema, como por ejemplo para un avisador de alarmas.
Conclusiones:
En resumen, obtenemos un modem GSM que nos permite una
interfaz de comunicación desde nuestro teléfono hasta el sistema que tengamos
desarrollado, puede ser una alarma, un control de ingreso, etc.
Lo mejor de todo es que es un sistema barato y confiable,
sobre todo lo segundo porque los módulos SIM800L, si no eres un experto, no son
tan confiables. El teléfono por si solo gestiona toda la conexión y mantiene la
señal para asegurar la conexión a la red celular. En cambio, con el módulo hay
que programar todas las posibles situaciones y si queremos escuchar el
micrófono o usar el altavoz tenemos que agregar elementos y ni hablar de la
antena (elemento crítico).
Referencias:
A continuación, dejamos una lista de enlaces con otros
proyectos similares que hemos encontrado.
·
Tutorial: Send SMS from your Arduino
using an old Motorola cell phone by Jeff Murchison - http://murchlabs.com/send-sms-from-your-arduino/
·
Arduino hacked ericsson mobile phone
GSM remote control by Konstantinos Kokoras - https://www.youtube.com/watch?v=Aeov5kAk6PE
·
Interfacing Old Mobile Phone
(Siemens,Nokia,Sony Ericsson) With Pic Or Arduino. (Cheapest GSM Project) by
Aymen LACHKHEM - https://letselectronic.blogspot.com/2016/07/interfacing-old-mobile-phone.html
Keys:
·
Enviar
SMS con teléfono GSM y Arduino
·
Controlar
celular GSM con comandos AT
·
Arduino
Hacking GSM phone
·
GSM
Phones communication pinouts
·
GSM serial communication (UART-TTL)
·
Send SMS from Arduino using Motorola, Nokia, ZTE, Sony
Ericsson, etc.
·
GSM
module or GSM caller
·
How To Use An Old Nokia To Send Text
Messages From An Arduino
·
How to use Nokia F-bus to send an SMS
message