Implementación de un módulo GSM para la condorboard

Integrantes

 * Iván Felipe Gutiérrez Delgado ([mailto:if.gutierrez2097@uniandes.edu.co if.gutierrez2097@uniandes.edu.co ])
 * Juan Sebastián Navarro Orjuela ([mailto:js.navarro87@uniandes.edu.co js.navarro87@uniandes.edu.co ])
 * Sergio David Rodriguez Bermúdez ([mailto:sd.rodriguez57@uniandes.edu.co sd.rodriguez57@uniandes.edu.co ])

Descripcion del proyecto
La idea de este proyecto, en general, es diseñar e implementar un módulo de hardware que permita la comunicación de la condorboard con la red celular GSM/GPRS. Se buscó el diseño de un conjunto completo de herramientas de desarrollo GSM compatibles con el hardware del que dispone la Cóndor. Vale la pena aclarar que el hardware que se ha diseñado consiste, principalmente, de un módem en forma de circuito integrado con la circuiteria externa que requiere para funcionar.

En un principio, se buscará que el modulo que el prototipo inicial (o Shield como se conoce a los módulos de otras plataformas) realice las funciones básicas de comunicación que realizaría típicamente un celular. Más adelante, se buscará la forma de implementar funcionalidades más avanzadas, como la transmisión de datos GPRS a un servidor. Cabe anotar que la plataforma tecnológica diseñada e implementada tiene múltiples opciones de comunicaciones, de las cuales aquí sólo hemos usado a forma de ejemplo la comunicación por mensajes de texto. Trabajos futuros buscarían desarrollar las capacidades totales de la plataforma.

Diagrama de Bloques
El diagrama de bloques general del modulo diseñado y su interacción con la condorboard se muestra en la siguiente figura.

Diagrama de Bloques detallado
Vale la pena mencionar que, debido a que la comunicación entre la condor y el modulo GSM es serial sin ningún tipo de control de flujo de datos, se tiene una interfaz por USART bastante simple que se puede apreciar en la siguiente figura.



= Descripción del módulo =

El módulo diseñado se basa en un módem M10 de Quectel. El módem permite una comunicación por GSM/GPRS en 4 bandas 850/900/1800/1900MHz. Si desea ver sus características generales, puede ir Aquí.

En este módem, hemos de emplear comandos AT para su control. Los comandos AT se envían bajo el puerto serial. Si desea revisar en detalle el set de comandos AT para el módulo, pueden remitirse a la bibliografía.

=Características del módulo=

El módulo tiene unas dimensiones de 7,4 cm x 10 cm. Su implementación se basó en la guía de diseño proporcionada por Quectel, que puede leerse en la bibliografía.

Los componentes empleados en el diseño se pueden encontrar en Sigmaelectrónica, y Tekcien. Puede importar los diodos TVS por muestras gratis de ST semiconductor.

Lista de componentes
A continuación, se listan los componentes comprados en sigmaelectrónica

- Módem              Quectel M10 - BH-106              Conector batería - H1016               Conector Sim Card - CONSMA-H        Conector antena - MMBT2222A       Transistores BJT - Leds 0806 de colores - R 51 kOhms 1206 - R 20 kOhms 1206 - R 100 kOhms 1206 - KFC-A04-02 Pulsador - C 100nF 0806 - MIC29302BU     Regulador de Voltaje

A continuación se listan los componentes comprados en Tekcien

- R 22 Ohms 1206 - R 475 KOhms 1206 - R 300 Ohms 1206 - R 47.5 KOhms 1206 - R 300 Ohms 1206 - R 470 Ohms 1206 - C 100uF Tantalio - C 1uF 0806 - C 15pF 0806 - C 56 pF Trough Hole

Componentes importados por muestras gratis en ST semiconductor

- ESDA6V1W5     Arreglo de Diodos TVS - ESDA6V1-5W6 Arreglo de Diodos TVS

