Está en la página 1de 25

NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Electrónica de verano
Desarrollo de Productos Electrónicos

Canal RSS Twi er

21/12/2011

NanoPhone: Envia SMS con Arduino

51 comentarios

Hoy toca volver a hablar de comunicaciones inalámbricas y Arduino! Concretando un poco, del proyecto que me
tocó realizar para el 1º trimestre del curso de 2º de D.P.E.:
Un sistema capaz de leer un sensor de temperatura y enviar dichos datos por SMS.

A este sistema, decidí convertirlo en una especie de teléfono móvil, añadiéndole una pantalla LCD a color, un reloj
de tiempo real y bautizarlo como “NanoPhone”.

De este modo además del envío del SMS, añadía la posibilidad de visualizar los datos obtenidos tanto del sensor de
temperatura, como del reloj, y poder ver la fecha y hora.
Los materiales que he utilizado para realizarlo son:

Placa Arduino UNO


Placa Cellular Shield SparkFun
Pantalla µLCD-144 (GFX) 4D Systems
Reloj RTC DS1307 SparkFun
Sensor de temperatura LM35 DZ

Empezamos por el plato fuerte, el envío del SMS, que es lo más interesante
del proyecto a mi parecer, ya que nos brinda una nueva posibilidad de
comunicación inalámbrica muy potente.

Para poder enviar SMS con Arduino necesitamos de una placa Cellular
Shield de SparkFun (Imagen), que es todo un teléfono móvil en potencia.

Esta placa gobernada por el circuito integrado SM5100B, está


específicamente diseñada para su encaje en una placa Arduino y es tan
completa que con ella podríamos realizar un teléfono móvil con muchas de
las características que puede tener un teléfono móvil de hoy en día.

Vamos a ver las funciones principales que utilizo en el proyecto: ¿Cómo se utiliza?

Empecemos a montar el NanoPhone…

Sigue leyendo!!

La placa Cellular Shield como podemos ver en la imagen, se encaja sobre un Arduino Duemilanove/UNO y se
comunica a través de puerto serie.

Como primer paso, deberemos soldar las tiras de 8 y 6 pines de los lados ya que viene sin estos, por lo que no
debemos olvidar comprarlos! Y tener mucho cuidado con los movimientos, puesto que el cable de la antena viene
sujeto por una triste soldadura sin más.

Una vez que esté listo y montado sobre el Arduino, debemos insertar la tarjeta SIM, y es muy importante, que no
tenga código PIN, así procedemos a la configuración inicial.

1 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Configuraremos la conexión con Arduino, como viene por defecto en el sketch de ejemplo que podemos descargar
de la web de SparkFun o de aquí mismo: Cellular Shield Passthrough.zip (h p://www.sparkfun.com
/Code/Cellular_Shield_Passthrough.zip)

Analizamos un poco dicho sketch, y vemos que realiza una conexión serie virtual, con la librería NewSo,Serial,
utilizando los pines digitales 2 y 3 para la comunicación, dejando libres los pines digitales 0 y 1 del puerto serie que
necesitaremos para poder ver el proceso de configuración en el serial monitor. Una vez terminada la configuración
podremos utilizar los pines 0 y 1 para conectar cualquier otro dispositivo.

Vemos el código del sketch de configuración inicial de la placa:


01 #include <NewSoftSerial.h>; // Librería del puerto serie virtual
02 #include <string.h>; // Librería para manejo de cadenas
03
04 char incoming_char=0; // Almacenamos los caracteres recibidos
05 NewSoftSerial cell(2,3); // Puerto serie virtual en pin 2(RX) y 3(TX).
06
07 void setup() {
08
09 Serial.begin(9600); //Inicializamos puertos para la comunicación!
10 cell.begin(9600);
11
12 Serial.println("Starting SM5100B Communication..."); // Empezamos!
13 }
14
15 void loop() {
16
17 if(cell.available()>0) // Si el módulo GSM envía un dato...
18 {
19 incoming_char=cell.read(); // Almacenamos dicho dato y...
20 Serial.print(incoming_char); // Lo mostramos por el puerto serie.
21 }
22 if(Serial.available() >;0)// Si enviamos un dato por el terminal...
23 {
24 incoming_char=Serial.read(); // Almacenamos dicho dato y...
25 cell.print(incoming_char); // Lo enviamos al módulo GSM.
26 } }

Vemos que simplemente inicia el proceso de configuración mediante la función “Cell.begin” y se dispone a mostrar
cualquier dato que envíe la placa por el puerto serie, para que podamos verlo en el serial monitor y a capturar datos
para enviarle a la placa.

Como primer paso, debemos decirle a la placa, qué tipo de red vamos a utilizar, esto depende de cada operador de
telefonía por lo que según la tarjeta que vayamos a ponerle al Cellular shield, debemos averiguar que tipo de red
utiliza. Yo en mi caso, utilizando Orange, pregunté y utiliza las redes GSM900.

Cargamos el sketch de configuración y abrimos el serial monitor o cualquier otro soQware de comunicación serie, y
procedemos a decirle a la placa el tipo de banda que utilizaremos, mediante el siguiente comando: AT+SBAND=4.

En este caso, 4 significa GSM900, pero dependiendo de la zona y la red que utilicemos varía el número. Esto se ve en
la documentación.

