lunes, 3 de agosto de 2015

Arduino - Comunicación con SIM800l GPRS/GSM

Resumen de funcionamiento shield sim800l, como interface arduino, esp8266, esp32 u otro microcontrolador, se puede utilizar para un sistema de seguridad, comunicacion gsm, scanner, etc.

Ejemplos  y casos de uso.

1)Sistema de seguridad
PIR --> Arduino ---> sim800L    )))  (gprs/gsm)   (((( "celular 3G"

2)Sistema de seguridad 2(nodos wifi bajo consumo )

PIR_1 -->esp-01 -))))        ((((--router_wifi_red_domotica--)))     ((((-esp-12--sim800l-)))) celular 3G
PIR_2 --->esp-01-))))                                                                                 
PIR_3 --->esp-01-))))

3)Sistema de comunicacion y reconocimiento de voz

maple_mini --->sim800l  ))) gprs/gsm/internet
                      --->esp-12  )))wifi P2P/router
                      --->easy-VR "reconocimiento de voz"
                      -->HC-05 programacion por bluetooth o conexion a celulares
                      --->GPS
                      ---->RF transceiver de rf 2.4ghz red domotica

Este es el breakout sim800l con comunicacion serie el cual se puede conectar a un uC 'microcontrolador', arduino, esp8266, raspberry pi etc, o a un programador usb-rs232
Hay varias versiones de este  CI , sim800, sim900 y el adaptador para smd, se puede armar pero ya hay breakout desarroladas, por costos muy bajos.
El breakout sim800l que consegui no tiene salida ni entrada de audio por lo cual me limita solo a realizar llamadas y enviar y recibir mensajes.

Hoja de datos
http://www.seeedstudio.com/wiki/LoNet_-_GSM/GPRS/GPS_Breakout


  • Quad-band 850/900/1800/1900MHz( cuatribanda para 2G y 3G)
  • GPRS multi-slot class12 connectivity: max. 85.6kbps(down-load/up-load)
  • GPRS mobile station class B
  • Controlled by AT Command (3GPP TS 27.007, 27.005 and SIMCOM enhanced AT Commands)
  • Supports charging control for Li-Ion battery
  • Supports Real Time Clock
  • Supply voltage range 3.4V ~ 4.4V (muy importante recomendado 4.2)
  • Integrated GPS/CNSS and supports A-GPS
  • Supports 3.0V to 5.0V logic level (conversion TTL 3vcc a 5vvcc)
  • Low power consumption, 1mA in sleep mode
  • Supports GPS NMEA protocol
  • Compact size 27mm x 46mm x 10mm
  • Standard SIM Card



  • Diagrama de conexion
    este diagrama de conexion es bastante bueno tuve inconvenientes para hacerlo funcionar consejo hay que alimentarlo con una fuente estable alrededor de 4.2vcc@800mA ya sea una bateria LIPO o una fuente regulada no usar la alimentacion de arduino porque funciona pero no adecuadamente ya que el sim800 tiene un ESD el cual si detecta baja o alta tension se desconecta o reinicia... (Proteccion por alto o vajo voltaje) el cual es muy buena funcion ya que nos asegura no dañarlo muy importanto leer lo que responde por la consola serie


    Fuente switching  ---->sim800l -->arduino o esp8266



    El primer ejemplo lo conectas direscto al uC le bajas el codigo de FONA o el tuyo y ya esta.
    El segundo te conectas con un USB-FT232 y desde una consola ya sea en win o linux abris la terminal en /dev/usb te conectas con baudrate 9600 y tenes que ingrasar los comandos AT.


    PDF con todos los comandos AT
    http://www.seeedstudio.com/wiki/images/5/51/SIM800_ATCommand_Manual_V1.02.pdf

    Aca hay muhca info.
    http://www.seeedstudio.com/wiki/LoNet_-_GSM/GPRS/GPS_Breakout

    En cuanto a librerias deberian descargar la ultima verision del IDE para arduino ya que hubieron muchos cambios en las librerias y soporte para hardware han agregado el soporte para los esp8266 esta mi querido souliss(framework domotica) y muchas otras placas

    Esta libreria de ADAFRUIT es recomenda ya que esta completa poder realizar llamadas enviar sms y conectarte a internet solo funciona con la version del IDE nueva de arduino
    https://github.com/adafruit/Adafruit_FONA_Library (ya tiene implementado los comandos AT)
    este es un codigo de ejemplo para mi alrma ya que fona tiene cosas que no voy a ocupar pero para hacer pruebas y sacar el codigo que necesitas te sirve.

    https://github.com/pablinn/sim800_v2

    Video demo de sim800l usando FONA_Library


    Sldos.....


    Agregado de protocolos TCP
    Desarrollo de libreria con soporte "HTTP GET y POST" le falta mucho pero me gusta como esta quedando.

    *modo debug o logico(ver las respuestas AT o solo los estado True o False) para poder hacer tu programa basado en estados(maquina de estados )
    *generar una clase
    *soporte para TCP/IP o UDP/IP
    *"HTTP GET o POST "

    https://github.com/pablinn/sim800v3.git


    Saludos....

    Envio de mensajes
    Una forma simple y sencilla de mandar mensaje con la librería que estoy haciendo de ultima borra el resto y deja la que necesitas me imagino que es para automatización.

    4.2@800mA (estables con esto y ya lo charle en el grupo de whatsapp debe ser fijo no debe variar sino se desconecta de la red)

    AT+CBC   --> indica la tension 0,100,4212 (0, 100 % carga de la bateria , tension en milivolt)

     una vez conecatado a la red demora 3 segundos revisar con

    AT+COPS=? redes disponibles
    AT+COPS?  red conectada
    AT+CGREG?

    Mandar mensaje conectado a la red movil (unifon - movistar / CTImovil - claro)

    AT+CMGF=1
    AT+CMGS=\"+54299xxxxx\"  (el cel es con cod \"+pais-area-celular\")
    te devuelve >
    mandas el msj y terminas con control Z
    escribir (0x1A)

    en la libreria sim800v3 el cual esta funcionando la probamos en varios celulares un compañero colombiano logro automatizar una cerradura desde su celular asi que funciona si no es otra cosa..
    Ademas te podes conectar a internet usando TCP/IP UDP/IP HTTP  FTP EMAIL POP funciones de RADIO FM :) aun no termino ya estoy mareado :O

        //CMGS_SMS("+54299xxxxx","Hola Mundo");

    tener en cuenta la tension revisar con AT+CBC varias veces no debe variar o se resetea o desconecta.

    Saludos.

    Bueno nada nuevo a lo mucho que hay solo el montaje final un arduino nano los dos PIR por las interrupciones del nano para ponerlo en modo sleep y ahorrar el consumo de la bateria.



    Saludos..

    1 comentario:

    1. hola como esta, espero me pueda ayudar tengo un proyecto con el modulo GSM A7 para que con una llamada telefónica se abran dos portones, funciona perfecto. Por costos compre el GSM 800L y no he podido lograr que se conecte a la red, se reinicia a cada rato, le coloque un step down, que se alimenta con 5V 2A y lo bajo a 4.2V como lo recomiendan, pero aun asi no se conecta, con el multímetro testeo la entrada al modulo y tiene picos mientras titila y cuando deja de hacerlo el voltaje cae a menos de 4V, no se si debería mantenerse en los 4.2V que salen del step down, espero haberme explicado bien y que puedas ayudarme, gracias de antemano

      ResponderBorrar