Una vez se registre en la página web de ST semiconductor, puede realizar peticiones de muestras gratis. Le recomendamos solicitar más de un componente puesto que el tamaño de los diodos es muy pequeño, y es probable que pierda alguno de ellos. Adicionalmente, se empleó regleta de 1x2 y 1x7 para realizar las conexiones tanto de alimentación como del puerto serial.

= Comunicación Serial con el Computador y configuración del módulo =

El módem M10 cuenta con una configuración de autobauding, la cual le permite comunicarse con cualquier tasa de baudios que se establezca. Es de vital importancia que los niveles lógicos del protocolo serial se manejen como máximo a un voltaje de 3.3V, de lo contrario se pueden generar daños en el módulo. Es necesario emplear flujo de datos por Hardware la primera vez que se emplee. la configuración del formato serial corresponde a 8 bits en total, con 1 bit de parada y 0 de paridad. Una vez se establezca comunicación con el módulo, se puede configurar para que se permita una comunicación sin control por hardware. Ésto es necesario para comunicarse con el módulo desde la condorboard.

Configuración del Módem
Antes de conectar el módem con la condorboard, es conveniente configurarlo primero desde el puesto serial del computador. La razón para hacer esto es, como ya se ha explicado, que se debe configurar el módem para funcionar sin control de flujo de datos pues la condorboard no cuenta con los pines apropiados para esto (CTS, RTS, RI, DCD, etc.).

Para realizar este primer paso, se deben conectar todos los pines del módem al computador mediante el puerto serial e iniciar algún programa de control de módem y emulación de terminal, como minicom (linux) o termite (windows).

En este caso, teniendo en cuenta que las herramientas que se han venido trabajando se encuentran disponibles en linux, se usara minicom para la configuración del módem. Una vez se ha abierto minicom, en las opciones de puerto serial se debe verificar que se encuentre seleccionada la opción de control de flujo por hardware y que el puerto adecuado se encuentre seleccionado (ttyUSB0 o ttyUSB1 cuando se usa un adaptador serial-usb).

Cuando ya se ha inicializado el módem, se verifica la comunicación serial con el módem (que ya debería estar conectado y alimentado) enviando el comando "AT", a lo que el módem debería responder con "OK".

NOTA: Debe escribir exactamente lo mismo que aparece entre comillas, si quiere que el módem responda a sus comandos. Enviar el comando, en este caso significa presionar enter.

Ahora, se envía el comando "AT&V", con lo que el módem responderá con los parámetros de configuración actuales.

Después del ultimo comando, se encuentran al menos tres parámetros de configuración de gran importancia: +IFC, +ICF y +CSTA. El parámetro +IFC es el que nos permite desactivar el flujo de datos, el comando +ICF permite cambiar el formato en el que se envían los datos por el puerto serial y +CSTA permite cambiar el formato del número de marcación. La forma adecuada de modificar estos parámetros se muestra a continuación: Al enviar todos estos comandos, el módem deberá responder "OK" para confirmar que se modificaron los valores sin ningún tipo de error. Una vez hecho ésto, se deberá enviar el comando AT&W para almacenar los parámetros modificados, pues de no hacerlo así esto se perderán la próxima vez que se apague el módem.

Finalmente, se debe probar el módem para verificar que la configuración ha sido correcta. Lo primero que se hace es desconectar todos los cables entre el módem y el computador dejando solamente RXD, TXD y GND. Luego, se configura el terminal (minicom o termite) para que no use ningún tipo de flujo de datos, y se prueba enviando el comando "AT", a lo que el módem deberá responder "OK".

Pruebas Con el Módem
Una vez que el módem ha sido configurado y se ha probado su correcta comunicación con el puerto serial del computador, se debe probar que el módem puede comunicarse con la red celular antes de probarlo en una aplicación embebida. Para ésto se puede intentar llamar al módem con un teléfono celular o se puede enviar un mensaje de texto con el módem.