Bien, hecho esto la placa empezará a soltar números a diestro y siniestro, y tenemos que conocer los valores de
dichos números para saber qué significan. Reiniciamos y veremos esto en el puerto serie:
1 Starting SM5100B Communication...
2
3 +SIND: 1 // Inicia la comunicación
4 +SIND: 10,"SM",1,"FD",1,"LD",1,"MC",1,"RC",1 // SIM detectada.
5 +SIND: 3 // Modulo GSM parcialmente listo.
6 +SIND: 4 // Modulo GSM totalmente listo.
7 +SIND: 7 // Red para llamadas de emergencia
8 +SIND: 11 // Conectado a la red

Este proceso dura apróximadamente unos 30-40 segundos, y debe terminar en el código +SIND: 11, que nos
indica que todo ha ido bien y la placa está correctamente configurada y lista para utilizar. Si algo falla, seguiremos
viendo números en el puerto serie, la placa entrará en el bucle de configuración y si hay algo mal configurado no
saldrá nunca de ahí, por lo que lo mejor es repetir el proceso desde 0.

2 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Hecho esto, ya podemos llamar o enviar SMS! Yo me voy a centrar en el envío del SMS, pero hacer una llamada es
más de lo mismo, todo se controla mediante comandos a través del puerto serie.

El mismo sketch de configuración nos indica los comandos para envío de SMS y llamada. Preparamos un sketch de
Arduino para decirle que envíe un SMS a un número determinado configurado mediante código y lo ejecutamos.
Veamos:
01 #include <NewSoftSerial.h> // Libreria del Cellular Shield
02 NewSoftSerial cell(2,3); // Puerto serie para comunicacion con el modulo GSM
03
04 char telefonoMovil[] = "XXXXXXXXX"; //Numero de telefono
05
06 void setup(){
07
08 cell.begin(9600); // Iniciamos el cellular shield
09 delay(35000); // Delay de 35 segundos para inicializacion
10 cell.println("AT+CMGF=1");} // Preparamos el modulo GSM para envio de SMS
11
12 void loop(){
13
14 cell.print("AT+CMGS="); // Numero de telefono entre comillas AT+CMGS="Numero"
15 cell.print(34,BYTE); // ASCII equivalente a las "
16 cell.print(telefonoMovil); // Numero de telefono al que enviamos el SMS
17 cell.println(34,BYTE); // ASCII equivalente a las "
18 delay(500); // Tiempo de espera.
19 cell.print("Aqui va el mensaje que enviaremos!");
20 cell.println(26,BYTE); // ASCII equivalente al Ctrl-Z
21 delay(15000); // Tiempo de "descanso" del modulo
22 while(true) delay(1); } // Bucle infinito para no enviar infinitos SMS.

Vemos que configuramos el número de teléfono mediante un array e iniciamos el programa con una espera de 35
segundos para que se inicie y conecte a la red el cellular shield, y lo preparamos para envío de SMS mediante el
comando “AT+CMGF=1″.

Procedemos a mandarle el número al que enviaremos el SMS mediante el comando: “AT+CMGS=”NUMERO”ʺ


donde el número deberá ir entrecomillado, por lo que enviamos el comando, seguido de el ASCII 34, que
corresponde a las comillas, luego el número, y cerramos con unas comillas nuevamente. Luego el mensaje de texto a
enviar y por último para terminar, Ctrl-Z, cuyo ASCII es el 26.

