SIM900 GSM GPRS Shield con Arduino UNO
El GPRS SIMCOM SIM900 GSM Quad band GSM shield es una tarjeta ultra compacta de comunicación inalámbrica. Además es compatible con todos los modelos de Arduino con el formato UNO, es decir, que la puedes controlar con otros microcontroladores también. Por último la tarjeta está basada en el módulo SIM900 GSM 4. El GPRS está configurado y controlada por vía UART usando comandos AT. Por lo tanto sólo conecta la tarjeta al microcontrolador, Arduino, etc, y comienza a comunicarte a través de comandos AT. Ideal para sistemas remotos, comunicación recursiva, puntos de control, mandar mensajes de texto a celulares, etc.
ESPECIFICACIONES
- Totalmente compatible con Arduino
- Conexión con el puerto serial
- Quad-Band 850/ 900/ 1800/ 1900 Mhz
- GPRS multi-slot clase 10/8
- GPRS mobile station clase B
- Compatible GSM fase 2/2+
- Clase 4 (2 W (AT) 850 / 900 MHz)
- Clase 1 (1 W (AT) 1800 / 1900MHz)
- TCP/UP embebido
- Soporta RTC
- Consumo de 1.5 mA (susp)
MATERIAL
- Shield SIM900 GSM SimCOM
- ARDUINO UNO
- CABLES JUMPER MACHO-MACHO
En la tienda virtual de HeTPro puedes encontrar todos los manteriales: hetpro-store.com
Los controladores y software Arduino lo puedes encontrar en: www.arduino.cc
SIM900 CONEXIÓN
El modelo de tarjeta GPRS GSM que se utilizo no incluye los pines para montarlo directamente sobre el ARDUINO pero no causara problemas en la conexión ya que es controlado por UART solo necesitamos TX y RX.

Para la transmisión de datos entre el SIM GPRS y el ARDUINO vamos a utilizar los pines 7 y 8 así que asegúrate que los jumper de la tarjeta GSM estén posicionados en D7 y D8 para activar estos pines.

CÓDIGO para el SIM900 con Arduino
Este código hará una llamada, colgara y en seguida mandara un mensaje de texto a un teléfono móvil y estará.
Ya que se encuentre compilado y cargado encendemos el modulo SIM con el botón de Powerkey y esperamos a que el Netlight parpadee una ves cada dos segundos.

Abrimos el puerto serial y al rededor de 30 segundos después deberá hacer las funciones indicadas.