Llamando al Módulo
Para tener un módulo de comunicación GSM/GPRS completamente funcional, se debe contar con una tarjeta SIM activa y con saldo debidamente instalada en el socket del módem. Además, como es lógico, se debe conocer el número de la SIM para poder llevar un control sobre la linea.



Se puede ver, en el último ejemplo, que el módem envía un String con las letras RING para avisar que se está recibiendo una llamada. Esto lo hace hasta que el usuario conteste o cuelgue (lo que se hace con los comandos ATA y ATH respectivamente) o hasta que aquel que esta llamando cuelgue.

Enviando un mensaje de texto
Para enviar un mensaje de texto, se siguen los pasos que se ven a continuación:

1. Se debe habilitar el modo de mensaje de texto del módem M10 mediante el comando, a lo que el módem deberá responder con "OK".

2. Se envía el comando, donde se aprecia el formato en el que se debe ingresar en numero celular de destino.

3. El módem responderá con  el símbolo   indicando que se debe escribir el mensaje a enviar. Se puede poner  para poner una nueva linea.

4. Cuando se ha terminado de escribir el mensaje, se pone  para enviarlo, a lo que el modem debe responder con "OK" y un ID de seguimiento para el mensaje.

=Comunicación Serial con la CondorBoard mediante Picocom= Para esta parte del proyecto, se trabaja con una aplicacion similar a minicom, pero más compacta: Picocom. La idea es usar picocom en la condorboard para que esta pueda comunicarse con el módem.

Para emplear el programa picocom en la cóndor se debe, antes de cualquier cosa, compilar picocom con el compilador cruzado para el kernel de la condorboard. Entonces, lo primero que se debe hacer es descargar el comprimido con el código fuente de picocom en este sitio de Google Code.

Una vez que se tiene el archivo comprimido con el código fuente, este se descomprime y se ubica el makefile de la aplicación. En el makefile, se ubica la linea que define el compilador y se comenta o se reemplaza.

Vale la pena aclarar que en el extracto anterior NO SE MUESTRA EL MAKEFILE COMPLETO, solo la parte que se debe modificar para que la aplicación sea compatible con el kernel sobre el que se está trabajando.

Ahora que se ha modificado el makefile, este puede ser usado para compilar picocom, mediante el comando, y transferir el archivo ejecutable que resulta de la compilación a alguna carpeta del sistema de archivos de la cóndor.

Una vez que el ejecutable de picocom ha sido transferido al sistema de archivos de la condorBoard y se ha expulsado la memoria USB de forma segura (no hacerlo así puede traer problemas a la hora de abrir el archivo desde la cóndor), se procede a encender la cóndor y a cargar el sistema de archivos.

Luego de que la cóndor ha arrancado, y el usuario se encuentra logueado (usualmente como root), se navega por el sistema de archivos hasta que se ubique el ejecutable de picocom y se ejecuta de la siguiente forma:

Para la ejecución de picocom se usan los siguientes parámetros:

Cambia el caracter de escape pues la opcion por defecto deja el mismo de minicom. (Ctrl-A)

Ajusta el Baud-rate a 115200bps.

selecciona el puesto serial que se usa para la comunicación.

Cuando se inicia la ejecución de picocom, se tiene la siguiente pantalla:



