Вы находитесь на странице: 1из 18

ENVO DE MENSAJES A TRAVS DEL MDULO ARDUINO CELLULAR SHIELD - SM5100B CONTROLADO POR EL ARDUINO UNO R3

DIRIGIDO A: ING. GABRIEL PIERES

PRESENTADO POR: FERNANDO CASTAEDA ANDREA JARAMILLO RAFAEL OLIVO JESS PREZ

UNIVERSIDAD DE LA COSTA, CUC FACULTAD DE INGENIERA PROGRAMA DE INGENIERA ELECTRNICA COMUNICACIONES I BARRANQUILLA, 20 DE NOVIEMBRE DE 2012

TABLA DE CONTENIDO
1. Objetivos .................................................................................................. 2 1.1. 1.2. Objetivo General ................................................................................ 2 Objetivos Especficos ......................................................................... 2

Introduccin ........................................................................................................ 3 2. Estado del Arte ......................................................................................... 4 3. Descripcin ............................................................................................... 5 4. Marco terico ............................................................................................ 6 5. Esquemticos ........................................................................................... 8 6. Materiales ................................................................................................. 9 7. Codificacin ............................................................................................ 10 8. Procedimiento......................................................................................... 11 Conclusiones .................................................................................................... 13 Anexos ............................................................................................................. 14 Referencias Bibliogrficas ................................................................................ 17

CONTROL DE UNA VARIABLE A PARTIR DE LA INTERACCIN DE ARDUINO UNO CON EL MDULO ARDUINO CELLULAR SHIELD - SM5100B

1. Objetivos 1.1. Objetivo General Enviar mensajes a travs del mdulo Arduino Cellular Shield - SM5100B controlado por el Arduino Uno R3. 1.2. Objetivos Especficos Comprender la interactividad del mdulo Arduino Cellular Shield SM5100B con el Arduino Uno R3. Consultar informacin de programas de software libre aplicados a la transmisin de datos con el mdulo Arduino Cellular Shield - SM5100B. Adaptar el programa que se alinee al proyecto planteado para su ptimo uso. Implementar la interaccin de Arduino Uno R3 con el mdulo Arduino Cellular Shield - SM5100B a travs del programa adaptado. Corregir posibles fallas presentadas para efectividad del sistema.

Introduccin
[1] Arduino naci en el Instituto Italiano de Diseo Interactivo Ivrea en donde los estudiantes realizaban experimentos de interacciones entre dispositivos, muchos de ellos basados en microcontroladores. Surgiendo as la necesidad educativa de menores costos, una plataforma abierta a cualquier sistema operativo e informacin al alcance de todos. Por lo que en el ao 2005, en Ivrea coincidieron todos los actores de esta historia. As lo cuenta el profesor Massimo Banzi: Cuando estaba trabajando en esto conoc a David Cuartelles y comenz a echarme una mano con el proyectoHicimos juntos el primer hardware de Arduino, luego vino David Mellis, un estudiante mo, que se uni para escribir el software, luego Tom Igde entr como consejero y Gianluca Martino que era el que produca las placas. As se form el equipo, aadiendo gente segn sus habilidades. Arduino se implement, no obstante, sobre los cimientos de Wiring. Vern, en Ivrea tambin daba clases Casey Reas, uno de los fundadores de la plataforma de programacin Processing. Banzi pens en cmo hacer un Processing para hardware. Comenz, entonces, a trabajar con un estudiante suyo, que haba hecho una tesis sobre el tema, Hernando Barragn. Despus de que Hernando hiciera Wiring pensamos en como hacer toda la plataforma ms simple, ms barata y sencilla de usar. Se comenz a reimplementar todo como un proyecto open source para que todo el mundo pudiera venir y ayudar, contribuir. El lenguaje de programacin de Arduino es una implementacin de Wiring que a su vez se basa en Processing. Actualmente el Arduino es exitoso a nivel comercial y se estima que la demanda aumente con la difusin de la buena calidad de dicha tarjeta embebida que se encuentra en el mercado actual y resultando una herramienta vivaz para la educacin a travs de su apoyo en hardware y software libre. Ya que es importante aprender cmo funcionan las cosas de manera emprica con ayuda de la observacin. Por lo tanto a manera de aplicabilidad se enviarn mensajes a travs del mdulo Arduino Cellular Shield - SM5100B controlado por el Arduino Uno R3. Esto sera por medio de varias etapas para seguir la ingeniera concurrente de los proyectos, en donde la primera se trata de comprender la interactividad del mdulo con el Arduino; la segunda es consultar la informacin de programas de software libre aplicados a la transmisin de datos con el mdulo Arduino Cellular Shield - SM5100B; la tercera es la adaptabilidad del programa que se alinee al proyecto planteado para su ptimo uso; la cuarta es la implementacin de la interaccin del Arduino con el mdulo a travs del programa adaptado y la ltima se trata de las correcciones posibles a las fallas presentadas para efectividad del sistema.