Podemos ver toda la documentación, esquemáticos, comandos, etc en la web de SparkFun: Cellular Shield SM5100B
(h p://www.sparkfun.com/products/9607)

Así, enviamos un SMS con Arduino, con un par de funciones, podemos enviar datos a cualquier parte del
mundo.

Sigamos con el montaje del NanoPhone.

Para hacerlo más interactivo, incluí una pantalla a color µLCD-144 de 4D


Systems, utilizandola en modo GFX mediante un interfaz serie TTL, por lo que la
conectaremos a los pines del puerto serie del Arduino, digitales 0 y 1.

Este modo es el más sencillo de utilizar y mediante la librería displayshield4d


(h p://code.google.com/p/displayshield4d/downloads/list) de BricoGeek.com
(h p://www.bricogeek.com) podemos escribir con distintos tipos de fuentes y
tamaños, dibujar formas geométricas, elegir el color del fondo, texto y formas, etc.

La forma de conectarla es la siguiente:

3 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Mediante la librería, instanciamos una pantalla LCD y simplemente hacemos llamadas a las funciones que nos
permitan escribir, dibujar o cambiar los colores.

Podemos ver una review más completa sobre la librería y la pantalla en el siguiente articulo de BricoGeek: Ejemplo
con Arduino y pantalla LCD (h p://blog.bricogeek.com/noticias/arduino/ejemplo-con-arduino-y-pantalla-ulcd-144/).

Para poder navegar mediante el menú del teléfono, utilizamos 2 botones tipo switch 12mm con circuito “Pull-
down”, de modo que a partir de la pulsación de estos botones, podamos elegir en el menú la opción que queramos,
ya sea visualizar la temperatura, la hora, o enviar un SMS pudiendo elegir el número de teléfono al que queramos
enviar el SMS.

El sensor de temperatura utilizado, el LM35DZ es un circuito integrado de precisión


capaz de obtener datos de temperatura en grados centígrados en un rango entre -55 °C y +
150 °C.

Su pinout se compone de los pines de alimentación +5Vcc, GND y una salida de datos que
provee una tensión lineal de 10 mV por grado centígrado.

Conectaremos la salida a un pin analógico del Arduino y haremos la conversión mediante


la siguiente función:
1 #define lm35 A0 // Pin analógico del sensor de temperatura
2
3 void recojeTemperatura()
4 {
5 float temperatura = (5.0 * analogRead(lm35) * 100.0 ) / 1023.0 ;
6 }

Así obtenemos la temperatura y podemos mostrarla por pantalla o enviarla por SMS ya que es el objeto final de
este proyecto.

Como retoque final, también he añadido un Reloj en tiempo real DS1307 de SparkFun, aunque este lo explicaré
más adelante en otro post, incluyendo el proceso para diseñarlo, montarlo, y configurarlo nosotros mismos.

Una vez montado todo, en mi caso, diseñé una placa de entradas y salidas donde conectar el LM35, la pantalla LCD,
el RTC DS1307 y los botones, que encajara en Arduino, de modo que quedase todo montado de la siguiente manera:

Todos los elementos conectados a la placa de entradas y salidas, ésta se encaja en la placa cellular Shield, y por
último, encajamos el cellular shield en Arduino. La alimentación de todos los elementos
dependerá únicamente de la alimentación del Arduino, por lo que alimentando éste último, alimentamos a todo
el conjunto.

Una especie de caja de acrílico y una antena de una tarjeta de red Wi-fi completa el sistema.
Esquema del diseño del NanoPhone

4 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Así como en este caso, el fin del proyecto era enviar los datos de la temperatura mediante SMS para poder tener
conocimiento de la temperatura en establecimientos como invernaderos, campos agrícolas, industrias, plantas de
producción, etc, la placa cellular shield junto con Arduino nos permiten realizar infinitos tipos de aplicaciones.

Una de las aplicaciones más interesantes es conectar un módulo GPS a Arduino y recibir la posición global mediante
SMS al realizar una llamada al cellular shield, de modo que si lo incluimos en nuestro coche podamos conocer la
posición exacta cuando queramos.

Aquí dejo los vídeos de las pruebas de funcionamiento de todos los elementos por separados y por último el vídeo
final del NanoPhone montado y funcionando!

Menú y selección – uLCD-144 + Arduino

5 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Temperatura y hora en uLCD-144 con Arduino

uLCD + Cellular Shield + Arduino: NanoPhone en protoboard

6 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

NanoPhone: Enviando SMS con Arduino!

Fuentes y agradecimientos:
- BricoGeek.com (h p://Bricogeek.com)
- TronixStuff.com (h p://tronixstuff.wordpress.com/)
- SparkFun.com
(h p://SparkFun.com)- I.E.S. Ventura Morón: Departamento de Electrónica.

Posted by iPadnano in Arduino, Proyectos Electrónicos


Tagged: Arduino, Cellular Shield, DS1307, LCD, RTC, SMS

51 pensamientos en “NanoPhone: Envia SMS con Arduino”

1. dumi dijo:
21/12/2011 a las 13:39

i
Vota este comentario

Mola mucho! Ese proyecto se merece el 10! xD

Responder
2. iPadnano dijo:
21/12/2011 a las 16:13

i
Vota este comentario

Jajaja Dumi, mañana a la 1 te digo la nota! xD Gracias!

7 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Responder
3. jack daniel dijo:
22/12/2011 a las 05:59

i
Vota este comentario

Gracias por subirlo amigo

Responder
4. iPadnano dijo:
26/12/2011 a las 10:39

i
Vota este comentario

No hay de que Jack Daniel, para eso estamos! Saludos!!

Responder
5. iPadnano dijo:
31/12/2011 a las 00:28

i
Vota este comentario

Por cierto, la nota que me pusieron por el Nanophone fue un 9,82. Casi xD!

Responder
6. JOEY dijo:
11/01/2012 a las 14:28

i
Vota este comentario

Alimentas el equipo completo con una etapa regulada echa por ti o directo a la entrada del arduino, 5 0 12v ?

Responder
7. iPadnano dijo:
12/01/2012 a las 02:01

8 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

i
Vota este comentario

Hola Joey, el Arduino al tener regulador de tensión a 5V a la entrada, te permite alimentarlo con voltajes
superiores, en este caso lo alimento a 12V con un transformador comercial.

Las tensiones de alimentación recomendadas de Arduino a través del conector de alimentación son desde 7V
hasta 12V. Aunque puedes alimentarlo hasta 20V.

Menos de 7V no es recomendable, la caída de tensión en el regulador necesaria para que a la salida de éste haya
5V es de 2,5V por lo que no tendría suficiente tensión a la entrada para regular bien.

Saludos!!

Responder
JOEY dijo:
12/01/2012 a las 23:11

i
Vota este comentario

Gracias por la aclaratoria… tenia entendido que el Cellular Shield podía llegar a consumir hasta 2 Amp. lo
cual seria mucho para el regulador build in del arduino… pero claro este consumo esta sujeto a 2 factores…

1.- si lo usaras para hacer y recibir llamadas


2.- según que tan buena sea su recepción de señal en el momento.

Pero si, tienes razón para el caso de este equipo que haz hecho el cual solo manda SMS.
su consumo es manejado tranquilamente con el arduino.

Responder
8. iPadnano dijo:
13/01/2012 a las 00:46

i
Vota este comentario

Efectivamente, tal y como comentas y según los datos del datasheet del Cellular Shield, al hacer y recibir
llamadas, el consumo puede aumentar bastante, con picos de hasta 2 Amperios.

Mientras hacía las pruebas de funcionamiento del Cellular Shield, no tenía el uLCD-144 a color, por lo que
utilizaba un Display LCD 16×2 monocromático, y durante el envío del SMS, el consumo aumenta sobre los 350
mA. Al tenerlo alimentado por el USB del PC cuya corriente máxima es de 500 mA, el display parpadeaba
durante unos segundos indicando el límite.

Aún así, el Cell. Shield está diseñado para ser manejado con Arduino, por lo que se pueden reaizar llamadas y
recibirlas, los aumentos de corriente son picos, su duración es muy corta, por lo que no debería haber problema,

9 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

siempre y cuando como bien dices, tengamos una buena recepción de señal para no forzar el aparato.

Saludos!!

Responder
JOEY dijo:
13/01/2012 a las 03:32

i
Vota este comentario

Perfecto, bueno con lo que me dices me dejas buenas expectativas para mi proyecto el cual es bastante
parecido al tuyo pero este debe hacer una llamada cuando la temperatura de una habitación ascienda de un
nivel especifico… Para este solo usare un LCD 16×2. Has usado algún programa en especial para crear el
menú, o simplemente lo has hecho con la librería de arduino que se consigue rondando la web ?

Responder
9. iPadnano dijo:
13/01/2012 a las 10:46

i
Vota este comentario

Todo con las librerías que posee Arduino, tanto el LCD con la librería LiquidCrystal como el Cell. Shield con la
librería NewSoQSerial.

En cuanto tengas ese proyecto un poco avanzado comentanos que tal y si tienes vídeos no dudes en ponerlos por
aquí para que los veamos!!

Y cualquier duda ya sabes… si te podemos ayudar, encantados.

Un saludo!!

Responder
10. Kantaber dijo:
18/01/2012 a las 21:42

i
Vota este comentario

Genial!! Me parece una idea estupenda, es justamente lo que necesito. Con tu permiso voy a coger parte de tu
idea.
Un saludo

Responder
11. Kantaber dijo:
18/01/2012 a las 22:16

10 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

i
Vota este comentario

Una duda, donde conseguir el sensor de temperatura lm35???


Gracias.

Responder
12. iPadnano dijo:
21/01/2012 a las 20:04

i
Vota este comentario

Por supuesto Kantaber, de eso se trata, compartir conocimientos El LM35 puedes conseguirlo en cualquier
tienda de electrónica o en Ebay por no más de un par de €uros.

Gracias! Saludos!

Responder
13. fernando dijo:
27/01/2012 a las 22:08

i
Vota este comentario

perfecto tus aportes son impecables, te felicito, en estos momentos estoy comprando los componetes para
montar mi proyecto. gracias por tu GENEROSO APORTE, a los que esta dichosa enfermedad de arduino
empieza a correr por las venas.

gracias

fernando moreno – CALI, colombia

Responder
14. iPadnano dijo:
28/01/2012 a las 14:27

i
Vota este comentario

Fernando, gracias a ti! Cualquier proyecto que realizes y nos quieras mostrar, puedes comentarlo y colgamos
alguna foto o vídeo. Un saludo!!

11 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Responder
15. Marcos dijo:
19/03/2012 a las 19:43

i
Vota este comentario

muy chulo este proyecto estoy por animarme e intentar hacerlo yo para mi invernadero pero añadiendo tambien
un sensor para saber la humedad veremos haber como se da……. ya comentare por aqui cosillas un saludo y
gracias por compartir

Responder
16. iPadnano dijo:
20/03/2012 a las 23:23

i
Vota este comentario

Gracias Marcos! Genial, animate! Espero que hagas un vídeo funcionando si lo realizas y nos cuentes que tal!
Cualquier duda, por aquí estamos. Saludos!!

Responder
17. Norman Morales dijo:
23/03/2012 a las 05:25

i
Vota este comentario

Hola, compre un modulo de Cellular en Sparkfun pero no puedo hacerlo funcionar. al final en lugar de 11 me
manda 8 y no puedo cambiar la banda o no se si lo este haciendo bien. Podrias ayudarme por favor? utilizo la red
TELCEL de México. Gracias!

Responder
18. iPadnano dijo:
23/03/2012 a las 10:16

i
Vota este comentario

Norman Morales, el código +SIND: 8 significa que el teléfono no está registrado en la red, después de haber
hecho todos los pasos necesarios para activar, no consigue conectarse a la red.

12 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Pueden ser varios problemas y te recomendaría que los miraras todos porque cualquiera de ellos puede dar este
error, y no salir nunca de ahí.

1.- Puede ser un problema en la tarjeta SIM, revísala que esté bien y no esté rallada, que haga buen contacto con
los pines, sino cambiala por otra para comprobar que no es problema de la tarjeta SIM.

2.- Puede ser que la tarjeta SIM no esté activa, por lo que deberías cambiarla por otra.

3.- Puede ser un problema de la antena. Que se haya soltado el cable que trae (Es muy frágil) y se haya roto tanto
el cable de conexión de la antena como la malla que lo recubre, chequea eso.

4.- Puede ser que el zócalo de la tarjeta SIM no esté bien, revisalo.

Una vez visto que nada de eso da problemas, averigua en que banda trabaja la tarjeta SIM que tienes, y en el
Datasheet del circuito integrado del Cellular Shield, viene el número que tienes que enviarle junto a este
comando: “AT+SBAND=X”, dependiendo de la frecuencia y la banda en la que trabaja la compañía de teléfono
de tu tarjeta SIM.

Saludos!

Responder
19. Juan dijo:
23/04/2012 a las 16:29

i
Vota este comentario

Hola amigo excelentisimo tutorial, muy completo .. felicidades .. me alegraste la vida ….. Estoy trabajando en una
estacion meteorologica, con este arduino, pero como hago para que el arduino me lea lo que es humedad,
velocidad del viento, direccion del viento??? Te agradeceria con el alma amigo … por favor dame una señal….
salu2

Responder
20. Jhon dijo:
23/04/2012 a las 16:49

i
Vota este comentario

Hola Amigo, me puedes ayudar con esto?: Quiero que El Arduino me envìe los datos automàticamente, ya que
va estar ubicado en un lugar remoto.. Muchas Gracias por este tutorial y ayuda….

Responder
21. iPadnano dijo:
23/04/2012 a las 23:35

13 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

i
Vota este comentario

Jhon, primero, gracias! Intento hacer lo que puedo para que salgan los tutoriales lo mejor posible y entendibles
para todo el mundo.

Segundo, en mi caso, el único sensor que utilizo es de temperatura, que solamente lee la temperatura, por lo que
para poder leer humedad, necesitas un sensor que lea humedad.

No se si me explico, debes buscar varios sensores distintos para cada una de los parámetros que quieres leer, y
añadirle todos los sensores al Arduino para poder enviarlos por SMS.

Un saludo!!

Responder
22. Roman87 dijo:
25/04/2012 a las 19:05

i
Vota este comentario

Buenas tardes:

Solo quisiera decirle… ¡¡¡Necesito ayuda!!! Veras traté y traté de que mi gsm se comunicara con un gsm de
850/1900 y de que saliera éste mensaje:

Starting SM5100B Communication…

+SIND: 1 // Inicia la comunicación

+SIND: 10,”SM”,1,”FD”,1,”LD”,1,”MC”,1,”RC”,1 // SIM detectada

+SIND: 3 // Modulo GSM parcialmente listo.

+SIND: 4 // Modulo GSM totalmente listo.

+SIND: 7 // Red para llamadas de emergencia

+SIND: 11 // Conectado a la red

Pero después de poner serial monitor, y de escribir AT+SBAND=7, en el cual corresponde mi banda , espero y
espero y lo único que me sale es Starting SM5100B Communication… Me siento frustrada. Verás mi arduino es
Arduino Uno e instalé el New SoQ Serial; pero al no aceptar el New SoQ Serial me dá error. Entonces modifiqué
el código y éste es el código:

#include //Include the NewSoQSerial library to send serial commands to the cellular module.
#include //Used for string manipulations
char incoming_char=0; //Will hold the incoming character from the Serial Port.
SoQwareSerial cell(2,3); //Create a ‘fake’ serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin.
void setup()

14 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

{
//Initialize serial ports for communication.
Serial.begin(9600);
cell.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.
}
}

No sé si hay que modificar algo más; pero no sé si ese es el problema el código. Otra de las posibilidades puede
ser mi conexiónu el power que le doy. Ayuda.

Responder
23. iPadnano dijo:
27/04/2012 a las 20:00

i
Vota este comentario

Roman87 por qué no acepta la librería NewSoQSerial? Debe aceptarla, ya que sin la librería del puerto serie
virtual, no puedes comunicar con el módulo del teléfono.

Poder puedes por el puerto serie del Arduino, pero no podrías ver en el Serial Monitor, lo que está ocurriendo y
no podrías saber si la configuración ha sido correcta o no.

Si no utilizas la librería NewSoQSerial (Que debes descargar, de aquí por ejemplo: h p://arduiniana.org
/NewSoQSerial/NewSoQSerial12.zip y colocar en tu carpeta de librerías en la carpeta de instalación de Arduino),
debes buscar otra librería capaz de crear un puerto serie virtual para poder comunicar correctamente con el
módulo.

Aunque vamos, en las versiones 0022 y 0023 de Arduino, la librería NewSoQSerial funciona perfectamente, no
obstante, no lo hace en la versión de Arduino 1.0, por lo tanto, revisa esto último.

Saludos!!

Responder
Roman87 dijo:
29/04/2012 a las 01:22

15 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

i
Vota este comentario

Es Arduino 1.0. Y es por eso que y puse SoQwareSerial.

Responder
24. Roman87 dijo:
29/04/2012 a las 02:16

i
Vota este comentario

Oh y casi se me olvidá. Conseguí otra forma de escribir el programa, sin el serial, y me funcionó en el serial port.
Pero no sé cómo yo hago para que el código que escribí en el .arduino 1.0 y me funcionó de lo mas bien el el serial
monitor. Ahora bien, yo quisiera saber el cómo yo hago para pasar el programa del sms desde el arduino 1.0 a mi
celular. Así que por favor si sabes comunicate conmigo aquí. Chao.

Responder
25. Mauricio dijo:
03/05/2012 a las 16:15

i
Vota este comentario

Hola Amigo, tengo la misma pregunta que Jhon, quiero q mi Arduino me envie esos datos automáticamente, no
manual. Si me puedes ayudar amigo, te lo agradeceria … Salu2!

Responder
26. Mauricio dijo:
03/05/2012 a las 16:48

i
Vota este comentario

Hola Amigo, tengo una duda, Tengo Arduino 1.0 y ahi aparece la libreria SoQwareSerial, y en una pagina dice
que esta es como la “actualizacion” o la version mejorada de NewSoQwareSerial… Los comparé y la verdad no
hay nada nuevo… Que hago? cual uso, la q tu pusiste para descargar –> h p://arduiniana.org/NewSoQSerial
/NewSoQSerial12.zip o la que aparece por defecto en la carpeta de Arduino????????????????

Por favor ayudame …

PDT: Esta es la pagina traducida donde dice que no es necesario cambiar o instalar el NewSoQwareSerial en

16 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Arduino 1.0 —>

h p://translate.google.com.co/translate?hl=es&sl=en&u=h p://arduiniana.org/libraries/newsoQserial
/&ei=U5qiT9WBLuOa6QG0wOHFCA&sa=X&oi=translate&ct=result&resnum=1&ved=0CCQQ7gEwAA&
prev=/search%3Fq%3DArduiniana%2BNewSoQwareSerial%26hl%3Des%26safe%3Dactive%26prmd%3Dimvnsb

Responder
iPadnano dijo:
05/05/2012 a las 10:48

i
Vota este comentario

Hola Mauricio, igual que a Jhon, el problema de realizar envíos de SMS cada X tiempo automáticamente, es
que necesitas una base de tiempo en la que basarte para automatizar el método de envío, es decir, necesitas
un reloj.

Te recomiendo el DS1307, es muy sencillo de utilizar y con solo 2 pines puedes obtener hora y fecha. A partir
de ahí es jugar con Arduino creando un bucle que cada 5 minutos, envíe un SMS con la función de enviar
SMS que se ve en este post.

Sobre lo de la librería NewSoQSerial, te recomiendo que vuelvas a la versión de Arduino 0022 o 0023 y utilices
esa versión para el Cellular Shield. La versión de 1.0 de Arduino, es más actual pero las librerías no son todas
compatibles aún ya que en esta versión desaparecen las variables de tipo BYTE, que suelen llevar muchas
librerías.

Saludos!

Responder
27. Roman87 dijo:
05/05/2012 a las 21:46

i
Vota este comentario

Hola:

Gracias por su ayuda. Ahoruta bien, tenías razón sobre los arduinos. Ahora bien, instalé el arduino 0023 y me
conpiló de lo mas bien el programa; pero ahora mi problema es que ahora no me sale ni tan siquiera la palabra
“Starting SM5100B Communication…”. ¿Qué me recomiendas hacer?

Responder
iPadnano dijo:
10/05/2012 a las 18:35

i
Vota este comentario

17 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Roman87, si compila quiere decir que no existen errores gramaticales en el código, por lo que si no muestra la
frase “Starting SM50…” es porque falta algo en el código.

Tienes añadido en el Void Setup() el código de iniciar el puerto serie: Serial.begin(9600)?

Es necesario para ver los valores leidos del Arduino en el Serial Monitor.

Si no es eso, solo se me ocurre que puede ser un problema del módulo Cellular Shield. si puedes prueba con
otro Cellular Shield y comprobar que ocurre lo mismo.

Saludos!

Responder
28. Santiago dijo:
09/05/2012 a las 18:58

i
Vota este comentario

Amigo, estoy dudoso, no entiendo, el codigo que aparece de primero, no es el completo, por que no esta
declarado el lm35, ayudame amigo como seria el completo?? con sensor y todo??…. PDTA: Soy nuevo en este
tema… Gracias

Responder
iPadnano dijo:
10/05/2012 a las 18:37

i
Vota este comentario

Santiago, no el código no es el mismo que utilizo yo en el vídeo del teléfono, ya que mi idea no era explicar
cómo hacer el mismo teléfono que he hecho yo, sino, explicar como funcionan cada una de las partes por
separado y que la imaginación de cada uno sea la que decida como realizar el proyecto.

Si eres nuevo en este tema, no te recomiendo empezar por este proyecto, ni de cerca. Puedes probar con el
cubo de leds o con algo más sencillo como una pantalla LCD 16×2.

Saludos!!

Responder
29. Allitrop dijo:
11/05/2012 a las 13:44

i
Vota este comentario

Hola amigo, no importa si abro el serial monitor, y me aparecen estos:


+SIND:1

18 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

+SIND: 10 …
+SIND: 3
+SIND: 8
+SIND:4

y he leido en otro tutorial de Cell Shield, que si termina en 4, significa que esta registrado a la web y listo para
comunicarse…

pero tu dices que debe terminar en +SIND=11.

Ayudame por favor amigo, no se como debe en realidad terminar… Muchas gracias.

Este el el post que te digo:

h p://tronixstuff.wordpress.com/2011/01/19/tutorial-arduino-and-gsm-cellular-part-one/

Responder
iPadnano dijo:
13/05/2012 a las 20:22

i
Vota este comentario

Allitrop, cuando configuré el teléfono para comenzar a crearlo, utilicé ese mismo post de esa web de
Tronixstuff para hacerme una idea del funcionamiento del Cellular Shield.

Los códigos del puerto serie sin embargo, los leí en el datasheet del Cellular Shield.

En el caso de que termine en +SIND:4 significa que el módulo está listo, pero salvo que te aparezca en el
serial monitor el +SIND:11, no habrás conectado a la red, por lo que no tendrás línea de teléfono.

Puedes probarlo, cuando te salga el +SIND:4, intenta enviar un SMS.

En cualquier caso, revisa todos los pasos. Saludos!!

Responder
30. emonjaemonja dijo:
01/06/2012 a las 05:20

i
Vota este comentario

He seguido los pasos al pie de la letra, estoy en red telcel con un sim card funcionando que he probado en un
teléfono nokia una y otra vez, siempre me regresa lo mismo no importando que tipo de AT+SBAND del 0 al 10 le
de:
+SIND: 1

+SIND: 10,”SM”,1,”FD”,1,”LD”,1,”MC”,1,”RC”,1,”ME”,1

+SIND: 3

+SIND: 8

19 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

+SIND: 4

Alguien que pueda ayudarme?

Responder
iPadnano dijo:
01/06/2012 a las 15:01

i
Vota este comentario

emonjaemonja, habiendo realizado todos los pasos correctamente sólo se me ocurren dos opciones o que los
pasos aquí descritos no te sirvan por cuestiones de redes de telefonía de distintos países o que el cellular
shield esté estropeado.

Sigue este enlace para ver otro tutorial de cómo hacer funcionar el cellular shield:

- h p://tronixstuff.wordpress.com/2011/01/19/tutorial-arduino-and-gsm-cellular-part-one/

Si a partir de aquí sigue sin funcionar, te recomiendo probar con otro cellular shield, es posible que por X
razón el tuyo esté dañado y no funcione bien.

Si la antena (Que es muy frágil) no está bien conectada, suele dar fallos de conexión, comprueba eso y que
todas las conexiones estén bien realizadas.

Ya nos cuentas! Saludos!

Responder
31. Caeshe dijo:
02/06/2012 a las 21:08

i
Vota este comentario

Que tal,

también estoy utilizando el módulo SM5100B, pero tengo problemas para recibir o enviar llamadas y mensajes.

Estoy trabajando en México, con una SIM de Telcel. He configurado el módulo con AT+SBAND=7, que es la
frecuencia que maneja Telcel.

Cuando enciendo el módulo me aparecen los siguiente mensajes:

+SIND: 1
+SIND: 10,”SM”,1,”FD”,1,”LD”,1,”MC”,1,”RC”,1,”ME”,1
+SIND: 7
+SIND: 3
+SIND: 4
+SIND: 11

Efectivamente, logro conectarme a la red de telcel, pero si le marco a mi número desde otro celular o teléfono
local, me dice que “No está disponible o se encuentra fuera del área de serivicio”, a pesar de que tengo señal.

20 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

Al inicio creí que era por el estado +SIND: 7 que indica que la red está disponible para llamadas de emergencia,
pero veo que tú has podido mandar mensajes a pesar de recibir el mismo mensaje.

Otra cosa, intenté enviar un mensaje, pero me mando un error:


+CMS ERROR: 313

que según el pdf de comandos AT es el código numérico para


SIM PUK required
pero no entiendo como o cuando ingresar el PUK.

Para los que no puedan conectar el módulo en la banda de Telcel, al inicio yo tenía un problema similar. El
módulo viene con la anda 4 (AT+SBAND=4) por default. Esa banda es de Europa, por lo que en México no
funcionará. Para poder cambiarla con el comando AT+SBAND=7 tuve que desconectar la antena, destornillarla,
de otro modo no me permitía ejecutar el comando. Espero les sea de ayuda.

De antemano, gracias por la ayuda


Saludos

Responder
iPadnano dijo:
03/06/2012 a las 12:01

i
Vota este comentario

Caeshe gracias por la información! Seguro a muchos les sirve de ayuda ya que el módulo da bastantes
problemas por lo que veo.

Yo los tuve pero no fue complicado solucionarlos. Saludos!!

Responder
MInos789 dijo:
04/06/2012 a las 04:57

i
Vota este comentario

hola, me puedes decir cómo le hiciste para poder mandar mensajes, y recibir llamadas sin que te diga que
el telefono no estpa disponible. A mi me sale esto:
SIND: 1
+SIND: 10,”SM”,1,”FD”,1,”LD”,1,”MC”,1,”RC”,1,”ME”,1
+SIND: 7
+SIND: 3
+SIND: 4
+SIND: 11

pero de alli ya no puedo hacer nada. Me puedes ayudar

32. iPadnano dijo:


04/06/2012 a las 19:56

21 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

i
Vota este comentario

Minos789, no entiendo tu problema, de acuerdo a lo que te sale en el serial monitor, el cellular shield está
funcionando correctamente y conectado a la red, listo para enviar y recibir llamadas.

A partir de ahí, solamente tienes que ejecutar el código de envíar un SMS como explico arriba en el post, y lo
debe enviar.

En que momento te dice que el teléfono no está disponible?

Responder
Minos789 dijo:
11/06/2012 a las 05:21

i
Vota este comentario

hola!!! lo que pasa es que sólo estoy conectando el módulo a la hiperterminal en la computadora a través de
usb , sin utilizar arduino, y cuando intento mandar mensajes o llamar, no sale nada. Y cuando intento llamrle
a través de otro celular es cuando me dice que no está disponible.
Me podrías ayudar??? es necesario utilizar arduino???

Responder
iPadnano dijo:
11/06/2012 a las 20:13

i
Vota este comentario

Minos789 yo no lo he utilizado sin Arduino, no se si está diseñado para utilizarse solamente con una placa
Arduino, pero debe tener la alimentación puesta también además del puerto serie.

¿Con qué soQware estás enviándole los comandos?

minos789 dijo:
12/06/2012 a las 04:53

i
Vota este comentario

estoy usando una hiperterminal llamada Terminal

22 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

33. iPadnano dijo:


14/06/2012 a las 16:40

i
Vota este comentario

Minos789, seguramente el cellular shield esté diseñado para ser utilizado mediante un Arduino. No creo que sea
posible hacerlo funcionar sin él, ya que utilizará características del microcontrolador de Arduino como puede ser
la EEPROM o algunas otras funciones.

Saludos!!

Responder
Caeshe dijo:
14/06/2012 a las 18:38

i
Vota este comentario

Que tal!

Una duda, veo que cuando enciendes el módulo te aparecen los siguientes mensajes:
SIND: 7
SIND: 11

a pesar de recibir el SIND 7 puedes enviar y recibir mensajes? porque a mi me aparece y no logro hacerlo, y
en el tutorial de tronixstuf no aparece el SIND7.

Otra pregunta, si me aparece el SIND11 significa que estoy conectado a la red, no? Entonces sería posible que
la compañía celular esté bloqueando el módulo? Con que compañía lo estás manejando tú? Yo estoy
utilizando una SIM de Telcel en México

Saludo

Responder
34. iPadnano dijo:
15/06/2012 a las 20:30

i
Vota este comentario

Caeshe, no creo que la compañía celular esté bloqueando el módulo.

Lo que si es probable es que no esté correctamente configurado.

¿Has enviado el comando para seleccionar en que banda utiliza tu tarjeta SIM?

Esta parte: “Cargamos el sketch de configuración y abrimos el serial monitor o cualquier otro soQware de

23 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

comunicación serie, y procedemos a decirle a la placa el tipo de banda que utilizaremos, mediante el siguiente
comando: AT+SBAND=4.”

Es extraño que no te salga el SIND 7 si te salen el resto de mensajes.

Yo pude enviar y recibir SMS perfectamente. Averigua si es posible utilizarlo en México.

Saludos!!

Responder
Caeshe dijo:
19/06/2012 a las 06:04

i
Vota este comentario

Que tal!

sip, lo configuro con el AT+SBAND=7, que es la frecuencia de México. El +SIND: 7 si me aparece, pero a
pesar de ello no he podido establecer comunicación con el módulo desde otro teléfono (llamandolo). Sigo
probando y hablando con Telcel para ver si puedo conectarlo.

Gracias por la repsuesta =)

Responder
iPadnano dijo:
19/06/2012 a las 09:10

i
Vota este comentario

Caeshe, no entiendo el problema entonces, llama a la compañía Telcel para asegurarte que la banda que
utilizan ellos es la que se corresponde con el código AT+SBAND=7.

En el datasheet del circuito integrado del Cellular Shield, puedes ver, en la página 127 la lista de
frecuencias de las señales.
Dependiendo de la red que vayas a utilizar, debes averiguar que en que banda de frecuencias funciona y
configurar el módulo para ello.

Aquí te dejo el datasheet, revisa la página 127 y averigua si la red de Telcel utiliza la banda
GSM850&PCS1900 que corresponde al número 7.
h p://www.sparkfun.com/datasheets/CellularShield/SM5100B%20AT%20Command%20Set.pdf

Saludos!!

35. JUANCHI dijo:


15/07/2012 a las 20:32

24 de 25 17/07/2012 1:46
NanoPhone: Envia SMS con Arduino | Electrónica de verano http://electronicavm.wordpress.com/2011/12/21/nanophone-enviando-...

i
Vota este comentario

Hola soy muy nuevo en esto, no sabes si ese shield de celular, funciona adecuadamente en todos los países
insertandole un chip adecuado a cada uno?
Ej: vivo en argentina, con que le ponga un chip de un operador local, debería de funcionar?
muchas gracis.

Responder

Blog de WordPress.com. | Tema: Splendio por DesignDisease.

25 de 25 17/07/2012 1:46

También podría gustarte