Una vez que picocom se encuentra en ejecución, se pueden enviar comandos al módem mediante el puerto ttyS1 de la condorboard de la misma forma que se haría con el computador.Para ubicar el puerto ttyS1, se deben revisar los planos de la cóndor. Tenga en cuenta que se encuentra en la parte superior de la tarjeta junto a los jumpers de reset. =Establecer la Comunicación TCP/IP: Una IP local y Un servidor remoto= Enviar y recibir mensajes de texto o llamadas puede parecer una aplicación sumamente útil para el modulo GSM. El problema es que usar los servicios de voz o de mensajes de texto puede resultar bastante costoso para una aplicación comercial o industrial, sin mencionar que la velocidad a la que se transmiten los datos puede no ser la mas deseable. En estos casos es mas conveniente hacer uso del servicio de transmisión de datos por medio del protocolo TCP/IP que se encuentra embebido en el módem M10. El manual completo para establecer diferentes formas de comunicación mediante el protocolo TCP/IP lo encuentra aquí. Un aspecto muy importante que se debe tener en cuenta antes de probar la conectividad del modulo con un servidor remoto es que la sim del modulo GSM debe tener activa una cuenta con plan de datos, o de lo contrario, ninguno de los pasos que se muestran mas adelante funcionara.

Configuración de los parámetros de Red
Los pasos para establecer una comunicación TCP/IP comienzan con la configuración de algunos parámetros relacionados con el operador de telefonía celular. Estos parámetros son el APN, el usuario y la contraseña. En este caso se han usado los servicios de uff! móvil, por lo que los parámetros de configuración dependientes del operador solo servirán para redes de este operador. A continuación se muestran los parámetros de configuración para uff! movil.


 * APN:"uffmovil.com"
 * Usuario:"web uffmovil"
 * Contraseña:" "

Lo que sigue es la configuración como tal del módem para que reciba los parámetros de la red de telefonía móvil. Todos esto parámetros deben introducirse mediante comandos AT especializados para este propósito.


 * 1) Lo primero, es verificar el la red cuenta con la capacidad de transmitir paquetes de datos mediante GPRS y que el módem se encuentre habilitado para este servicio. Para esto se usa el comando, la respuesta debe ser   para poder hacer uso de la red de datos.
 * 2) Lo siguiente, es crear un contexto PDP o de Protocolo de Paquetes de Datos (Packet Data Protocol), que es el que permite la conexión de datos a través de la red celular a través de la tecnología GPRS. Para esto se usa el comando  y el módem debe responder con   para confirmar que se recibió el comando con los parámetros. Es importante recordar que se debe usar el comando   para que el módem almacene los datos, de lo contrario se perderían con cada reset.
 * 3) El paso siguiente es establecer el contexto creado en el paso anterior como el contexto de conexión de primer plano (foreground). Esto se hace mediante el comando   donde '1' es el ID del contexto que se definió mediante.
 * 4) Ahora se tiene un contexto definido como contexto de primer plano ara la conexión de datos, falta usar dicho contexto para la conexión por GPRS. Esto se hace mediante el comando . La razón para hacer esto es que, ademas de GPRS, el módem cuenta con la opción de establecer la conexión mediante CSD (Circuit Switched Data) por lo que se debe asegurar que la conexión se establecerá por GPRS.

Aunque existen mas parámetros que se pueden configurar, no vale la pena hacerlo pues los valores por defecto de dichos parametros son suficientes para que se puede establecer la conexión de manera correcta.

Establecer la comunicación mediante TCP/IP
Con los parámetros adecuados configurados y almacenados en la memoria del módem mediante, se puede establecer una "sesión" de transmisión de datos mediante el protocolo de Internet TCP/IP, lo que permitiría obtener por parte de la red una dirección IP propia, así como la posibilidad de enviar datos a un servidor.

Lo primero que se debe tener en cuenta, es que los pasos que se seguirán a continuación deben ejecutarse dentro de una etapa especifica de la conexión a la red. Para asegurar esto, aunque en general no es del todo necesario, se debe revisar el estado de la conexión mediante.


 * 1) Lo primero es registrar el Stack TCP/IP mediante el comando . Para que este comando funcione de manera correcta el estado de la conexión debe ser IP INITIAL.
 * 2) Ahora que se ha registrado el Stack, se activa la conexión mediante el comando . Después de un tiempo de espera que depende de la red celular, el módem debe responder con OK si se ha establecido la conexión de forma correcta o con ERROR si no.  La razón para obtener ERROR puede deberse a una mala configuración de los parámetros de la red (como el APN o el nombre de usuario) o al hecho de que el plan de datos no se encuentra activo por el operador (es responsabilidad del usuario contar con una SIM con un plan de datos activo). Se debe tener en cuenta que, una vez se ha iniciado la conexión, la inactividad de la red puede ocasionar que se desactive la misma, lo que se soluciona con    y realizando los pasos de esta sección desde el principio.
 * 3) Con la conexión establecida, se puede pedir al módem la dirección IP mediante el comando  a lo que el módem deberá responder con la dirección ID local asignada por la red.

