Cómo conectar y utilizar un módulo GSM SIM800L con la Raspberry Pi (sin batería).
Comentarioⓘ Cet article peut avoir été partiellement ou totalement traduit à l'aide d'outils automatiques. Nous nous excusons des erreurs que cela pourrait engendrer.
El SIM800L es un módem GSM/GPRS que es ampliamente utilizado en electrónica debido a su muy bajo precio y amplia disponibilidad. Es una forma asequible de enviar SMS con una Raspberry Pi o Arduino, conectarse en 3G o implementar un GPS.
Sin embargo, es casi imposible encontrar explicaciones satisfactorias sobre su uso y sobre todo sobre su conexión.
Así que en este tutorial vamos a ver cómo conectar y alimentar un SIM800L desde una frambuesa (tenga en cuenta que también funciona para un Arduino), sin energía externa o batería!
El hardware necesario para conectar su SIM800L a su frambuesa.
Vamos a entrar en los detalles y explicaciones más adelante en este tutorial, pero tenga en cuenta que para vincular un SIM800L a una frambuesa se necesita un poco de hardware. Así que necesitarás:
- Desde un módulo SIM800L.
- Un soldador para montar su SIM800L si aún no lo está.
- Una placa de pan, un condensador de 5 V, 100 grados Fahrenheit o más, un diodo 1N4007, cables Dupont. Usted podría comprar cada artículo solo, pero en realidad debe comprar docenas de capacitores y diodos sólo para pagar los costos de envío. Así que creo que lo más fácil es tomar un kit de electrónica como este que contiene todo lo que acabamos de mencionar.
Por supuesto, también necesitará una frambuesa con raspbiano instalado y una tarjeta SIM con una suscripción. Tenga en cuenta que la tarjeta SIM debe estar en formato micro sim. Si el suyo es de un tamaño más pequeño (nano), necesitará un adaptador.
Ahora pasemos a las explicaciones y la práctica.
¿No hay tiempo o deseo de leer las explicaciones? Vaya directamente a la parte "En la práctica…".
Teoría, ¿cómo usar un SIM800L con una Raspberry Pi?
El SIM800L es un módem. Es el que se registra en la red de su operador, etc. En general, se comporta como un teléfono que se puede controlar directamente desde su frambuesa.
Para controlar el SIM800L, desde la frambuesa, tendrá que proporcionar energía a la primera y física y software conectando ambos utilizando un puerto TTL, más a menudo llamado un puerto o interfaz serie.
Desde allí se puede controlar el SIM800L enviando comandos de heno al puerto de la serie – de hecho más a menudo referido como comandos AT – que son comandos específicos de las funciones de un módem. Por ejemplo, enviar un SMS, introducir un PIN, comprobar el estado de la red, y mucho más!
En teoría, para utilizar un SIM800L con la Raspberry Pi por lo tanto debe hacer lo siguiente:
- Conecte el SIM800L VDD a un GPIO que proporcione alimentación en la frambuesa.
- Conecte el SIM800L GND a un GND GPIO en la frambuesa.
- Vincule el SIM800L TXD a la Raspberry RXD.
- Vincule el RXD de la frambuesa al SIM800L TXD.
- Envíe y reciba datos con comandos AT en el puerto serie.
Sólo aquí, todo esto es la teoría, pero verás que en la práctica las cosas son un poco más complicadas …
La realidad es, ¿por qué es difícil conectar un SIM800L?
Si la teoría suena simple, en realidad encontrará bastantes tutoriales en Internet explicando cómo utilizar el SIM800L con una frambuesa. Peor aún, esencialmente encontrará tutoriales incorrectos que, en el mejor de los casos, harán que su instalación sea completamente inestable, en el peor de los casos, dañará su SIM800L.
Pero entonces, ¿cómo es que no hay más recursos de calidad disponibles para un módulo tan conocido? Porque SIM800L es particularmente difícil de alimentar y sensible.
Un módulo diseñado para teléfonos y baterías.
Originalmente el SIM800L fue diseñado para ser utilizado en teléfonos por los fabricantes. Su uso en electrónica de consumo es mucho más reciente y no ha sido considerado en absoluto por el fabricante.
Como resultado de su uso dentro de los teléfonos, el módulo está diseñado para ser alimentado con baterías de iones de litio, que ofrecen voltajes de aproximadamente 3.6 a 3.7 voltios. Esta característica planteará un primer problema, ya que en la electrónica digital solemos utilizar 3.3 voltios o 5 voltios, pero no 3.6 voltios.
Un módulo hambriento de energía.
El segundo problema es que el SIM800L realiza operaciones de radio que requieren picos de corriente grandes y muy puntuales. Normalmente, las operaciones implicadas se graban en la red del operador, envían mensajes, etc. Si durante estas fases el módulo no obtiene la corriente necesaria su comportamiento se vuelve completamente impredecible, que va desde el mensaje de error al reinicio a través de la pérdida de la red.
Desafortunadamente, resulta que los suministros en general y los puertos GPIO de la Raspberry Pi en particular tienen dificultades para responder a este tipo de picos en el consumo.
De hecho, la cantidad de energía consumida es tan grande y durante un período tan corto de tiempo que el uso de cables de alimentación que son demasiado largos y delgados puede ser suficiente para chocar el módulo! Este suele ser el caso si conecta varios cables Dupont en serie.
Tenga la seguridad de que le explicaremos cómo resolver estos dos problemas!
En la práctica, ¿cómo se alimenta un SIM800L directamente desde una frambuesa?
Así que vimos que tenemos dos problemas para alimentar un SIM800L de una frambuesa: voltaje inconsistente y picos en el consumo de energía.
Primero, vamos a abordar el problema de la tensión.
Reduzca el voltaje proporcionado por la Raspberry Pi.
Si leemos la hoja de datos, es decir, la ficha técnica, de la SIM800L, vemos que el fabricante indica una tensión de potencia de 3.4 y 4.4 voltios, con un voltaje óptimo de 4 voltios.
La Raspberry Pi puede proporcionar dos voltajes, 3.3 y 5 voltios. Así que debemos aumentar un poco nuestra presión arterial o disminuirla.
Vamos a eliminar la primera posibilidad que es demasiado complicada de implementar y mirar a la segunda. Por lo tanto, estamos buscando una forma fiable, sencilla y muy económica de reducir una tensión de al menos 0,6 voltios, sin disminuir la intensidad de la corriente (ampedores). Por suerte, resulta que hay un componente electrónico que hace precisamente eso, y que además este componente está tan extendido que absolutamente toda la electrónica lo sabe: el diodo.
Los diodos son conocidos principalmente por dejar pasar la corriente en una dirección. Pero una de sus características es también causar una caída de voltaje, que se estima para los diodos de silicio en 0.7 voltios.
Así que sólo tenemos que insertar un diodo de silicio, vamos a tomar un 1N4007, entre el GPIO 5 voltios de nuestro Pi y el PIN VDD (alimentación) de nuestro SIM800L. Y eso es todo, tenemos un voltaje de 4.3 voltios, justo lo que necesitamos.
Proporcione una fuente de alimentación que pueda responder al consumo máximo.
Ahora que hemos resuelto nuestro problema de voltaje, sigue siendo nuestro problema de consumo máximo. Esta vez necesitaríamos un componente que nos permitiera "almacenar energía" y proporcionarla muy rápidamente cuando el SIM800L lo necesita. Una vez más por suerte, existe y se llama un condensador!
Los condensadores se utilizan en muchos casos, pero uno de los usos más conocidos es la estabilización de potencia. Se cargan cuando hay demasiada energía y descarga cuando hay escasez.
Así que vamos a insertar un condensador electrolítico (vamos a tomar al menos un 100-F 5 V, si tenemos más en F o voltios sin problemas) en paralelo a los pinos VDD y GND de nuestro SIM800L.
El ensamblaje completo.
Ahora que hemos resuelto nuestros problemas, veamos cómo es nuestra edición completa antes de probar todo enviando mensajes de texto.
Para mantener todos nuestros componentes en su lugar y conectarlos juntos utilizaremos una placa de pan y cables Dupont.
Así que aquí está el diagrama de conexión final, el hilo rojo va al VDD, el negro al GND.
Algunos comentarios sobre la edición:
- Apague las conexiones de frambuesa y no esté enchufada, conéctela solo después de que haya comprobado todo y asegúrese de que su edición es buena.
- Tenga cuidado de conectar el condensador lo más cerca posible de los pinos SIM800L VDD y GND, idealmente como en el diagrama.
- El condensador es un componente polarizado, debe ser enchufado en una dirección precisa, ánodo en el VDD, cátodo en el GND. El cátodo está marcado por una raya blanca en el lateral.
- Al igual que el condensador, el diodo es un componente polarizado, de nuevo el cátodo está marcado por una banda blanca.
Una vez completado el montaje, podrá insertar la tarjeta SIM en la ubicación proporcionada en el SIM800L.
Prestar mucha atención al significado, no es absolutamente intuitivo. Usted tiene que meter los contactos del lado de la tarjeta contra la placa de circuito, la esquina cortada sesgada hacia la abertura (que supera un poco). Si introduce la tarjeta al revés, tendrá un error típico SIM not inserted
utilizando el módulo.
Una vez que el montaje está completo, encienda su Raspberry Pi, ¡podremos probar enviando un SMS!
Envíe su primer SMS desde la frambuesa con un SIM800L.
Para terminar este tutorial, vamos a enviar un primer SMS para comprobar que todo funciona. No vamos a ir más allá en el uso de la SIM800L, pero sabemos que ofrece muchas otras características. Para su uso posterior, consulte la guía de comandos AT para el SIM800.
Para empezar, tendrás que seguir nuestro tutorial para activar el puerto de la serie Raspberry Pi. Una vez que haya terminado de activar el puerto de la serie podremos conectarnos al SIM800L a través del puerto de la serie.
Para ello, abra una conexión a /dev/serial0
con minicom utilizando la línea de comandos a continuación:
sudo minicom -b 115000 -o -D /dev/serial0
Escriba el comando AT
(a menudo la primera línea no aparece cuando escribe, es normal) y luego vuelve a la línea para validar. Usted debe tener un mensaje de respuesta OK
.
Ahora comprobaremos que la tarjeta SIM está desbloqueada (se introduce el PIN). Para hacer este tipo el comando AT+CPIN?
. Si la tarjeta está desbloqueada, debe tener una respuesta:
+CPIN: READY
OK
Si tienes una respuesta como la de abajo es porque tienes que introducir el PIN de tu tarjeta.
+CPIN: SIM PIN
OK
Para ello, utilice el comando AT+CPIN=0000
Reemplazar 0000
por su propio PIN. A continuación, debe tener una respuesta en el formulario:
AT+CPIN=0000
OK
+CPIN: READY
SMS Ready
Call Ready
Está bien, estás conectado a la red de tu operador. Todo lo que tenemos que hacer es enviar un mensaje de texto. Para ello, utilice los comandos AT+CMGF=1
para activar el modo de texto (nos permite escribir el SMS en un formato comprensible para un humano), entonces AT+CMGS="+33612345678"
Reemplazar +33612345678
por el número al que desea enviar el SMS.
Un personaje >
aparecerá, escriba sus sms y luego una vez que haya terminado, haga Ctrl+Z
.
Al final usted debe tener algo de la siguiente forma:
AT+CMGF=1
OK
AT+CMGS="+33612345678"
> Mon premier SMS avec un SIM800L
+CMGS: 29
OK
Y he aquí, usted envió su primer SMS con una Raspberry Pi y un SIM800L!
Como se puede ver el uso diario directamente con comandos AT no es necesariamente muy práctico, pero tenga la seguridad, el software existe para simplificar su vida, y vamos a hablar de ello muy pronto en otro tutorial!
Hola buenas,
En primer lugar, gracias por el tutorial. Actualmente estoy realizando un desarrollo en el que utilizo el módulo TEL0089 de DFRobot, basado en el SIM800C. Tengo a el conectado un altavoz y un micrófono, aprovechando las conexiones minijack. Puedo realizar llamadas, pero al hacerlo se reproduce una molesta interferencia en el altavoz. Anteriormente, había utilizado el mismo modulo que usas en este tutorial y también tenia problemas de interferencias y ruidos. ¿Tienes alguna experiencia en este aspecto o puedes ayudarme con este problema?
Muchas gracias y un saludo!