experimentando con el arduino

Upload: tazann24

Post on 04-Apr-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    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

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    2/18

    1

    TABLA DE CONTENIDO

    1. Objetivos .................................................................................................. 2

    1.1. Objetivo General ................................................................................ 2

    1.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

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    3/18

    2

    CONTROL DE UNA VARIABLE A PARTIR DE LA INTERACCIN

    DE ARDUINO UNO CON EL MDULO ARDUINO CELLULAR

    SHIELD - SM5100B

    1. Objetivos

    1.1. Objetivo GeneralEnviar mensajes a travs del mdulo Arduino Cellular Shield - SM5100Bcontrolado 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 latransmisin de datos con el mdulo Arduino Cellular Shield - SM5100B. Adaptar el programa que se alinee al proyecto planteado para su ptimouso. Implementar la interaccin de Arduino Uno R3 con el mdulo ArduinoCellular Shield - SM5100B a travs del programa adaptado. Corregir posibles fallas presentadas para efectividad del sistema.

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    4/18

    3

    Introduccin[1] Arduino naci en el Instituto Italiano de Diseo Interactivo Ivrea en donde losestudiantes realizaban experimentos de interacciones entre dispositivos,muchos de ellos basados en microcontroladores. Surgiendo as la necesidadeducativa de menores costos, una plataforma abierta a cualquier sistemaoperativo e informacin al alcance de todos.

    Por lo que en el ao 2005, en Ivrea coincidieron todos los actores de estahistoria. As lo cuenta el profesor Massimo Banzi: Cuando estaba trabajandoen esto conoc a David Cuartelles y comenz a echarme una mano con elproyectoHicimos juntos el primer hardware de Arduino, luego vino DavidMellis, un estudiante mo, que se uni para escribir el software, luego Tom Igdeentr 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, enIvrea tambin daba clases Casey Reas, uno de los fundadores de la plataformade programacin Processing. Banzi pens en cmo hacer un Processing parahardware. Comenz, entonces, a trabajar con un estudiante suyo, que habahecho una tesis sobre el tema, Hernando Barragn. Despus de queHernando hiciera Wiring pensamos en como hacer toda la plataforma mssimple, ms barata y sencilla de usar. Se comenz a reimplementar todo comoun 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 nivelcomercial y se estima que la demanda aumente con la difusin de la buenacalidad de dicha tarjeta embebida que se encuentra en el mercado actual yresultando una herramienta vivaz para la educacin a travs de su apoyo enhardware y software libre. Ya que es importante aprender cmo funcionan lascosas de manera emprica con ayuda de la observacin.

    Por lo tanto a manera de aplicabilidad se enviarn mensajes a travs delmdulo Arduino Cellular Shield - SM5100B controlado por el Arduino Uno R3.Esto sera por medio de varias etapas para seguir la ingeniera concurrente delos proyectos, en donde la primera se trata de comprender la interactividad del

    mdulo con el Arduino; la segunda es consultar la informacin de programasde software libre aplicados a la transmisin de datos con el mdulo ArduinoCellular Shield - SM5100B; la tercera es la adaptabilidad del programa que sealinee al proyecto planteado para su ptimo uso; la cuarta es la implementacinde la interaccin del Arduino con el mdulo a travs del programa adaptado y laltima se trata de las correcciones posibles a las fallas presentadas paraefectividad del sistema.

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    5/18

    4

    2. Estado del ArteUno de los trabajos en la misma temtica que se encontr, se titula:NanoPhone: Envia SMS con Arduino [2]. Este lo emple una persona comoproyecto 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 acolor, un reloj de tiempo real y lo llam NanoPhone. De este modo ademsdel envo del SMS (Mensaje), aada la posibilidad de visualizar los datosobtenidos tanto del sensor de temperatura, como del reloj, pudiendo ademsver 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 placaCellular Shield de SparkFun, que es todo un telfono mvil en potencia. Estaplaca gobernada por el circuito integrado SM5100B, est especficamentediseada para su encaje en una placa Arduino y es tan completa que con ellase podra realizar un telfono mvil con muchas funcionalidades como los dehoy en da.

    Otro trabajo que se encontr acerca este proyecto fue el How to use theCellular Shield (SM5100B) with Arduino [3] en el cual se explica cmo hacer yrecibir llamadas, cmo enviar y recibir mensajes y cmo transferir datos.

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    6/18

    5

    3. Descripcin

    T(X)Mdulo Arduino Cellular Shield -

    SM5100B. R(X) ARDUINOUNO

    Salida

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    7/18

    6

    4. Marco terico

    Las frecuencias de operacin de los operadores de telefona mvil enColombia son [4]:

    COMCELGSM: 850MHzUMTS/HSDPA: 850Mhz

    MOVISTARGSM: 850MHzUMTS/HSDPA: 850Mhz

    TIGOGSM: 1900MHzUMTS/HSDPA: 1900MHz

    Arduino [5]: Arduino es una plataforma de hardware de cdigo abierto,basada en una sencilla placa con entradas y salidas, analgicas ydigitales, en un entorno de desarrollo que est basado en el lenguaje deprogramacin Processing. Es un dispositivo que conecta el mundo fsicocon el mundo virtual, o el mundo analgico con el digital. Sus creadoresson el zaragozano David Cuartielles, ingeniero electrnico y docente dela Universidad de Mlmo, Suecia y Massimo Banzi, italiano, diseador ydesarrollador Web. El proyecto fue concebido en Italia en el ao 2005.

    Mdulo Arduino Cellular Shield - SM5100B [6]: El shield de telefonacelular para Arduino incluye todos los componentes necesarios paraemplear tu Arduino con un mdulo celular SM5100B. Esto te permitiragregar fcilmente funcionalidades de SMS, GSM/GPRS y TCP/IP a tusproyectos. Lo nico adicional que requieres es una tarjeta SIM para quepuedas empezar a enviarle comandos seriales y de esta manera realizarllamadas, enviar mensajes de texto e incluso funcionar como servidorweb.

    Los principales componentes de este shield son un conector de 60 pinesSM5100B, un socket de tarjeta SIM y un regulador de voltaje SPX29302configurado para regular el voltaje del Arduino a 3.8V. As mismo posee

    un LED rojo para indicar que est conectada a la alimentacin. El botnde reset del Arduino se encuentra disponible tambin en este shield.

    Mediante los dos jumpers en este shield puedes seleccionar cualespines seriales del Arduino se conectarn al mdulo celular: software (D2,D3) o hardware (D0, D1). Tambin tiene un header de 5 pines conconexiones para micrfono y bocinas. Los headers para conectar alArduino no estn incluidos te recomendamos adquieras headers de 6pines y de 8 pines. El mdulo celular SM5100B viene includo con elshield y est pre-configurado a 9600bps.

    http://arduino.cc/eshttp://webzone.k3.mah.se/portal/user.aspx?user=k3dacuhttp://www.mediamatic.net/person/12567/enhttp://www.mediamatic.net/person/12567/enhttp://webzone.k3.mah.se/portal/user.aspx?user=k3dacuhttp://arduino.cc/es
  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    8/18

    7

    Ilustracin 1. AT+SBAND1

    1[3]

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    9/18

    8

    5. Esquemticos

    Ilustracin 2.Esquemtico del Arduino2

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

    2[5]

    3[3]

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    10/18

    9

    6. Materiales

    Ilustracin 4. Mdulo Arduino Cellular Shield - SM5100B4

    Ilustracin 5. Arduino UNO Rev35

    4reflexiona.biz

    5cooking-hacks.com

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    11/18

    10

    7. Codificacin

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    12/18

    11

    8. Procedimiento

    Ilustracin 6.6

    [2] La placa Cellular Shield, se encaja sobre el Arduino UNO y se comunica atravs de puerto serie.

    Como primer paso, se deben adaptar las tiras de 8 y 6 pines de los lados delmdulo con el Arduino. Una vez que est listo y montado, se debe insertar latarjeta SIM, y es muy importante, que no tenga cdigo PIN, as se proceder.

    Es entonces cuando se configura la conexin con Arduino, como viene pordefecto en el sketch de ejemplo que se puede descargar de la web deSparkFun. Es aqu en donde se realiza una conexin serie virtual, con lalibrera 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 parapoder ver el proceso de configuracin en el serial monitor. Una vez terminadala configuracin se podrn utilizar los pines 0 y 1 para conectar cualquier otrodispositivo.

    Con base a la codificacin previa, se ve que simplemente inicia el proceso deconfiguracin mediante la funcin Cell.begin y se dispone a mostrar cualquierdato que enve la placa por el puerto serie, para que se pueda observar en lapantalla 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 simse averigua que tipo de red utiliza.

    Se cargamos el sketch de configuracin y se abre el software de comunicacinserie, 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 duraaprximadamente 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

    6hackerthings.com

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    13/18

    12

    lista para utilizar. Si algo falla, se seguirn viendo nmeros en el puerto serie, laplaca entrar en el bucle de configuracin y si hay algo mal configurado nosaldr 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 comandospara envo de mensajes y llamada. Se prepara un sketch de Arduino paradecirle que enve un mensaje a un nmero determinado configurado mediantecdigo y se ejecuta.

    Por otra parte el nmero de telfono se configura mediante un array y se iniciael programa con una espera de 35 segundos mientras conecta a la red elcellular shield, y se prepara para envo de SMS mediante el comandoAT+CMGF=1.

    Procediendo as a mandarle el nmero al cual se enviar el mensaje mediante

    el comando: AT+CMGS=NUMERO" donde el nmero deber irentrecomillado, por lo que se enva el comando, seguido de el ASCII 34, quecorresponde a las comillas, luego el nmero, y se cierra con unas comillasnuevamente. Luego el mensaje de texto a enviar y por ltimo Ctrl-Z, cuyo ASCIIes el 26.

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    14/18

    13

    ConclusionesEl presente trabajo se desarroll a travs de los objetivos planteados, por loque se logr comprender la interactividad del mdulo Arduino Cellular Shield -SM5100B con el Arduino R3; se consult informacin sobre programas desoftware libre aplicados a la transmisin de datos con el mdulo, pero estospresentaron inconvenientes al momento de cargarlos al Arduino y hacerconexin con el mdulo; por lo tanto la adaptacin realizada fue fallida, alintentar cumplir el objetivo principal de: Enviar mensajes de texto a travs delmdulo controlado por el Arduino Uno R3. Adems, lo anterior afect demanera directa al sistema y no permiti la culminacin del objetivo especficofinal que consista en corregir las posibles fallas presentadas para efectividaddel sistema. Como base a los ensayos realizados se encuentran los cdigos deprueba en anexos del trabajo.

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    15/18

    14

    Anexos1. Primer ensayo para enviar mensajes

    #include SoftwareSerial cell(2,3); // We need to create a serial port on D2/D3 to talk tothe GSM modulechar mobilenumber[] = "3015627524"; // Replace xxxxxxxx with the recipient'smobile numbervoid 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 textcell.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 timecell.print("Llmame urgente, atte. Andrea la vieja"); // our message to sendcell.println(byte(26)); // ASCII equivalent of Ctrl-Zdelay(15000); // the SMS module needs time to return to OK statusdo // You don't want to send out multiple SMSs.... or do you?

    {delay(1);}while (1>0);}

    2. Segundo ensayo para enviar mensajes#include //Include the NewSoftSerial library to send serialcommands to the cellular module.#include //Used for string manipulationschar 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 isthe 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 ">" promptmodem.print(0x1A, BYTE); // CTRL-Z

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    16/18

    15

    }void setup(void){

    // Start the serial portsSerial.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 terminalcell.print(incoming_char); //Send the character to the cellular module.}}

    3. Tercer ensayo para llamadas#include //Include the NewSoftSerial library to send serial commands to the cellularmodule.SoftwareSerial cell (0,1); //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 isthe 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 calldo // remove this loop at your peril{ delay(1); }while (1>0);}

    4. Cuarto ensayo de test de conexin del SoftwareSerial con elArduino

    #include SoftwareSerial mySerial(10, 11); // RX, TX

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    17/18

    16

    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 portmySerial.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 //Include the NewSoftSerial library to send serialcommands to the cellular module.#include //Used for string manipulationschar 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 isthe 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 terminalcell.print(incoming_char); //Send the character to the cellular module.

    }}

  • 7/30/2019 EXPERIMENTANDO CON EL ARDUINO

    18/18

    17

    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-revolucion-

    silenciosa-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/nanophone-enviando-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-shield-sm5100b-with-arduino. [Accessed: 20-nov-2012].

    [4] El blog de luisjoseb: Frecuencia de operacin Operadores Mviles enColombia. [Online]. Available:http://luisjoseb.blogspot.com/2010/04/frecuencia-de-operacion-

    operadores.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].