Encontrar la dirección IP de un Sitio Web
Uno de los aspectos clave de cualquier cliente en una red de Internet consiste en la capacidad de conectarse con un DNS (Domain Name Server) para determinar la IP (o las IP) de un sitio determinado basándose en su nombre. Para hacer esto, se debe establecer la conexión de la forma mostrada en la sección anterior, y se usa el comando  de la forma mostrada en la imagen.



Enviar/recibir informacion mediante TCP/IP
Ya se han hecho algunas pruebas para verificar la conectividad del módem con el Internet, pero para que esto sea de utilidad se debe tener la capacidad de intercambiar informacion con un servidor remoto.

Para lograr la conexión con un servidor remoto, se debe contar con un servidor dispuesto para recibir conexiones entrantes (mediante un socket). Una alternativa simple, es descargar el código server.c disponible aquí y compilarlo para un computador con Ubuntu. Este código recibe como parámetro un puerto TCP (que debe estar disponible) y se bloquea una vez entra en espera de una conexión entrante.

Ahora, vale la pena aclarar que si se esta probando el módem con un servidor que se encuentra dentro de una LAN o una red inalambrica se debe activar el port forwarding para que este procedimiento funcione. Este proceso de port forwarding no se explica en detalle en esta pagina pues depende del enrutador que se esta usando para la red local, aunque se debe mencionar que el port forwarding se puede habilitar en el web setup que viene incluido en la mayoria de enrutadores en las direcciones IP locales   o.

Una vez se ha activado el port forwarding (en caso de que haya sido necesario), se puede usar el ejecutable generado con server.c con alguno de los puertos que se han habilitado en el port forwarding. Un vez se tiene el terminal corriendo este codigo (debe bloquearse) se lleva a cabo el siguiente procedimiento:


 * 1) Se realizan los pasos de las secciones anteriores para tener activado el intercambio de datos mediante GPRS en el módem.
 * 2) Se asegura que el comando adecuado  se encuentre seleccionado para el envío de datos. Esto se hace asegurando que   se encuentre en 1 mediante el comando de verificación , si no esta en 1, se usa.
 * 3) Ahora, se tiene el módem preparado para enviar datos al servidor remoto. Para esto se usa el comando  . El modem debera responder, primero con OK, y pasado un corto tiempo, deberá enviar OK CONNECT.
 * 4) Luego, se pueden enviar datos con el comando, este comando responde de forma similar a aquel que se usa para enviar un SMS. Deberá aparecer un promt como este   para escribir los datos a enviar, una vez han sido escritos se presiona   para enviar los datos.
 * 5) Finalmente, se cerrara la conexión. El GPRS deberá desactivarse mediante el comando , de esta forma el módem quedara preparado para enviar datos nuevamente (se deben repetir todos los pasos desde la sección anterior).

=Comunicación TCP/IP entre la CondorBoard y un Servidor= Una vez se conoce la forma de comunicar el módem con un servidor remoto mediante sockets, se puede escribir una pequeña aplicación que permita hacerlo de forma mas sencilla sin tener que introducir uno a uno los comandos AT.

La idea es crear dos archivos, uno que haga las veces de interfaz entre el puerto serial de la cóndor y el módem, y el otro que sera el que envie los comandos necesarios AT en el orden especifico que se mostró al final se la sección anterior (este ultimo archivo el el main).