2. Estado del Arte Uno de los trabajos en la misma temtica que se encontr, se titula: NanoPhone: Envia SMS con Arduino [2]. Este lo emple una persona como proyecto de semestre y consisti en un sistema capaz de leer un sensor de temperatura y enviar dichos datos por SMS. El sistema funcionaba como un telfono mvil, aadindole una pantalla LCD a color, un reloj de tiempo real y lo llam NanoPhone. De este modo adems del envo del SMS (Mensaje), aada la posibilidad de visualizar los datos obtenidos tanto del sensor de temperatura, como del reloj, pudiendo adems ver la fecha y hora. Los materiales que emple fueron: Placa Arduino UNO Placa Cellular Shield SparkFun Pantalla LCD-144 (GFX) 4D Systems Reloj RTC DS1307 SparkFun Sensor de temperatura LM35 DZ

Cabe aclarar que para poder enviar SMS con Arduino se necesita una placa Cellular Shield de SparkFun, que es todo un telfono mvil en potencia. Esta placa gobernada por el circuito integrado SM5100B, est especficamente diseada para su encaje en una placa Arduino y es tan completa que con ella se podra realizar un telfono mvil con muchas funcionalidades como los de hoy en da. Otro trabajo que se encontr acerca este proyecto fue el How to use the Cellular Shield (SM5100B) with Arduino [3] en el cual se explica cmo hacer y recibir llamadas, cmo enviar y recibir mensajes y cmo transferir datos.

3. Descripcin
Mdulo Arduino Cellular Shield SM5100B. R(X)

T(X)

ARDUINO UNO

Salida

4. Marco terico Las frecuencias de operacin de los operadores de telefona mvil en Colombia son [4]:
COMCEL GSM: 850MHz UMTS/HSDPA: 850Mhz MOVISTAR GSM: 850MHz UMTS/HSDPA: 850Mhz TIGO GSM: 1900MHz UMTS/HSDPA: 1900MHz

Arduino [5]: Arduino es una plataforma de hardware de cdigo abierto, basada en una sencilla placa con entradas y salidas, analgicas y digitales, en un entorno de desarrollo que est basado en el lenguaje de programacin Processing. Es un dispositivo que conecta el mundo fsico con el mundo virtual, o el mundo analgico con el digital. Sus creadores son el zaragozano David Cuartielles, ingeniero electrnico y docente de la Universidad de Mlmo, Suecia y Massimo Banzi, italiano, diseador y desarrollador Web. El proyecto fue concebido en Italia en el ao 2005. Mdulo Arduino Cellular Shield - SM5100B [6]: El shield de telefona celular para Arduino incluye todos los componentes necesarios para emplear tu Arduino con un mdulo celular SM5100B. Esto te permitir agregar fcilmente funcionalidades de SMS, GSM/GPRS y TCP/IP a tus proyectos. Lo nico adicional que requieres es una tarjeta SIM para que puedas empezar a enviarle comandos seriales y de esta manera realizar llamadas, enviar mensajes de texto e incluso funcionar como servidor web. Los principales componentes de este shield son un conector de 60 pines SM5100B, un socket de tarjeta SIM y un regulador de voltaje SPX29302 configurado para regular el voltaje del Arduino a 3.8V. As mismo posee un LED rojo para indicar que est conectada a la alimentacin. El botn de reset del Arduino se encuentra disponible tambin en este shield. Mediante los dos jumpers en este shield puedes seleccionar cuales pines seriales del Arduino se conectarn al mdulo celular: software (D2, D3) o hardware (D0, D1). Tambin tiene un header de 5 pines con conexiones para micrfono y bocinas. Los headers para conectar al Arduino no estn incluidos te recomendamos adquieras headers de 6 pines y de 8 pines. El mdulo celular SM5100B viene includo con el shield y est pre-configurado a 9600bps.

Ilustracin 1. AT+SBAND1

[3]

5. Esquemticos

Ilustracin 2.Esquemtico del Arduino2

Ilustracin 3. Esquemtico del mdulo Arduino Cellular Shield - SM5100B 3

2 3

[5] [3]

6. Materiales

Ilustracin 4. Mdulo Arduino Cellular Shield - SM5100B4

Ilustracin 5. Arduino UNO Rev35

4 5

reflexiona.biz cooking-hacks.com

7. Codificacin

10

8. Procedimiento

