Enviar Recibir SMS y llamar con el módulo SIM800L GSM y Arduino
Cómo funciona el módulo SIM800L GSM y Arduino
Ya sea que quieras escuchar lo que sucede en tu casa que está a kilómetros de distancia o activar el sistema de rociadores en tu jardín sólo con una llamada silenciosa; entonces el módulo GSM/GPRS SIM800L sirve como un sólido punto de lanzamiento para que empieces con la domótica y el Internet de las Cosas.
El módulo SIM800L GSM/GPRS es un módem GSM en miniatura, que puede ser integrado en un gran número de proyectos de IO. Puedes usar este módulo para lograr casi todo lo que un teléfono celular normal puede; mensajes de texto SMS, hacer o recibir llamadas telefónicas, conectarse a Internet a través de GPRS, TCP/IP, y más! Para colmo, el módulo soporta una red GSM/GPRS cuatribanda, lo que significa que funciona prácticamente en cualquier parte del mundo.
Descripción del hardware del módulo GSM/GPRS SIM800L
En el corazón del módulo hay un chip celular SIM800L GSM de SimCom. El voltaje de funcionamiento del chip es de 3,4V a 4,4V, lo que lo convierte en un candidato ideal para el suministro directo de baterías LiPo. Esto lo convierte en una buena opción para integrarlo en proyectos sin mucho espacio.
Todos los pines de datos necesarios del chip SIM800L GSM se abren a un 0.1″ cabeceras de paso. Esto incluye los pines necesarios para la comunicación con un microcontrolador sobre UART. El módulo soporta una tasa de baudios de 1200bps a 115200bps con detección automática de baudios.
El módulo necesita una antena externa para conectarse a una red. El módulo suele venir con una antena helicoidal y se suelda directamente al pin de la red en el PCB. El tablero también tiene un conector U.FL en caso de que quieras mantener la antena lejos del tablero.
Hay un socket SIM en la parte de atrás. Cualquier tarjeta SIM micro activada de 2G funcionaría perfectamente. La dirección correcta para insertar la tarjeta SIM está normalmente grabada en la superficie del enchufe de la SIM.
Este módulo mide sólo 1 pulgada² pero contiene una sorprendente cantidad de características en su pequeño marco. Algunas de ellas se enumeran a continuación:
- Soporta la banda cuádruple: GSM850, EGSM900, DCS1800 y PCS1900
- Conéctate a cualquier red global GSM con cualquier SIM 2G
- Hacer y recibir llamadas de voz usando un altavoz externo 8Ω y un micrófono electret
- Enviar y recibir mensajes SMS
- Enviar y recibir datos GPRS (TCP/IP, HTTP, etc.)
- Escanear y recibir emisiones de radio FM
- Transmitir energía:
- Clase 4 (2W) para GSM850
- Clase 1 (1W) para el DCS1800
- Conjunto de comandos AT basados en serie
- Conectores FL para antenas celulares
- Acepta la tarjeta micro SIM
Indicadores de estado de los LED
Hay un LED en la parte superior derecha del módulo celular SIM800L que indica el estado de tu red móvil. Parpadeará a varias velocidades para mostrar en qué estado se encuentra:
- Parpadea cada 1s. El módulo está funcionando pero aún no se ha conectado a la red móvil. Luz de red LED parpadeante Conexión GPRS activa
- Pestañeo cada 2s. La conexión de datos GPRS que solicitó está activa. LED de luz de red Parpadeo Conexión de red establecida.
- Parpadea cada 3s. El módulo ha hecho contacto con la red móvil y puede enviar/recibir voz y SMS.
Selección de la antena
Se requiere una antena para usar el módulo para cualquier tipo de comunicación de voz o datos, así como algunos comandos SIM. Por lo tanto, la selección de una antena podría ser algo crucial. Hay dos maneras de agregar una antena a tu módulo SIM800L.
La primera es una antena GSM helicoidal que normalmente viene con el módulo y se suelda directamente al pin NET en el PCB. Esta antena es muy útil para proyectos que necesitan ahorrar espacio pero que tienen dificultades para obtener conectividad, especialmente si su proyecto está en el interior.
La segunda es cualquier antena GSM de 3dBi junto con un adaptador de U.FL a SMA que se puede obtener en línea por menos de $3. Puedes acoplar esta antena a un pequeño conector u.fl ubicado en la esquina superior izquierda del módulo. Este tipo de antena tiene un mejor rendimiento y permite poner su módulo dentro de una caja de metal – siempre y cuando la antena esté afuera.
Suministro de energía para el módulo SIM800L
Una de las partes más importantes para hacer funcionar el módulo SIM800L es suministrarle suficiente energía.
Dependiendo del estado en que se encuentre, el SIM800L puede ser un dispositivo relativamente ávido de energía. El consumo máximo de corriente del módulo es de alrededor de 2A durante la ráfaga de transmisión. Por lo general, no consume tanto, pero puede requerir alrededor de 216mA durante las llamadas telefónicas o 80mA durante las transmisiones de la red. Este cuadro de la hoja de datos resume lo que puedes esperar:
Modos | Frecuencia | Consumo actual |
Apagar. | 60 uA | |
Modo de descanso… | 1 mA | |
Preparado | 18 mA | |
Llama a | GSM850 | 199 mA |
EGSM900 | 216 mA | |
DCS1800 | 146 mA | |
PCS1900 | 131 mA | |
GPRS | 453 mA | |
Ráfaga de transmisión | 2 A |
Como el módulo SIM800L no viene con regulador de voltaje incorporado, se requiere una fuente de alimentación externa ajustada a un voltaje entre 3.4V y 4.4V (Ideal 4.1V). La fuente de alimentación también debe ser capaz de suministrar 2A de corriente de sobrecarga, de lo contrario el módulo seguirá apagándose. Aquí hay algunas opciones que puede considerar para alimentar correctamente su módulo GSM.
Batería de Li-Po de 3.7v (Recomendado)
Una de las cosas interesantes de las baterías de Li-Po es que su voltaje está generalmente en el rango de 3.7V – 4.2V, perfecto para el módulo SIM800L. Cualquier batería de iones de litio/polímeros de 1200mAh o más grande es la mejor, ya que puede proporcionar el rango de voltaje correcto incluso durante los picos de 2 Amperios.
Convertidor Buck DC-DC
Cualquier convertidor de 2A DC-DC como el LM2596 funcionaría. Son mucho más eficientes que un regulador de voltaje de línea como el LM317 o el LM338.
Debes tener mucho cuidado de no desconectar la GND antes del VCC y siempre conectar la GND antes del VCC. De lo contrario, el módulo puede usar los pines seriales de bajo voltaje como tierra y puede ser destruido instantáneamente.
SIM800L GSMPinout
El módulo SIM800L tiene un total de 12 pines que lo conectan al mundo exterior. Las conexiones son las siguientes:
- NET es un pin donde puedes soldar la antena helicoidal que se proporciona junto con el módulo.
- El VCC suministra la energía para el módulo. Puede ser de 3,4 a 4,4 voltios. Recuerda que si lo conectas a la clavija de 5V probablemente destruirás tu módulo. Ni siquiera funciona con 3,3 V. Una fuente de energía externa como la batería Li-Po o los convertidores DC-DC de 3.7V 2A funcionarían.
- RST (Reset) es un pin de reajuste duro. Si tienes el módulo en un mal espacio, tira de esta clavija a baja altura durante 100ms para realizar un hard reset.
- La clavija RxD (Receptor) se utiliza para la comunicación en serie.
- La clavija TxD (Transmisor) se utiliza para la comunicación en serie.
- GND es el ing de tierra y necesita ser conectada a la clavija GND en el Arduino.
- La clavija RING actúa como un indicador de anillo. Es básicamente el pin de «interrupción» de salida del módulo. Es por defecto alto y pulsará bajo durante 120ms cuando se reciba una llamada. También puede ser configurado para pulsar cuando se recibe un SMS.
- El pin DTR activa/desactiva el modo de espera. Si lo pones en HIGH, el módulo entrará en modo de suspensión, deshabilitando la comunicación en serie. Tirando de ella en LOW se despertará el módulo.
- MIC± es una entrada de micrófono diferencial. Las dos clavijas del micrófono pueden conectarse directamente a estas clavijas.
- SPK± es una interfaz de altavoz diferencial. Los dos pines de un altavoz pueden conectarse directamente a estos dos pines.
Cableado, Conectando el módulo GSM SIM800L a Arduino UNO
Ahora que sabemos todo sobre el módulo, podemos empezar a conectarlo a nuestro Arduino.
Comienza soldando/conectando la antena, inserta la tarjeta Micro SIM completamente activada en el enchufe. Ahora, conecte el pin Tx del módulo al pin digital nº 3 de Arduino ya que usaremos el software de serie para hablar con el módulo.
No podemos conectar directamente la clavija Rx del módulo a la clavija digital de Arduino ya que Arduino Uno utiliza 5V GPIO mientras que el módulo SIM800L utiliza una lógica de nivel de 3,3V y NO es tolerante a los 5V. Esto significa que la señal Tx que viene del Arduino Uno debe ser bajada a 3.3V para no dañar el módulo SIM800L. Hay varias maneras de hacer esto, pero la más fácil es usar un simple divisor de resistencia. Una resistencia de 10K entre SIM800L Rx y Arduino D2, y 20K entre SIM800L Rx y GND funcionaría bien.
Ahora nos quedamos con los pines que se usan para suministrar energía al módulo. Como tiene múltiples opciones para alimentar el módulo, hemos proporcionado dos esquemas de ejemplo. Uno usa una batería de Li-Po de 1200mAh y el otro usa un convertidor DC-DC LM2596.
En caso de que estés usando el convertidor LM2596 para encender el módulo, recuerda que debes compartir toda la tierra del circuito.
Una vez que tengas todo conectado, estás listo para empezar.
Código Arduino. Probando los comandos AT
Para enviar los comandos AT y comunicarse con el módulo SIM800L, usaremos el monitor serial. El siguiente esquema permitirá a Arduino comunicarse con el módulo SIM800L en el monitor de serie. Antes de proceder con el desglose detallado del código, conecta tu Arduino al PC, compila el siguiente código y cárgalo en el Arduino.
Una vez que abras un monitor en serie, asegúrate de que la opción ‘Both NL & CR’ esté seleccionada.
#include <SoftwareSerial.h>
//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2
void setup()
{
//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
//Begin serial communication with Arduino and SIM800L
mySerial.begin(9600);
Serial.println("Initializing...");
delay(1000);
mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
updateSerial();
mySerial.println("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best
updateSerial();
mySerial.println("AT+CCID"); //Read SIM information to confirm whether the SIM is plugged
updateSerial();
mySerial.println("AT+CREG?"); //Check whether it has registered in the network
updateSerial();
}
void loop()
{
updateSerial();
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
}
}
El código comienza incluyendo una biblioteca SoftwareSerial.h e inicializándola con los pines de Arduino a los que se conecta el Tx y Rx del módulo SIM800L.
#include <SoftwareSerial.h>
//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2
En la función de configuración: inicializamos un enlace de comunicación en serie entre Arduino, Arduino IDE y el módulo SIM800L a una velocidad de 9600 baudios.
//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
//Begin serial communication with Arduino and SIM800L
mySerial.begin(9600);
Ahora que hemos establecido una conexión básica, intentaremos comunicarnos con el módulo SIM800L enviando comandos AT.
- AT – Es el comando AT más básico. También inicializa el Auto-baud’er. Si funciona, deberías ver el eco de los caracteres AT y luego OK, diciéndote que está bien y que te está entendiendo correctamente. Puedes enviar algunos comandos para consultar el módulo y obtener información sobre él, como por ejemplo
- AT+CSQ – Comprueba la «fuerza de la señal» – el primer # es la fuerza en dB, debería ser mayor que alrededor de 5. Más alto es mejor. Por supuesto que depende de tu antena y de tu ubicación.
- AT+CCID – Obtener el número de la tarjeta SIM – esto prueba que la tarjeta SIM se encuentra bien y puede verificar que el número está escrito en la tarjeta.
- AT+CREG? Comprueba que estás registrado en la red. El segundo número debe ser 1 o 5. 1 indica que estás registrado en la red doméstica y 5 indica que estás en la red de roaming. Aparte de estos dos números indica que no estás registrado en ninguna red.
mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
updateSerial();
mySerial.println("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best
updateSerial();
mySerial.println("AT+CCID"); //Read SIM information to confirm whether the SIM is plugged
updateSerial();
mySerial.println("AT+CREG?"); //Check whether it has registered in the network
updateSerial();
En la parte de bucle del código, llamamos a la función personalizada llamada updateSerial() que espera continuamente cualquier entrada del monitor serie y la envía al módulo SIM800L a través del pin D2 (Rx del módulo). También lee continuamente el pin D3 (Tx del módulo) si el módulo SIM800L tiene alguna respuesta.
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
}
}
Deberías ver abajo la salida en el monitor serie.
Ahora eres libre de enviar cualquier comando a través de un monitor en serie como el que se muestra a continuación, que ofrece más información sobre la conexión de red y el estado de la batería:
- ATI – Obtener el nombre del módulo y la revisión
- ¿AT+COPS? – Comprueba que estás conectado a la red, en este caso BSNL
- AT+COPS=? – Devuelve la lista de operadores presentes en la red.
- AT+CBC – devolverá el estado de la batería lipo. El segundo número es el % lleno (en este caso es el 93%) y el tercer número es el voltaje actual en mV (en este caso, 3.877 V)
Código de Arduino para enviar SMS
Pasemos a las cosas interesantes. Programemos nuestro Arduino para que envíe un SMS a cualquier número de teléfono que desee. Antes de probar el boceto, tienes que introducir el número de teléfono. Busca la cadena ZZxxxxxxxxxx y sustituye ZZ por el código del condado y xxxxxxxxxx por el número de teléfono de 10 dígitos.
#include <SoftwareSerial.h>
//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2
void setup()
{
//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
//Begin serial communication with Arduino and SIM800L
mySerial.begin(9600);
Serial.println("Initializing...");
delay(1000);
mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
updateSerial();
mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
updateSerial();
mySerial.print("Last Minute Engineers | lastminuteengineers.com"); //text content
updateSerial();
mySerial.write(26);
}
void loop()
{
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
}
}
El código es casi igual al anterior, excepto por el fragmento de código. Una vez que se establece la conexión, enviamos los comandos AT de abajo:
- AT+CMGF=1 – Selecciona el formato del mensaje SMS como texto. El formato por defecto es Unidad de Datos de Protocolo (PDU)
- AT+CMGS=+ZZxxxxxxxxxx – Envía un SMS al número de teléfono especificado. El mensaje de texto introducido seguido de un carácter «Ctrl+z» se trata como un SMS. «Ctrl+z» es en realidad un 26º carácter no impreso descrito como «sustituto» en la tabla ASCII. Por lo tanto, necesitamos enviar 26DEC (1AHEX) una vez que enviemos un mensaje.
mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
updateSerial();
mySerial.print("Last Minute Engineers | lastminuteengineers.com"); //text content
updateSerial();
mySerial.write(26);
El bucle se mantiene vacío ya que queremos enviar un SMS sólo una vez. Si deseas enviar un SMS una vez más, sólo tienes que pulsar la tecla RESET en tu Arduino. Y entonces enviará al mensaje al número de teléfono designado.
Código de Arduino para Lectura de SMS
Ahora programemos nuestro Arduino para leer los mensajes entrantes. Este sketch es muy útil cuando se necesita activar una acción cuando se recibe un SMS específico. Por ejemplo, cuando el Arduino recibe un SMS, puedes darle instrucciones para activar o desactivar un relé.
#include <SoftwareSerial.h>
//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2
void setup()
{
//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
//Begin serial communication with Arduino and SIM800L
mySerial.begin(9600);
Serial.println("Initializing...");
delay(1000);
mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
updateSerial();
mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
mySerial.println("AT+CNMI=1,2,0,0,0"); // Decides how newly arrived SMS messages should be handled
updateSerial();
}
void loop()
{
updateSerial();
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
}
}
El código es similar al anterior, excepto por el fragmento de código de abajo. Una vez que se establece la conexión, enviamos abajo los comandos AT:
- AT+CMGF=1 – Selecciona el formato del mensaje SMS como texto. El formato por defecto es Unidad de Datos de Protocolo (PDU)
- AT+CNMI=1,2,0,0,0 – especifica cómo se deben manejar los mensajes SMS recién llegados. De esta manera, puede indicar al módulo SIM800L que reenvíe los mensajes SMS recién llegados directamente al PC o que los guarde en el almacenamiento de mensajes y luego notifique al PC sobre su ubicación en el almacenamiento de mensajes.
Su respuesta comienza con +CMT: Todos los campos de la respuesta están separados por comas y el primer campo es el número de teléfono. El segundo campo es el nombre de la persona que envía el SMS. El tercer campo es una marca de tiempo mientras que el cuarto campo es el mensaje real.
mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
mySerial.println("AT+CNMI=1,2,0,0,0"); // Decides how newly arrived SMS messages should be handled
updateSerial();
Ten en cuenta que esta vez NO hemos mantenido la función de bucle vacía, ya que estamos buscando mensajes SMS recién llegados. Una vez que envíe el SMS al módulo GSM SIM800L, verá la salida en el monitor serial.
Si tu mensaje es lo suficientemente largo como el nuestro, entonces probablemente lo recibirás con algunos caracteres que faltan. Esto no se debe a un código defectuoso. El búfer de recepción de SoftwareSerial se está llenando y descartando caracteres. No estás leyendo lo suficientemente rápido del buffer.
La solución más simple para esto es aumentar el tamaño del búfer del SoftwareSerial de su tamaño predeterminado de 64 bytes a 256 bytes (o más pequeño, dependiendo de lo que funcione para usted).
En un PC con Windows, ve a C:\Ficheros de programa (x86) -> Arduino -> hardware -> Arduino -> avr -> bibliotecas -> SoftwareSerial (-> src para la nueva versión del IDE de Arduino) Abre SoftwareSerial.h y cambie la línea:
// RX buffer size
#define _SS_MAX_RX_BUFF 64
a
// RX buffer size
#define _SS_MAX_RX_BUFF 256
Guarda el archivo y vuelve a ejecutar el código.
Código de Arduino para hacer una llamada
Ahora programemos a nuestro Arduino para que haga la llamada. Este sketch es muy útil cuando quieres que tu Arduino haga una llamada de SOS/estrés en caso de emergencia como que se exceda la temperatura o alguien entre en tu casa.
Antes de probar el código, tienes que introducir el número de teléfono. Busca la cadena ZZxxxxxxxxxx y sustituye ZZ por el código del condado y xxxxxxxxxx por el número de teléfono de 10 dígitos.
#include <SoftwareSerial.h>
//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2
void setup()
{
//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
//Begin serial communication with Arduino and SIM800L
mySerial.begin(9600);
Serial.println("Initializing...");
delay(1000);
mySerial.println("AT"); //Once the handshake test is successful, i t will back to OK
updateSerial();
mySerial.println("ATD+ +ZZxxxxxxxxxx;"); // change ZZ with country code and xxxxxxxxxxx with phone number to dial
updateSerial();
delay(20000); // wait for 20 seconds...
mySerial.println("ATH"); //hang up
updateSerial();
}
void loop()
{
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
}
}
Para realizar una llamada se utilizan los comandos AT:
- ATD+ +ZZxxxxxxxxxx; – Marca un número determinado. El modificador de punto y coma (;) al final separa la cadena de marcado en múltiples comandos de marcado. Todos los comandos excepto el último deben terminar con el modificador punto y coma (;).
- ATH – Cuelga la llamada
mySerial.println("ATD+ +ZZxxxxxxxxxx;"); // change ZZ with country code and xxxxxxxxxxx with phone number to dial
updateSerial();
delay(20000); // wait for 20 seconds...
mySerial.println("ATH"); //hang up
updateSerial();
Código de Arduino para recibir la llamada
Recibir una llamada no requiere ningún código especial, sólo tienes que seguir escuchando el módulo SIM800L. Sin embargo, puede que encuentres este esquema muy útil, cuando necesites desencadenar una acción cuando se reciba una llamada de un número de teléfono específico.
#include <SoftwareSerial.h>
//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2
void setup()
{
//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
//Begin serial communication with Arduino and SIM800L
mySerial.begin(9600);
Serial.println("Initializing...");
}
void loop()
{
updateSerial();
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
}
}
La llamada entrante suele indicarse con un «ANILLO» en el monitor de serie seguido del número de teléfono y el identificador de llamadas. Para aceptar o colgar una llamada se utilizan los siguientes comandos AT:
ATA – Acepta la llamada entrante.
ATH – Cuelga la llamada. Al colgar la llamada envía NO CARRIER en el monitor serial indicando que la llamada no pudo conectarse.
Esto se mostrara en el monitor serial como una llamada recibida por el módulo SIM800L GSM.
Comprar el módulo SIM800L GSM
- Módulo SIM 900 GPRS / GSM multibanda 850/900/1800/1900 MHz (GSM y GPRS compatibles en todo el...
- Soporte para llamadas y SMS (conexiones de auriculares y micrófono disponibles). La comunicación...
- Controlable a través de nuestro AZ-Delivery UNO (pin 100% compatible) y MEGA2560 y programación...
Debe estar conectado para enviar un comentario.