El primer archivo, es una versión modificada de un aplicativo de prueba para puertos seriales. Se modifico de tal forma que pudiera ser llamado desde el archivo principal (main) para habilitar la comunicacion serial con el modem (mediante la funcion sendAT), y ademas se modifico también para que el archivo main pudiera asignar el puerto serial (mediante la funcion give_port).

El segundo archivo, el main.c, es el que se compila con el compilador cruzado y se ejecuta en la cóndor. Esencialmente, funciona como un script que toma una serie de parámetros y los usa para enviar de forma ordenada los comandos AT que se requieren para que el módem logre establecer una comunicación TCP con un servidor remoto. Los parametros que se mencionan aquí son aquellos que se mostraron en cada uno de los pasos al final de la sección anterior, como por ejemplo la dirección IP, el puerto del host, el puerto serial de la condor, el mensaje o la informacion que se quiere enviar, etc.

En este enlace encontrara los archivos necesarios para obtener un aplicativo funcional para intercambiar datos entre la CondorBoard y un servidor.

Conexión Con una Base de datos
Ahora que se tiene una forma confiable de comunicacion IP mediante el protocolo TCP, resulta de utilidad poder almacenar los datos enviados desde la CondorBoard en una base de datos en el servidor remoto, y una de las formas mas convenientes de hacer esto es mediante un sistema gestor de bases de datos.

La razón para hacer uso de un sistema de gestión de bases de datos es que estos están en desarrollo continuo, tienen medidas de seguridad para el acceso a las bases de datos y cuentan con herramientas suficientes para la administración de las mismas.

En este caso en particular, se hará uso de un sistema de gestión bastante difundido y de código abierto llamado MySQL. MySQL esta disponible para un gran numero de plataformas (incluida Linux) y se usa en bases de datos como las de Wikipedia, Google (aunque no se usa para el motor de búsqueda), Facebook y Twitter.

Instalación De MySQL
Aunque es usual instalar MySQL junto con otros aplicativos para la administración de servidores Web (Apache y PHP en lo que se conoce como LAMP o Linux-Apache-MySQL-PHP) por lo pronto solo se mostrara la instalación de MySQL, que es bastante sencilla.

Desde un terminal se ingresa el siguiente comando :

sudo apt-get install mysql-server mysql-client

Puede necesitar: sudo apt-get install libmysqlclient-dev

Durante la instalación del paquete mysql-server se nos pedirá suministrar una contraseña de administrador (o de usuario root si se sigue con la jerga de linux) antes de concluir con la instalación.

Si por alguna razón requiere instalar los demás componentes del servidor LAMP, en este sitio encontrara informacion suficiente para la instalación y configuración de Apache y PHP, asi como la instalación de paquetes orientados a la comunicación con las bases de datos de MySQL.

Al final de la instalacion, debe aparecer en la carpeta  una carpeta llamada   que incluye las librerías de la API de MySQL. Estas librerias se usaran mas adelante para agregar los datos recibidos desde la Condor a una base de datos de MySQL.

Primeros Pasos con MySQL
Aunque en esta wiki se le dará mayor prioridad al uso de la API de MySQL, es importante conocer algunos aspectos clave de MySQL, como crear un usuario, darle privilegios al usuario, crear una base de datos, crear una tabla y ver los datos en una tabla entre otros.

Aunque desde la API es posible hacer cualquier tipo de consulta o modificación sobre la base de datos, lo normal en este caso es que la Cóndor se limite a enviar datos, por lo que el trabajo que realizaremos con la API sera solamente crear una tabla y agregar datos a la misma.

A continuación, se listan algunos comandos básicos para la gestión de las bases de datos de MySQL:


 * Para entrar al monitor de MySQL (la linea de comandos) como usuario root desde un terminal (se solicitara la contraseña suministrada en la instalación):