Ilustracin 6.6 [2] La placa Cellular Shield, se encaja sobre el Arduino UNO y se comunica a travs de puerto serie. Como primer paso, se deben adaptar las tiras de 8 y 6 pines de los lados del mdulo con el Arduino. Una vez que est listo y montado, se debe insertar la tarjeta SIM, y es muy importante, que no tenga cdigo PIN, as se proceder. Es entonces cuando se configura la conexin con Arduino, como viene por defecto en el sketch de ejemplo que se puede descargar de la web de SparkFun. Es aqu en donde se realiza una conexin serie virtual, con la librera NewSoftSerial, utilizando los pines digitales 2 y 3 para la comunicacin, dejando libres los pines digitales 0 y 1 del puerto serie que se necesitan para poder ver el proceso de configuracin en el serial monitor. Una vez terminada la configuracin se podrn utilizar los pines 0 y 1 para conectar cualquier otro dispositivo. Con base a la codificacin previa, se ve que simplemente inicia el proceso de configuracin mediante la funcin Cell.begin y se dispone a mostrar cualquier dato que enve la placa por el puerto serie, para que se pueda observar en la pantalla el mensaje. Como primer paso, hay que decirle a la placa, qu tipo de red se va a a utilizar, lo cual depende de cada operador de telefona por lo que segn la tarjeta sim se averigua que tipo de red utiliza. Se cargamos el sketch de configuracin y se abre el software de comunicacin serie, procediendo a decirle a la placa el tipo de banda que se utilizar, mediante el siguiente comando: AT+SBAND=X. En donde X significa la banda, que dependiendo de la zona y la red que se utilice vara. Posterior a esto la placa empieza a arrojar nmeros. Este proceso dura aprximadamente unos 30-40 segundos, y debe terminar en el cdigo +SIND: 11, que indica que todo ha ido bien y la placa est correctamente configurada y
6

hackerthings.com

11

lista para utilizar. Si algo falla, se seguirn viendo nmeros en el puerto serie, la placa entrar en el bucle de configuracin y si hay algo mal configurado no saldr nunca de ah, por lo que lo mejor es repetir el proceso desde 0. Hecho esto, ya se puede llamar o enviar mensajes. Que en este caso ser el envo de mensajes. El mismo sketch de configuracin indica los comandos para envo de mensajes y llamada. Se prepara un sketch de Arduino para decirle que enve un mensaje a un nmero determinado configurado mediante cdigo y se ejecuta. Por otra parte el nmero de telfono se configura mediante un array y se inicia el programa con una espera de 35 segundos mientras conecta a la red el cellular shield, y se prepara para envo de SMS mediante el comando AT+CMGF=1. Procediendo as a mandarle el nmero al cual se enviar el mensaje mediante el comando: AT+CMGS=NUMERO" donde el nmero deber ir entrecomillado, por lo que se enva el comando, seguido de el ASCII 34, que corresponde a las comillas, luego el nmero, y se cierra con unas comillas nuevamente. Luego el mensaje de texto a enviar y por ltimo Ctrl-Z, cuyo ASCII es el 26.

12

Conclusiones
El presente trabajo se desarroll a travs de los objetivos planteados, por lo que se logr comprender la interactividad del mdulo Arduino Cellular Shield SM5100B con el Arduino R3; se consult informacin sobre programas de software libre aplicados a la transmisin de datos con el mdulo, pero estos presentaron inconvenientes al momento de cargarlos al Arduino y hacer conexin con el mdulo; por lo tanto la adaptacin realizada fue fallida, al intentar cumplir el objetivo principal de: Enviar mensajes de texto a travs del mdulo controlado por el Arduino Uno R3. Adems, lo anterior afect de manera directa al sistema y no permiti la culminacin del objetivo especfico final que consista en corregir las posibles fallas presentadas para efectividad del sistema. Como base a los ensayos realizados se encuentran los cdigos de prueba en anexos del trabajo.

13