[youtube https://www.youtube.com/watch?v=mBxRytKBfds]
que tal buen dia , intento hacer funcionar GPRS SIMCOM SIM900 Quad band GSM shield pero por alguna razon no funciona , estoy haciendo la misma conexion puesta arriba una y otra vez pero no prende ni siquiera un led , tendras algun manual donde espesifique que hace cada pin. saludo
Miguel, la hoja de datos del SIM900 te lo especifica, pero OJO solo tienes en el shiel el TX y RX conectados. Mi recomendación, prueba con comandos AT solamente y ve si el módulo te responde.
Buen dia , ya prende y ya ectablece la conexion pero sigue sin permite enviar mensajes, llamadas ni video llamadas, ya intente cambiando el SIM , cambiando de modulo , probando varios porgramas y revisando los comandos AT y de todas maneras no me permite, ¿alguien sabra que podra ser ?
Miguel ya probaste con varias compañias?
La SIM 900 requiere de un GPS como el U-Blox o ya lo trae integrado
Lo requiere, si quieres GPS puedes usar un externo como el U-blox o usar otro modelo de SIM por ejempl tenemos este que si trae GPS integrado: https://hetpro-store.com/shield-fona-808-gsm-gps-arduino/
Resulta que la alimentación osea VCC debe ir conectado un pin abajo de donde esta en la foto, por ahi hubo un error. Les dejo el PINOUT SIM900 https://ermagherd.files.wordpress.com/2013/04/seeedstudiogprsshieldandarduinomega25602.png
Gracias por tu apoyo Arnold
No funciona por que tiene mal conectado
Es GND y 3.3 V
Por eso nunca va a encender
revisa el voltaje debe ser un poco mayor a 4,2 voltios
hola, veo que ese sim900 board tiene unos orificios de lado de los headers hembra donde van los pines q se conectan mediantecable, quisiera para q tiene esos orificios extra, gracias.
Alejandro son los mismos pines del header hembra, es como para soldar algún cable en caso de no querer usar cables con pines.
Hola
gusto en saludarte, quisiera molestarte con una duda, en una página muestran un ejemplo parecido con una tarjeta muy parecida a ésta, creo que se llama Linksprite
http://linksprite.com/wiki/index.php5?title=SIM900_GPRS/GSM_Shield
La verdad no he encontrado algo más completo para esta placa utilizada en tu ejemplo pero al ser similares me basé en ambos ejemplos.
Mi pregunta es ¿como enciendo la placa sin el powerkey? … en la otra placa salía un código que levantaba la entrada D9 por unos segunos y eso equivalía a apretar el botón pero acá no me funciona.
Saludos
Tienes la placa blanca? como la del link, si es asi, tiene que funcionar con el D9, según la wiki dice: D9 – Used for software control the power up or down of the SIM900
Solucionado … tuve que puentear unos pines para poder ocupar el D9 para realizar un encendido por programa
Hola. Tengo un problema similar al tuyo y quisiera pedirte el favor de que me indiques cuáles son los pines que debo puentear para poder encender el módulo con el D9. Muchas gracias!
Ninguno, si lo estas usando con el Arduino UNO o Mega, solo activa el D9. Casi todas las versiones de este SIM900 tienen un transistor que automáticamente detecta la entrada del pin D9.
HOLA. Gracias por la respuesta, de todas formas descubrí que, en mi versión de Arduino GPRS SHIELD hay un par de soldaduras encima del conector donde está el D9 y se aclara que hay que soldar JP (las mencionadas soldaduras) para habilitar el encendido por software. Efectivamente apoyé el soldador para unir estos dos puntos y funcionó correctamente. Espero que le sirva a alguien. Gracias por el tutorial que me abrió la mente.
Hola mi estimado… Que buen tutorial, pero tengo una duda… En mi trabajo me han pedido que utilice uno de estos & un arduino UNO para poder tener conectividad en internet, pero no obtengo la manera.
Tenemos un sistema de monitoreo ambiental (Humedad, Temperatura & PH) & queremos que la información se envíe a un serivdor con web service a HTTP, pero según había leído que no era posible, así que pido tu ayuda, a ver si como detalle podráis orientarme hacía donde caminar. SALUDOS.
Mauricio, este módulo no lo hemos usado para internet, pero si es viable, te dejo un link: https://www.pubnub.com/blog/2015-02-17-connect-arduino-gsm-gprs-shield-to-the-internet/
¿Aún podrías reenviar el link? aparece que el archivo ya no existe en el sitio de Pubhub, por favor
Que precio tiene la tarjeta SIM900? Y el envío cuanto tarda y cuanto cuesta?
1190.00 MXN. https://hetpro-store.com/gsm-gprs-shield-simcom-sim900/
podrias explicar un poco mas acerca de los JUMPER TX(D7) Y RX(D8, ya que en este link http://www.elecrow.com/wiki/index.php?title=GPRS/GSM_Shield_v1.0 ,en la seccion «Serial Port(UART) Communication» aparece un jumper en rojo que no entiendo, yo quiero conectarme a la SIM900 con una tarjeta que no es arduino pero que usar tambien un puerto serial, que me siguieres amigo…
Oks si tus jumpers están del lado de HW Serial solo usa los pines 0 y 1 para comunicarte con tu módulo externo, si están en SW serial usarías 7 y 8.
hola hector , tengo un problema con mi GSM , que conecta la manera que lo hizo , pero no hay luces LED.
¿cuál es el problema?
1) Checa tu fuente de alimentación. 2) Checa que estes activando el botón de encendido por más de 1 segundo.
Si la tarjeta de teléfono tiene pin de seguridad, hace falta algún comando para desbloquearla antes?
Muchas gracias.
Juan, nunca hemos probado con SIMs bloqueados, entonces no estoy seguro.
Buenas, creo que he seguido bien los pasos y no me funciona, se apagan las dos luces rojas (la que parpadea y la que está al lado de ésta) pasados unos segundos. Tengo dudas con las conexiones, ya que el esquema «DIAGRAMA DE CONEXIÓN DEL SIM900 Y ARDUINO UNO» y la foto «JUMPER TX(D7) Y RX(D8)» no coinciden. Las conexiones en el Arduino son en los pines 7 y 8 y en las dos GRN?
Iñaki, si se apagan las luces es probable que el sistema se este reseteando, esto suele pasar cuando tu fuente de alimentación no es suficiente. 1) Exactamente que módulo estas usando. 2) Que alimentación estas usanado?
Que tal Hector, tengo el shield de elecrow a probar con tu código me aparece esto, que estoy haciendo mal?
OK
SMS sent successfully
ATD xxxxxxxxxx;
ERROR
ATH
OK
AT+CMGF=1
OK
AT + CMGS = «xxxxxxxxxx»
ERROR
Saludos desde HetPro
AT+CMGF=1
NORMAL POWER DOWN
Suponiendo que tus «XXX» sean donde esta el numero que quieres usar, te recomiendo revisar tu fuente de alimentación, revisa que tengas 2A en el eliminador que estas usando y revisa que el LED de estatus este parpadeando (cuando parpadea es que hay red).
A qué número de teléfono debería llegar el mensajes de texto
hola que tal.
Espero me puedan ayudar, tengo el mismo sim900 con el arduino UNO.
Utilozo el mismo codigo y el mismo cableado con 2 fuentes diferentes (una para el sim900 y otro para el arduino) pero no me marca y no me manda mensaje al celular que le indico, no se si tenga error en el numero del celular puesto que el codigo me indica que uno es nuero local y otro es celular pero no se con cuando digitos debe ser el numero y si deberia llevar el codigo de pais y en total cuantos digitos deberian ser.
Esto es lo unico que me arroja.
OK
SMS sent successfully
El numero celular va tal cual, no usamos el código de país (creo que funciona con o sin código). Mi recomendación seria la siguiente. 1) Tu SIM900 esta prendido? esto lo revisas con el LED de status que se mantenga parpadeando SIEMPRE y no se apague. 2) Tienes saldo en tu sim?
Mi modulo esta alimentado y encienden los leds y no se apagan. el problema es que solo me manda estos errores.
OK
SMS sent successfully
ATD 8992141467;
ERROR
ATH
OK
AT+CMGF=1
OK
AT+CMGS=
lo estoy cableando exactamente como lo indica en las imagenes y con el mismo programa, al menos que le tenga que modificar algo mas?
El sim si tiene saldo y es 4g, que crees que pueda ser o alguien tiene un programa que sea capaz de encender el sim900 con una instruccion del arduino, osea que al encender el arduino encienda mi sim900 al mismo tiempo?
Sergio, para encender el SIM900 con el arduino tienes que activar el pin digital 9 por 1 segundo o un poco más, viene en la hoja de datos del SIM900 que es la misma acción que cuando presionas el botón. A que te refieres con que no se apagan los LEDs? TIENEN que parpadear para agarrar señal.
Hector Torres, lo que pasa que soy nuevo en esto de los arduinos y me es muy desesperante no poder realizar esta etapa puesto que debo realizar la llamada o un mensaje desde el sim900 al ser activados por una señal o al controlar la alimentacion de la sim y el arduino, tu no tendrás un programa que realice una llamada sin tener que conectarme via serial y que sea capaz de encender el sim900 con el pin 9 como lo mencionas?
Sergio, siempre vas a ocupar el serial ya que necesitas de los comandos seriales AT para activar el SIM900, no necesita estar conectado a tu PC pero si el serial del micro al SIM900. Para activar por el pin9 solo checa el ejemplo de blink es lo mismo pero en ves de 13 es pin 9. Saludos.
Hola Héctor, gracias por el tutorial. Quería preguntarte por qué en mi SIM900 nunca parpadea «Status» y NetLight se queda fijo en rojo. ¿sabrás algo al respecto? Gracias de antemano.
Marco, si no parpadea el status es que no tienes señal, corrobora la señal con un celular y revisa que si tengas la antena bien conectada. Por ultimo revisa que si estes encendiendo el módulo, esto lo haces presionando unos 2 segundos el push que tiene la tarjeta y que tengas una eliminador de 12V 2A.
La placa se ha de conectar a 12v por la entrada jack?
Yo lo conecto como él tutorías pero se me apagan las luces que quedan fijas y parpadean.
Muy buen tutorial, estoy utilizando el sim900/A mini y no sé relamente como conectarlo… carge tu programa sin probelas solo que me aparece esto
(OK
SMS sent successfully
ATD 5533489439;
ERROR)
Me podrias ayudar ?
Cesar ademas de conectar TX y RX revisa que si estés encendiendo el módulo, esto lo haces presionando unos 2 segundos el push que tiene la tarjeta y que tengas una eliminador de 12V 2A.
sir please tell me that wiring that u have shown is completely correct? because i have seen some websites where tx and rx of u art is used
Hello, answering your two questions, we have the cables connected correctly and is declared in the code.
hola soy de argentina como tengo que poner el numero de celular gracias
una pregunta, cual es el pin para prender el sim por soft, d9 no es. El pin d6 esta marcado como reset pero tampoco funciona. Tienen el esquematico de esta placa?
HOLA, TE PUEDO DECIR DOS COSAS: EL PIN 9 NORMALMENTE SE USA PARA EL ENCENDIDO, PERO EN ALGUNAS VERSIONES HAY QUE PUENTEAR CON UN SOLDADOR ENCIMA DEL MENCIONADO PIN 9 (APROXIMADAMENTE 1 CM). TAMBIÉN ALGUNAS VERSIONES DE SHIELD (ICOMSAT, POR EJEMPLO) NO FUNCIONAN CORRÉCTAMENTE POR ENCIMA DE 9600 BAUDIOS.
Hola!
Tengo una version de la placa en que creo q debo pinchar el pin9, pero no estoy seguro de como hacerlo, podrías dar más detalles?
me adelanto a algunos comentarios: el pin9 no me funciona directamente, y en mi placa no aparece el jp, (tenia otra que si lo tenía).
Disculpa que version de tarjeta tienes? y a lo que se refieren es que es solo soldar para realizar un puente entre pines, saludos
HOLA!. EN MI VERSIÓN DE PLACA TAMPOCO ESTÁ MARCADO, PERO A 6 mm HACIA EL INTERIOR DE LA PLACA, TOMANDO COMO REFERENCIA EL PIN 8, HAY UNA PEQUEÑA ISLA DE CIRCUITO IMPRESO QUE SOLDÉ PARA HABILITAR EL ENCENDIDO POR SOFTWARE. HE LEÍDO QUE, EN OTRAS VERSIONES, EL PIN DE ENCENDIDO NO ES EL 9.SUERTE.
Hola Raúl gracias por tu colaboracion
Hola, te hago una consulta para usar la placa para un sensor que este transmitiendo a una pagina, por ejemplo temperatura cada 5 minutos, que se usa para el envio de datos.
Yo estoy probando con http post, es con eso o hay algun metodo mas seguro. Por que cada tanto pierdo paquetes de informacion. Se podra utilizar el sim900 para por ejemplo re grabar el arduino en forma remota?
Saludos y gracias
Hola, si se puede realizar la transmisión de datos, desconozco los si es el método mas seguro, pero esta tarjeta no ayuda a re-programar de manera remota lo que puedes utilizar es un programa para manipular una computadora de manera remota y así re-programar tu Arduino
Hola, una consulta, como puedo hacer que la shield sim900 prenda automaticamente sin tener que presionar el powerkey? estoy diseñando un sistema de alarma pero si se corta la electricidad del arduino, tendré que ir al sistema y apretar el powerkey para que el NETLIGHT quede activo. No se si me explico.
Quedo atento a tus comentarios.
Saludos!
Hola gracias por cunsultar el tutorial, en esta misma seccion de preguntas se ha solucionado el problema y fue soldar con el pin d9 te recomiendo leer esa pregunta para ver si es lo indicado con lo que requieres, saludos!
tengo la tarjeta, el chip, el codigo y todo, pero solo parpadea el LED de netlight y status no, tengo un chip telcel 4g, ya cheque la antena, la alimentacion la tengo directa del arduino con un eliminador a 12v 2.5A, que es lo que sugeririan o que es lo que se debe hacer en este caso?
Hola puedes probar con solo alimentacion externa para el SIM900
Por que lo llaman eliminador de 12V 2A?
Es un nombre comun para este disposiivo que conectas al arduino para alimentar de manera externa en este caso con 12v y 2A, saludos
Hola, gracias por la pagina. Estoy probando con un tarjeta sim900, pero aca en Peru, solo me funciona con operador movistar, con claro no me responde. Si alguien le ha pasado eso??
Hola no sabremos decirte solo lo hemos utilizado con iusacell, telcel y unefon y aqui en México
Hola, ¿el sim900 funciona con SIMs 4G? ó ¿cuál me recomiendas para un 4G?
verifica la banda en la que operan estas compañias de tefonia movil y las bandas del modulo
Gracias por tu comentario
HELLOO HECTOR ! PLEASE TELL THAT WIRING ARDUINO WITH GSM SHIELD AS U SHOWN IS COREECT OR WE HAVE TO CONNECT IT WITH UART TX AND RX….?
Hola, buen dia, ARDUINO me puede servir como Dialer? es decir, so lo conecto a un panel de Alarma, me puede llamar a mi celular?
Hola necesitas mas componentes pero si es posible realizar dicha actividad
Hola si es la que tienes que manipular, podrias decirnos que resultados obtuviste
por supuesto que si, todo esta en los comando AT empledos
buenas,
quisiera saber exactamente que cosa habria que soldar contra el PIN9 tan mencionado.. pues, no me funciona correctamente el modulo. Solamente estos resultados tengo en el monitor serial:
OK
SMS sent successfully
gracias.
SOLUCIONADO: al utilizar una fuente de alimentacion externa para el modulo SIM900, hay que contar ambas «conexiones GND» entre el arduino y el modulo SIM900.
Gracias por comentar tu solucion
hola no entiendo bien lo que dices tengo el mismo problema que tenias tu lo que dices es que alimentemos una fuente para el arduino y otra para el gsm osea en total 2 fuentes
?
asi es, dos fuentes distintas o bien, una sola con buen amperaje para ambas (3A – 5A). no te olvides de «unir» los GND de ambas placas en algun punto.
hola como puedo hacer para realizar la prueba pero que sea de enviar del telefono a la tarjeta un mensaje de texto
Hola buen dia el codigo que utilizamos damos la explicacion de como enviarlo y de resultado lo muestra en la terminal saludos
Srs, Buenas noches, dias ya
Pues resolvi el problema, la situacion es el SIM, usaba uno nuevo de la version 6 que es los que venden en 30 pesos, para telcel, pero no funciono por nada, y busque uno entre mis cosas, descartando opciones, me tope con uno ya viejo muchos años podria decir, estaba cortado para usarse con un iphone 4 y funciono de inmediato se gancho a la red y a volar, si es importante lo de las conxiones al SHIELD pero es algo facil, mañana les cuento mas por queya hice lo que buscaba, por hoy.
Saludos
Gracias por tus comentarios 🙂
una pregunta, habra algun inconveniente al querer usar un arduino generico en lugar de uno original ?
Hola no debe existir alguna falla funcionan igual saludos
Hola, muy buen tutorial comprobe tu codigo con mi arduino y gsm y me funciona bien.
Mi consulta a ver si me podrias ayudar es que estoy haciendo un proyecto que pueda enviar un sms y activar o desactivar un modulo rele.
Espero que me puedas ayudar gracias
Hola agradecemos tus comentarios, lo que puedes realizar es un comando especial que desenergice la parte de tu proyecto, algo asi como una secuencia de codigo que permita hacerlo
ola saul, yo teno la sim900 mini v3.8 las conexiones no son las mismas, sabes como tendría que conectar esta a arduino para que me funcionase tu código?¿ tu código vale para este shield? y otra pregunta, soy de españa y utiliza una tarjeta de orange sin pin, sabes si valdrÁ’ muchas gracias de antemano, un saludo.
Hola saludos cordiales no tengo la informacion sobre lo que preguntas pero espero algo de aqui pueda servirte https://hetpro-store.com/TUTORIALES/modulo-de-comunicacion-inalambrica-gsm-shield/ saludos
Saludos, muy articulo y comentarios. Hace poco me entregaron una de estas tarjetas para un proyecto y hasta ahora no he conseguido documentacion oficial de la tarjeta sino experiencias de otros usuarios. Tengo dos consultas:
1- Cuales son los niveles max y min para alimentar la tarjeta externamente.
2- En una de las esquinas de la placa hay una serie de huecos con la nomenclatura del puerto serial UART. En este puerto los niveles de voltaje son TTL o son RS-232 compatibles para conectarlo directamente a un puerto serial de un PC y aplicar los comandos AT via HyperTerminal o PuTTY?
Que onda, oye a mi me aparece un error en el texto que se va a enviar, y el codigo es igual ?’
¿Que error te sale?
Buen día, se puede con un leonardo??
Hola solo es compatible con los modelos con Arduino UNO
muchas gracias
Hola que tal si es posible con un Leonardo, saludos.
hola buenaS NOCHES
YO tengo un sim 800c y quisiera usar un contacto del arduino para enviar el mensaje y uno el modulo com como lo puedo hacer con el programa
A lo que entendemos, puedes usar la parte del codigo dos veces donde pide enviar el mensaje y solo colocas el numero telefonico y verificas que este indicado de manera correcta
me sale esto en el monitor serial äÌÞ ß�!Í÷ýíŸþ por que sera ?
Hola verifica los baudios estos vienen en la parte del codigo
Hola una pregunta para un chip Telcel se maneja con 192000 baudio ya que salen unos simbolo. y solo se marcan los 10 digitos para celular la cual incluye la lada del estado. Muchas gracias y saludos.
Los baudios se pueden establecer segun te configuracion, puedes verificarlo en nuestro ejemplo
SALUDOS, SABES SI SE PUEDEN MANDAR CODIGOS AT SIN NECESIDAD DE ABRIR EL MONITOR SERIAL DE ARDUINO, SINO QUE DE MANERA AUTOMATICA POR PROGRAMACIÓN SE EJECUTEN??
Se puede realizar agregando codigo y lo podra realizar
Me podrían ayudar por favor.
Preciso de enviar un mensaje con dicho módulo, si está conectado bien, el switch en orden para que pueda recibir alimentación desde el arduino, si conecto el chip al modulo y llamo desde mi teléfono funciona, o sea, no se corta al instante, por lo tanto el módulo funciona, sin embargo no puedo hacer llamadas o enviar mensajes a mi teléfono, no sé si está mal conectado o mal programado. Adjunto mi código
#include
SoftwareSerial SIM900(7, 8); // 10 y 11 para el Arduino Mega. Configura el puerto serie para el SIM900.
int ledR = 10;
int ledV = 11;
boolean flag = true;
void setup()
{
digitalWrite(9, HIGH); // Descomentar para activar la alimentación de la tarjeta por Software
delay(1000);
//digitalWrite(9, LOW);
pinMode(ledR, OUTPUT);
pinMode(ledV, OUTPUT);
delay (5000); //Nos damos un tiempo para encender el GPRS y la alimentación de la tarjeta
SIM900.begin(19200); //Configura velocidad del puerto serie para el SIM900
Serial.begin(19200); //Configura velocidad del puerto serie del Arduino
Serial.println(«OK»);
delay (1000);
SIM900.println(«AT + CPIN = \»1111\»»); //Comando AT para introducir el PIN de la tarjeta
delay(25000); //Tiempo para que encuentre una RED
}
void llamar()
{
Serial.println(«Realizando llamada…»);
if(flag){
SIM900.println(«ATD+52———-;»); //Comando AT para realizar una llamada
delay(30000); // Espera 30 segundos mientras realiza la llamada
SIM900.println(«ATH»); // Cuelga la llamada
delay(1000);
Serial.println(«Llamada finalizada»);
digitalWrite(ledV, HIGH);
delay(1000);
digitalWrite(ledV, LOW);
}
}
void mensaje_sms()
{
Serial.println(«Enviando SMS…»);
SIM900.print(«AT+CMGF=1\r»); //Configura el modo texto para enviar o recibir mensajes
delay(1000);
SIM900.println(«AT + CMGS = \»+52———-\»»); //Numero al que vamos a enviar el mensaje
delay(1000);
SIM900.println(«SMS enviado desde un Arduino. Saludos de Prometec.»); // Texto del SMS
delay(100);
SIM900.println((char)26); //Comando de finalización ^Z
delay(100);
SIM900.println();
delay(5000); // Esperamos un tiempo para que envíe el SMS
Serial.println(«SMS enviado»);
}
void loop()
{
llamar(); //Realiza la llamada
mensaje_sms();
while (1);
}
No marca errores de salida ni nada, sin embargo a mi teléfono no llegan los mensajes ni las llamadas.
#include
SoftwareSerial SIM900(7, 8); // 10 y 11 para el Arduino Mega. Configura el puerto serie para el SIM900.
int ledR = 10;
int ledV = 11;
boolean flag = true;
void setup()
{
digitalWrite(9, HIGH); // Descomentar para activar la alimentación de la tarjeta por Software
delay(1000);
//digitalWrite(9, LOW);
pinMode(ledR, OUTPUT);
pinMode(ledV, OUTPUT);
delay (5000); //Nos damos un tiempo para encender el GPRS y la alimentación de la tarjeta
SIM900.begin(19200); //Configura velocidad del puerto serie para el SIM900
Serial.begin(19200); //Configura velocidad del puerto serie del Arduino
Serial.println(«OK»);
delay (1000);
SIM900.println(«AT + CPIN = \»1111\»»); //Comando AT para introducir el PIN de la tarjeta
delay(25000); //Tiempo para que encuentre una RED
}
void llamar()
{
Serial.println(«Realizando llamada…»);
if(flag){
SIM900.println(«ATD+52———-;»); //Comando AT para realizar una llamada
delay(30000); // Espera 30 segundos mientras realiza la llamada
SIM900.println(«ATH»); // Cuelga la llamada
delay(1000);
Serial.println(«Llamada finalizada»);
digitalWrite(ledV, HIGH);
delay(1000);
digitalWrite(ledV, LOW);
}
}
void mensaje_sms()
{
Serial.println(«Enviando SMS…»);
SIM900.print(«AT+CMGF=1\r»); //Configura el modo texto para enviar o recibir mensajes
delay(1000);
SIM900.println(«AT + CMGS = \»+52———-\»»); //Numero al que vamos a enviar el mensaje
delay(1000);
SIM900.println(«SMS enviado desde un Arduino. Saludos de Prometec.»); // Texto del SMS
delay(100);
SIM900.println((char)26); //Comando de finalización ^Z
delay(100);
SIM900.println();
delay(5000); // Esperamos un tiempo para que envíe el SMS
Serial.println(«SMS enviado»);
}
void loop()
{
llamar(); //Realiza la llamada
mensaje_sms();
while (1);
}
Yo tengo el mismo problema, creo que es por que no se a establecido una conexion del modulo sim900, en mi caso aprieto el boton de power key por 2 segundos y solo queda parpadeando el led de NetLight a 800ms, lo eh dejado por 5 min y no establece conexion, ya eh probado con varios chip de telcel, unefon y movistar.
Saludos, tengo un problema que no eh logrado resolver, la sim900 que tengo no logra establecer la conexion, el led parpadea a 800 ms segun el link dice que es por que no ah establecido una conexion, me podrian ayudar con eso? ya eh intentado de todo 🙁
http://www.geeetech.com/wiki/images/1/1e/Indicator_LEDs.jpg
es porque tu chip no funciona ponle uno con plan de datos, si le pones un chip de esos express no funciona
Hola buen dia, yo estoy trabajando con uno de estos pero me da el siguiente error «+CME ERROR 3» tienen idea de por que da ese error? gracias de antemano.
«CME ERROR: 3 Operation not allowed»
A mi me daba ese error cuando no estaba conectado aún a la red (celular)
com prendo el gps SIM900 GSM GPRS SHIELD, sin utilizar el power key en automatico con comandos at y la libreria del gps
Debes soldar un cable en ves del pulsador
Buen dia. Saben si definitivamente no es compatible con los chips de telcel v6.2 4g ?
O tienen alguna solución?
Ya me funcionó para chips 4G de México de las telefónicas Movistar, Unefón y Telcel.
Pero la Shield está alimentada con su propio eliminador, estoy usando uno de Steren de 4.5V a 1200mA.
Aun así le deje el cable jumper GND que va de la tarjeta a la Shield.
correcto. si funcionó con el sim 4g telcel v6.2
muchas gracias
JPablo, el jumper a GND si es necesario ya que es la referencia a tierra para la transferencia de datos entre el GSM y el Arduino. El eliminador también es muy recomendado ya que muchas veces que intentan probarlo solo de la PC la corriente no es suficiente. Gracias por tu comentario.
amigos, disculpe me pueden ayudar con la programacion de sim900 y arduino… porfa necesito para un tabajo ..
gracias.
hola amigo existe una comando at para saber si mi targeta sim 900 esta conectada a la red y si no es asi activar el pin d9 para restaurar la coneccion gracias!
Prueba con estos 2:
AT+CREG? -> debe devolver 0,1 ó también 0,5
AT+COPS? -> devuelve el nombre de la red a la que se conectó
y quizás este otro:
AT+CSQ -> devuelve la potencia de la señal, de 0 a 31, ó 99 que no la detecta
como se agregan estos comandos o en que posicion de los codigos?
Buenas tardes. Es posible saber si la sim900 ha sido homologada para funcionar en las redes de Estados Unidos? Me encuentro en Colombia y aqui se usa el listado de terminales GSM homologados allá. De esto depende un gran proyecto. Gracias por tu respuesta.
Gildardo si es un gran proyecto te recomiendo revisar a detalle el mismo. El módulo SIM900 debería de funcionar en Colombia, no me consta por que estoy en México. Solo revisa que se manejen las bandas GSM a 850,900,1800,1900 MHz. También revisa que no sea el SIM900A ese tiene unos bloqueos regionales.
Hola, muy bueno el post, una consulta, esto se podria por ejemplo utilizar para controlar unos relay conectados el arduino?, de esta manera puedo prender o apagar remotamente algun dispositivo o algo que se pueda controlar por relay, tienes algun ejemplo de esto?, MIL gracias por tu aporte!!!
Javier, si se puede, puedes montar ahi mismo esta tarjeta https://hetpro-store.com/tarjeta-interfaz-de-potencia-con-relevadores-2ch/. No tenemos un ejemplo asi tal cual pero puedes poner una condición de que si recibes un msj o llamada un pin digital se active y de esa manera el relevador se activa.
si amigo hay una condicion que si recibe una llamada se active un bombillo de 110v por medio de relay.
Genial el proyecto, una sola pregunta. Puedo trabajar con otro pin que sean aparte del 7 y 8 del Arduino Uno?? Y si se puede que pines podría utilizar eso es todo Gracias!!!
Si tu módulo GSM tiene Jumpers para cambio de pines, solo te da la oportunidad de usar el 0 y 1 en lugar de 7 y 8.
Gracias por tus comentarios, saludos
Hola buen dia, puedes usar esos cuando es comunicacion serial o 0 y 1 para rx y tx, eso depende la comunicacion que deseas, saludos
Necesito un simple codigo para obtener que el GSM+Arduino UNO, envien un mensaje a un numero de celular en cuanto un sensor PIR se active.
que sea para este shield.
no importa la posicion de los PIN, eso es secondario.
donde lo consigo?
gracias
Lorenzo, el sensor PIR da un pulso digital, solo pon la parte del mesnaje dentro de una condición tipo IF y pon if(pin_pir==1) que se active la secuencia de mensaje, mientras que sea 0 no se mandara el msj. Te recomiendo poner un delay despues de mandar el msj para que no se repita mientras el pulso del pir este ene alto.
El modulo GSM funciona en México? Tengo entendido que algunos de los modulos sim900 dependen de la zona geográfica en la que se encuetnran.
Es correcto, estos que manejamos si funcionan en Mexico, ya los hemos probado. Salduos.
me sale este error, me dice: ‘amp’ was not declared in this scope
Me podrian ayudar? gracias
C:\Users\marti\Desktop\Programacion_SIM900\Programacion_SIM900.ino:16:28: warning: extra tokens at end of #include directive
#include ;
^
C:\Users\marti\Desktop\Programacion_SIM900\Programacion_SIM900.ino: In function ‘void loop()’:
Programacion_SIM900:92: error: ‘amp’ was not declared in this scope
if(Serial.available()>0)
^
Programacion_SIM900:92: error: expected ‘)’ before ‘;’ token
if(Serial.available()>0)
^
Programacion_SIM900:92: error: ‘amp’ was not declared in this scope
if(Serial.available()>0)
^
Programacion_SIM900:92: error: ‘gt’ was not declared in this scope
if(Serial.available()>0)
^
Programacion_SIM900:92: error: expected ‘;’ before ‘)’ token
if(Serial.available()>0)
^
exit status 1
‘amp’ was not declared in this scope
Hola que tal Martin Davila, en ocasiones al colocar el código en el tutorial, cambian algunos signos, puedes sustituir la linea de codigo que te marca error por esta otra
if(Serial.available() > 0)
Hola intento hacer la practica que ustedes han proporcionado pero me marca el siguiente error:
C:\Users\xxxx\Desktop\sketch_may16b\sketch_may16b.ino:2:28: warning: extra tokens at end of #include directive
#include ;
^
C:\Users\rafus\Desktop\sketch_may16b\sketch_may16b.ino: In function ‘void loop()’:
sketch_may16b:78: error: ‘amp’ was not declared in this scope
if(Serial.available()>0)
^
sketch_may16b:78: error: expected ‘)’ before ‘;’ token
if(Serial.available()>0)
^
sketch_may16b:78: error: ‘amp’ was not declared in this scope
if(Serial.available()>0)
^
sketch_may16b:78: error: ‘gt’ was not declared in this scope
if(Serial.available()>0)
^
sketch_may16b:78: error: expected ‘;’ before ‘)’ token
if(Serial.available()>0)
^
exit status 1
‘amp’ was not declared in this scope
Verti, el código tenia un error, el plugin que usamos para meter códigos en texto esta fallando, ya lo actualizamos. Ahora si lo puedes copiar y pegar de nuevo. Saludos.
verificamos el código, y no nos marca ningún error, sin embargo, cuando cargamos al arduino no nos realiza ninguna llamada ni mensaje, pero en el monitor serie solo nos manda las siguientes siglas
OK
SMS sent successfully
y en la tarjeta cuando presiono el boton pwrkey prenden tanto las luces status y nelight, pero no se mantiene encendido el de status. No se que mas hacer porque no hay error en codigo y la tarjeta es nueva, igual no se que tanto tenga que ver el chip que utilizo y la telefonía.
verificamos el código, y no nos marca ningún error, sin embargo, cuando cargamos al arduino no nos realiza ninguna llamada ni mensaje, pero en el monitor serie solo nos manda las siguientes siglas
OK
SMS sent successfully
y en la tarjeta cuando presiono el boton pwrkey prenden tanto las luces status y nelight, pero no se mantiene encendido el de status. No se que mas hacer porque no hay error en codigo y la tarjeta es nueva, igual no se que tanto tenga que ver el chip que utilizo y la telefonía.
Jovany, el codigo tenia un pequeño error igual puedes copiarlo y probarlo de nuevo. Te recomiendo revisar el LED de status, este LED TIENE que parpadear para indicar que ya agarro RED. Precisamente tiene que parpadear en la velocidad lenta, ya que inicia un poco más rapido. Te recomiendo lo siguiente: 1) Trata de ponerte en un lugar donde estes seguro que llegue buena señal y 2) Procura prender el módulo antes o subir un poco el delay al inicio del codigo.
Me sale un warning (C:\Users\gateway\AppData\Local\Temp\Rar$DIa0.750\gsm\gsm.ino:1:28: warning: extra tokens at end of #include directive [enabled by default]
#include 😉
pero si me deja compilar y al abrir el monitor serial me manda
OK
SMS sent successfully
la luz de estatus no parpadea pero si esta encendida, y la luz nelight si parpadea, si hay datos en el chip y es telcel.
Al ingresar el numero solo lo ingrese con 10 digitos y otra cosa es vital utilizar la antena?
Por favor ayudenme…
Intenta subirle el voltaje a la sim 900 a mi me funciono perfectamente a 10v
hola VERTI, gracias por responder, hare eso que comentas pero tambien quisiera saber si es necesaria la antena y cuantos digitos debe de ir en el numero de celular…
Pablo, la antena es vital. Revisa ese detalle.
Bom dia,
primeiro peço desculpas por não estar perguntando em espanhol. É que não me comunico muito bem em espanhol.
Sou brasileira e aqui nosso código telefônico é um pouco diferente. Alguém sabe como devo inserir meu numero?
Estive olhando e tenho um sim900 placa azul. Aparentemente igual ao da imagem.
Primeiramente qual a diferença entre o azul e o Branco?
Segundamente, tentei compilar este código e não deu certo. Alguém poderia me ajudar?
E sobre as conexões o fio vermelho fica ligado no 3.3 ou 5v?
Buenas tardes, quiero hacer un sistema que envíe un SMS a varios número de celular. Se puede hacer o sólo aun número se puenden enviar los mensajes?
Gracias
Si se puede, no estoy seguro si en una misma instrucción pero si no, metes un programa con un ciclo y cambias el numero en cada uno. Saludos.
estimado muy buen aporte mira tengo un problema yo tengo el modulo gsm/grps sim 900 y arduino uno conectado a un sensor peer y un led. pero tengo el siguiente problema:
el modulo no realiza la llamada. tengo montado el modulo gsm/ grps sim 900 a mi arduino y tambien conectado a un led y un sensor esos si me funcionan pero no realiza la llamada cual crees que sea el error.
te agradezco tu gran ayuda anticipadamente:
este es el codigo que tengo:
#include
SoftwareSerial SIM900(7, 8);
int pinSensor = 12;
int pinLed = 13;
void setup()
{
SIM900.begin(19200);
SIM900power();
delay(10000);
pinMode(pinSensor,INPUT);
pinMode(pinLed,OUTPUT);
Serial.begin(9600);
}
void SIM900power()
{
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(5000);
}
void callSomeone()
{
SIM900.println(«ATD+ +51992264386;»);
delay(100);
SIM900.println();
delay(30000);
SIM900.println(«ATH»);
}
void loop()
{
int lectura = digitalRead(pinSensor);
if(lectura==HIGH)
{
digitalWrite(pinLed,HIGH);
Serial.println(«INTRUSO»);
callSomeone();
}
if(lectura==LOW);
{
digitalWrite(pinLed,LOW);
Serial.println(«DESPEJADO»);
}
// SIM900power();
}
buenas noches,
serian tan amables de informarme si ese proyecto se puede que llame a 2 números diferentes a la ves o con algún tiempo de uno al otro.
gracias david
Milton, a la vez no, uno después de otro, si. Saludos.
don hector primero cordial saludo, don hector que le modifico en el programa para que me llame a un celular y despues a otro celular si quieres me podrias enviarme la modificacion a mi correo personal gracias.
daviddanielortega@hotmail.com
atte; dany
Dany, una solución a medida como la que requieres tendría costo, si te interesa mándame un correo a hector.torres@hetpro.com.mx y te cotizo con gusto.
Hola.
a ver si me pueden ayudar.
Si no declaro pinMode (9, OUTPUT) en el stup mi arduino no prende el pin 9 para poner en marcha el modulo sim900.
En ninguno de los ejemplos que he visto, nadie declara ese pin como salida y directamente lo utilizan para prender con uno digitalWrite (9, Higt).
No se, algo debo de tener mal porque yo, si no hago esto no me va.
Igual deberia estar declarado por defecto, y me falta algo.
Gracias.
Hola para poder utilizar el pin9 como salida TIENES que configurarlo como salida, ya que si no el comportamiento puede ser errático. Saludos. Como dato, revisa el LED de STATUS tiene que parpadear un poco más lento. Yo lo que hago es que leo con los comandos AT parámetros de la red. Te paso un extracto de un código de debug que tengo. (Tienes que declarar los String).
Serial1.println(«AT+CSQ»);
delay(10);
Serial.print(«Fuerza de la senal:»);
SignalStatus = Serial1.readString();
Serial.println(SignalStatus.substring(11,20));
Serial1.println(«AT+CGREG?»);
delay(10);
Serial.print(«Estado de la Red:»);
EstadoDeLaRed = Serial1.readString();
Serial.println(EstadoDeLaRed.substring(14,25));
Serial1.println(«AT+CPIN?»);
delay(10);
Serial.print(«Estado del SIM:»);
EstadoDelSim = Serial1.readString();
Serial.println(EstadoDelSim.substring(13,25));
Serial1.println(«AT+COPS?»);
delay(10);
Serial.print(«Proveedor de red:»);
ProveedorDeRed = Serial1.readString();
Hola Hector, no me funciona, creo que es por la libreria, podrias decirme de donde bajar la libreria para SIM900, yo tengo el shield para colocar arriba del arduino directamente.
Gracias por toda la info que brindas.
Este ejemplo no hace uso de una librería para el SIM900. Mi recomendación es que comiences por el principio, en este caso manda un comando AT para ver que te responde el sistema, te tiene que responder OK. Algo asi:
Serial1.println(«AAAAT»);
delay(10);
Serial.print(«Respuesta:»);
Serial.println(SIM900.readString(););
Inicializa tu serial del SIM900 en 9600 o 19200 (si no funcionan prueba todos los demas ya que puede estar en otra frecuencia).
buenos dias, cordial saludo una pregunta como haria para encender o apagar algo enviendo un pulso positivo o negativo por ejemplo desde mi celular donde quiera que yo este.
gracias a todos .
atte: dany
Dany, lo puedes hacer leyendo el SIM900 y viendo el estado de llamada de entrada, si hay llamada activas o desactivas algo. Puedes revisar esta liga de comandos: http://www.raviyp.com/embedded/182-sim900-sms-call-commands
Buenos días, tengo un modulo de estos pero no me detecta ningún chip: +CME ERROR: SIM not inserted, he probado con varios sin éxito, tienen alguna recomendación para revisar si el módulo esta defectuoso? o el chip debe cumplir algún requerimiento? He medio los voltajes en los contactos del zócalo donde se inserta el chip, es normal que todo tenga 0 Voltios?
Por favor su gentil ayuda.
Gracias.
Richard, nunca hemos tenido problemas con el SIM, usualmente lo revisamos con el comando AT+CPIN. Hemos probado con Telcel, AT&T (Antes Iusacell) y Movistar y si los detecta bien.
Hola buenos días,
Ya resolvi el problema con el chip gsm, pero me he dado cuenta que ejecutando el código el arduino se reinicia, y no es el shield gsm, sino el arduino. A alguno le ha pasado esto?
Gracias.
Esto pasa por que el SIM consume mucha corriente y el Arduino se resetea, revisa poniendo una fuente externa o conectando el jack con un eliminador de por lo menos 1.5A a 2A. Saludos.
Hola buen dia, muchas gracias por el aporte me sirvió mucho y me funciona perfectamente aqui en Ecuador para un proyecto de alarma pero quisiera saber como puedo hacer para encender un led (como ejemplo) mediante un mensaje de texto, seria de gran ayuda si me ayudara a configurara esa parte desde el mismo codigo que fue subido. Muchas Gracias
hola, por que el mio de repente dejo de mandar y recibir mensajes?
saludos
acaso se satura? o se queda leyendo mensaje para cualquier cosa que entre??
Lo que estoy buscando es que el código se quede en modo leer mensaje para cuando ingrese el carácter que necesito automáticamente me envíe un mensaje pero no busco que se quede dormido.
saludos.
ps. se puede encender la sim900 con software?
en la hoja de datos esta como encender la sim900 sin necesidad de oprimir en boton power, informacion por favor? ya que al dar corriente al proyecto necesito que se enciendan el arduino y la sim900 y quede buscando señal.
hola soy de chile el problema que tengo no toma señal al encender la shield gsm… estoy usando un chip o sim 4g movistar
Hola
quisiera saber si existe algún comando AT, que me indique si existe señal o no, para indicarlo en un display 20×4
Hola que tal el comando es AT+CSQ lo puedes encontrar en la hoja de datos https://www.espruino.com/datasheets/SIM900_AT.pdf
saludos
Hago todas las conexiones, el codigo y alimento el arduino ya sea con el cable del pc o con eliminador 12V – 2A y cuando quiero que prenda los dos leds de NetLight y el otro, presiono el interruptor y ambos prenden bien, pero nunca parpadea y si suelto el interruptor se apagan ambos, lo vuelvo a presionar y ahora solo prende uno con una baja intensidad, no se que sucede aquí.
trata de alimentar ambas placas por separado… con buen amperaje. el modulo sim suele consumir bastante corriente al encenderse o traficar datos. son picos, pero cuelgan la placa. al alimentar las placas con fuentes separadas, de igual manera conecta las GND de ambas placas entre si.
Eduardo, solo se tiene que presionar por un momento pequeño. No sera que lo dejas presionado?
si quisiera que este programa funcionara con un sim A7 QUE TENDRIA QUE CAMBIAR’
Hola
Cuento mi problema, cuando enciendo el Powerkey se encienden las luces Netligth y parpadea como deberia de funcionar, pero a los pocos segundos cuando parece que se esta estableciendo la conexion se apagan las luces Netligth. En cambio si presiono el Powerkey sin que este la tarjeta sim dentro del shield GSM se encienden las luces Netligth sin interrupcion (modo correcto).
No entiendo mucho del tema, ¿podria ser porque alimento el arduino por cable usb desde el PC y al intentar conectarse a la red GSM no tiene suficiente fuerza y se apaga?
(He seguido a rajatabla el tutorial)
Espero que me puedas orientar o ayudar, gracias de antemano 😉
Andres, si, es posible que debido a la fuente de alimentación te este pasando esto. Mi primer recomendación seria que uses una fuente independiente (regulador de 12v en 1.5A o más, a la entrada del Arduino del jack 2.1mm). Este error es común debido a la fuente.
Gracias por contestar, si que era eso, he utilizado una fuente de 12v a 1A por el conector ac y funciona a la perfeccion.
Andrés, es un gusto escuchar que funciono. Saludos.
Hi ! thanks for the guide clear and easy, thanks very match but…i dont know why i ve problems ..i do the same things of this page but with my sim900 with an esternal power and the same code and pins connection dosnt work ! im strating to think it isn’t a my error ! Can someone hear me?, i wanna explane my answers my friends ! and i wanna find a solution 😐
-1 led lights ..can someone explane to me the logic of the lights? ( i ve 2 red light always on and, when i press for 2 second the button, another red light that blinks every 2 second since)
-2 i ve Arduino uno original and the same sim900 of the guide, so..its necessary just to include SoftwareSerial and set pins 7 and 8? not more? Not one external library?
Thanks to listen me and i hope i ll have a answer! ( If there is a datasheet someone know the link? )
tengo un modulo Shield Sim900 con una pinera roja y otra amarilla en esta no encuentro como encenderla sin que tenga que oprimir el power key
y ademas me sale esto
OK
SMS sent successfully
ATD 9999560738;
ERROR
ATH
OK
AT+CMGF=1
OK
AT+CMGS=
no se sii tenga que ver el chip utilize uno 4 g
o tiene que ver el amperaje use 12 v pero como un amper de potencia
el codigo esta hecho necesariamente para ocupar el sim900 o puedo ocupar otro modulo gprs
Hola mi gente, soy nuevo en este mundo… y me he comprado un arduino UNO y un modulo sim900 para preparar un dispositivo detector de gas butano y poder llamarme cuando lo detecte.
Resulta que el modulo sim900 se conecta a la red y no es capaz de llamar a pesar de que el codigo va bien, cuando hago las pruebas el gas supera el umbral y en el monitor serial dice llamando y mi telefono no suena, el modulo esta conectado a la red normalmente porque he probado llamar a la sim que se encuentra dentro del modulo y suena normalmente… he elegido los pines 7 y 8 para la comunicacion
muchisimas gracias, funciono perfecto solo modifique la alimentación de la SIM900
HOLA que tal no se si me pudieran ayudar al meter el código si me funciona bien pero solo llega asta hay en el monitor serial no se si hay algo que estoy asiendo mal le agrada seria mucho que me pudieran ayudar es para mi tesis estoy asiendo un sistema de alarma con el modulo pero con el modulo no puedo hacer llamadas solo recibir
OK
SMS sent successfully
OK-2
Uriel, no me queda muy claro cual es tu problema ya que el comando que mandas abajo es para mensajes. Cual es el error?
Hola Que tal. Tengo el problema de que el saldo de prepago se consume de .inmediato. el equivalente a,$ 60 USD en pruebas de fin de semana.y no me da señal de red. Que puede estar pasando? Saludos
Hello, I need advice on codes, my project is the following; I want the 4 x 3 matrix keyboard to be able to make calls to several phones, each with its own code. In other words, I want to call a specific house, let’s say house 22 that when sending * 22 # make the call to the house phone 22 and when dialing * 28 # make the call to the house phone 28 and if with approximately 24 house calls separately it is for a wireless intercom project please if you could help me Thank you