mysql -h localhost -u root -p

Debe aparecer un prompt como el siguiente:

mysql>

En caso de querer ingresan con otro usuario, se cambia root por el nombre del usuario y se suministra la contraseña correcta (mas adelante se mostrara como agregar un usuario).


 * Para crear una base de datos:

CREATE DATABASE ; Aunque los comandos en sintaxis SQL no deben esta necesariamente en mayúscula, es recomendable escribirlos de esta forma para que sea mas fácil leerlos y diferenciarlos del texto que no esta compuesto por comandos.


 * Para usar una base de datos:

USE ;


 * Para crear una tabla en una base de datos (debe usar el comando USE explicado con anterioridad):

CREATE TABLE (,...,);

En este ultimo comando, tipo de dato hace referencia al tipo de valor que se usara, por ejemplo DOUBLE, VARCHAR, etc. Para mas informacion acerca de los tipos de datos disponibles, consulte el siguiente enlace.


 * Para agregar datos a una tabla, se usa la siguiente sintaxis:

INSERT INTO VALUES (,..., <"Dato para la columna n">);


 * Para ver una lista con las tablas en la base de datos:

SHOW TABLES;


 * Para ver los datos existentes en una tabla:

SELECT * FROM <"nombre de la tabla">;

Ahora, para poder acceder remotamente a la base de datos de manera practica y segura, se debe contar con un usuario que tenga una contraseña. Los siguientes comandos se enfocaran en la creación de un usuario y la forma de otorgar privilegios a un usuario. Para mas informacion acerca de la creacion de usuario y privilegios, consulte el siguiente enlace.


 * Sintaxis para crear un usuario:

CREATE USER '<"Nombre del nuevo usuario">'@'<"Nombre del host del usuario">' IDENTIFIED BY '<"contraseña del nuevo usuario">';


 * Dar Privilegios a un usuario sobre una base de datos:

GRANT ALL PRIVILEGES ON <"nombre de la base de datos">.* TO '<"nombre del usuario">' IDENTIFIED BY '<"contraseña del usuario">';

Prueba con una base de datos remota
Una vez se conocen los fundamentos basicos para el uso y administración de bases de datos en MySQL, se pueden comenzar las pruebas con el modem y la condorboard.

Con anterioridad, en esta wiki, se mostró un link a una pagina con el codigo fuente para un servidor remoto simple, con la capacidad de comunicacion mediante sockets. Ahora, este código se ha modificado para que los datos recibidos en el servidor se almacenen en la base de datos, esto se hace mediante los diferentes comandos disponibles en la API de MySQL. El codigo debidamente documentado, asi como el makefile con las instrucciones al compilador se pueden encontrar en este enlace. Es importante tener en cuenta que para compilar el código con referencias a la API de MySQL, se le deben pasar algunas instrucciones especiales al compilador (incluidas en el makefile).

A continuación, se muestra un screencast con una demostración del funcionamiento del sistema completo.

ea6x_mdnTNo

= Hardware =

Para la fabricación del PCB, aquí encontrará los archivos correspondientes al módulo. Vale la pena mencionar que el diseño se hizo sobre Kicad, pues es una aplicación libre y hay bastante material al respecto en esta wiki.

A continuación se muestra el módem GSM implementado:



Hay que resaltar que existen componentes Trough Hole que se encuentran por el reverso, puesto que el PCB se diseñó de una sola capa para un menor costo, así como una fácil fabricación.

A continuación se puede observar el esquemático del módem:



=Trabajo Futuro=

Basados en la plataforma aquí desarrollada, es posible realizar conexiones inalámbricas para aplicaciones embebidas específicas. Cualquier proyecto que requiera de una comunicación GSM/GPRS puede emplear el módulo.

=Bibliografía=

Set de comandos AT-Quectel Aquí.

Quectel M10 Hardware Design Aquí.

Descripcion de los comandos de la API de MySQL