Anexos
1. Primer ensayo para enviar mensajes #include <SoftwareSerial.h> SoftwareSerial cell(2,3); // We need to create a serial port on D2/D3 to talk to the GSM module char mobilenumber[] = "3015627524"; // Replace xxxxxxxx with the recipient's mobile number void setup() { //Initialize serial ports for communication. cell.begin(57600); delay(35000); // give the GSM module time to initialise, locate network etc. // this delay time varies. Use example 26.1 sketch to measure the amount // of time from board reset to SIND: 4, then add five seconds just in case } void loop() { cell.println("AT+CMGF=1"); // set SMS mode to text cell.print("AT+CMGS="); // now send message... cell.print(byte(34)); // ASCII equivalent of " cell.print(mobilenumber); cell.println(byte(34)); // ASCII equivalent of " delay(500); // give the module some thinking time cell.print("Llmame urgente, atte. Andrea la vieja"); // our message to send cell.println(byte(26)); // ASCII equivalent of Ctrl-Z delay(15000); // the SMS module needs time to return to OK status do // You don't want to send out multiple SMSs.... or do you? { delay(1); } while (1>0); } 2. Segundo ensayo para enviar mensajes #include <SoftwareSerial.h> //Include the NewSoftSerial library to send serial commands to the cellular module. #include <string.h> //Used for string manipulations char incoming_char=0; //Will hold the incoming character from the Serial Port. SoftwareSerial cell(2,3); //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin. void sendSMS(char *msg) { modem.print("AT+CMGS="); modem.print(byte(34)); modem.print(SMS_NUMBER); modem.println(byte(34)); modem.print(msg); modem.print(" "); printCurrentTemps(&modem); delay(500); // Wait for ">" prompt modem.print(0x1A, BYTE); // CTRL-Z 14

} void setup(void) { // Start the serial ports Serial.begin(9600); modem.begin(9600); Serial.println("Starting SM5100B Communication..."); void loop() { //If a character comes in from the cellular module... if(cell.available() >0) { incoming_char=cell.read(); //Get the character from the cellular serial port. Serial.print(incoming_char); //Print the incoming character to the terminal. } //If a character is coming from the terminal to the Arduino... if(Serial.available() >0) { incoming_char=Serial.read(); //Get the character coming from the terminal cell.print(incoming_char); //Send the character to the cellular module. } } 3. Tercer ensayo para llamadas #include <SoftwareSerial.h> //Include the NewSoftSerial library to send serial commands to the cellular module. SoftwareSerial cell (0,1); //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin. void setup() { //Initialize serial ports for communication. cell.begin(9600); delay(25000); // give the GSM module time to initialise, locate network etc. // this delay time varies. Use example 26.1 sketch to measure the amount // of time from board reset to SIND: 4, then add five seconds just in case } void loop() { cell.println("ATD3015627524"); // dial the phone number xxxxxxxxx // change xxxxxxx to your desired phone number (with area code) delay(20000); // wait 20 seconds. cell.println("ATH"); // end call do // remove this loop at your peril { delay(1); } while (1>0); } 4. Cuarto ensayo de test de conexin del SoftwareSerial con el Arduino #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // RX, TX 15

void setup() { // Open serial communications and wait for port to open: Serial.begin(57600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } Serial.println("Goodnight moon!"); // set the data rate for the SoftwareSerial port mySerial.begin(4800); mySerial.println("Hello, world?"); } void loop() // run over and over { if (mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); }

5. Quinto ensayo para enviar mensajes #include <SoftwareSerial.h> //Include the NewSoftSerial library to send serial commands to the cellular module. #include <string.h> //Used for string manipulations char incoming_char=0; //Will hold the incoming character from the Serial Port. SoftwareSerial cell(2,3); //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin. void setup() { //Initialize serial ports for communication. Serial.begin(9600); cell.begin(9600); //Let's get started! Serial.println("Starting SM5100B Communication..."); } void loop() { //If a character comes in from the cellular module... if(cell.available() >0) { incoming_char=cell.read(); //Get the character from the cellular serial port. Serial.print(incoming_char); //Print the incoming character to the terminal. } //If a character is coming from the terminal to the Arduino... if(Serial.available() >0) { incoming_char=Serial.read(); //Get the character coming from the terminal cell.print(incoming_char); //Send the character to the cellular module. } } 16

Referencias Bibliogrficas
[1] Soraya Paniagua, Arduino, la revolucin silenciosa del hardware libre | Soraya Paniagua . [Online]. Available: http://www.sorayapaniagua.com/2011/03/14/arduino-la-revolucionsilenciosa-del-hardware-libre/. [Accessed: 20-nov-2012]. [2] NanoPhone: Envia SMS con Arduino | Electrnica de otoo. [Online]. Available: http://electronicavm.wordpress.com/2011/12/21/nanophoneenviando-sms-con-arduino/. [Accessed: 20-nov-2012]. [3] Tutorial: How to use the Cellular Shield (SM5100B) with Arduino GarageLab (arduino, electronics, robotics, hacking). [Online]. Available: http://garagelab.com/profiles/blogs/tutorial-how-to-use-the-cellular-shieldsm5100b-with-arduino. [Accessed: 20-nov-2012]. [4] El blog de luisjoseb: Frecuencia de operacin Operadores Mviles en Colombia. [Online]. Available: http://luisjoseb.blogspot.com/2010/04/frecuencia-de-operacionoperadores.html. [Accessed: 20-nov-2012]. [5] Qu es Arduino? | Proyecto Arduino. [Online]. Available: http://proyectoarduino.wordpress.com/%C2%BFque-es-arduino/. [Accessed: 20-nov-2012]. [6] Shield celular (SM5100B) para Arduino. [Online]. Available: http://www.5hz-electronica.com/shieldcelularsm5100bparaarduino.aspx. [Accessed: 20-nov-2012].

17

Вам также может понравиться