En este post se explica cómo construir un sencillo barómetro con conexión GSM que presenta las medidas de la presión, la temperatura y la humedad en un display LCD y que trasmite dichos datos, mediante un chip de telefonía móvil SIM800H de ARDAFRUIT , a un servidor donde un script PHP se encarga de salvarlos  en un fichero al que cualquiera   puede acceder remotamente, siempre   que  tenga los permisos requeridos. Este proyecto es por así decirlo una mezcla de dos proyectos presentados previamente, BAROMETRO WIFI ( https://blog.e-ao.org/?p=17 )  y  BAROMETRO SMS ( https://blog.e-ao.org/?p=15 ) donde a nivel de medida y display se usan los mismos recursos que en el caso del BAROMETRO WIFI y para la conexión a INTERNET se utiliza el mismo chip telefónico del proyecto BAROMETRO SMS, pero con la diferencia que en este caso el chip de telefonía móvil se va utilizar para llevar a  cabo una conexión internet.

Para la realización de este proyecto (que montaremos sobre una placa de prueba PROTOBOARD )  utilizaremos los siguientes dispositivos (figura 1):

  • Una placa ARDUINO MEGA 2560
  • Un microchip  BME280
  • Un display LCD de 4 líneas con conexión I2C
  • Un chip de telefonía móvil SIM800H

Como en  nuestro precedente proyecto tanto el display LCD  como el chip barométrico BME280 tienen conexión I2C  y tras ser alimentados con 5 V deberán  conectarse a los PINES 20 y 21 ( SDA y SCL ) de la placa ARDUINO. Para saber en qué dirección concreta cada uno de estos dos dispositivos se conecta, usaremos el programa “I2C_scanner” para ARDUINO, programa que podremos encontrar por ejemplo en esta dirección: https://github.com/todbot/arduino-i2c-scanner . En nuestro caso el LCD se instala en la dirección “0x27” y el chip BME280 en la dirección “0x76” de la conexión I2C.

La placa SIM800H la hemos conectado de la siguiente manera (https://learn.adafruit.com/adafruit-fona-mini-gsm-gprs-cellular-phone-module ), como ya se explicó en el proyecto Barómetro SMS.  

  • La toma VIN  de la placa SIM800H  a 5V de la placa ARDUINO MEGA y su GND al GND del ARDUINO MEGA
  • Las conexiones TX y RX del SIM800H se han conectado respectivamente al RX y TX del Serial3 de la placa ARDUINO MEGA (pines 14 y 15 marcados en la placa ARDUINO como TX3 y RX3 respectivamente )
  • Se ha conectado así mismo un batería de 3,7 voltios (del mismo tipo de las que usan en un teléfono móvil) a la toma marcada como TOMA 1 en la figura 1. Esta batería se puede recargar mediante el conector micro-USB de la misma placa.

A diferencia del proyecto de Barómetro SMS, aquí el chip SIM800H, se utilizará para establecer una conexión internet a un servidor donde un programa desarrollado en el lenguaje PHP, similar al utilizado en el proyecto BAROMETRO WIFI. La figura 1 presenta una foto completa del dispositivo antes de su empaquetamiento en una caja.



Figura 1. Foto del dispositivo antes de su empaquetamiento en una caja

El conjunto de instrucciones ARDUINO necesarias para realizar los procesos requeridos en este barómtro ( lectura de datos , presentación de los mismos en el display y conexión al servidor) se pueden bajar de este link  ( http://e-ao.org/Apuntes/barometro_GSM.txt ).

El conjunto de instrucciones usadas para establecer la conexión internet mediante nuestro chip SIM800H se presentan a continuación:

AT

Instrucción para comprobar que el chip SIM800H está funcionando en una red de telefonía y que nos devolverá un OK si todo es correcto

AT+COPS?

Instrucción que nos responderá a que red se ha conectado la tarjeta SIM del SIM880H. Esta instrucción nos devuelve si todo es correcto +COPS:0,0, “RED_DE TELEFONIA MOVIL”

AT+SAPBR=0,1

Instrucción que cerrará la conexión internet. Nos devolverá un OK

AT+SAPBR=1,1

Instrucción que abrirá la conexión internet. Nos devolverá un OK

AT+SAPBR=2,1

Instrucción que nos devolverá la direccion ip de nuestro teléfono móvil con el texto +SAPBR=2,1,”DIRECCION IP”

AT+SAPBR=3,1,”APN”,”WWW”

Instruccíón que indicará el modo de conexión INTERNET, y que devuelve un OK

AT+HTTPINIT

Instrucción para inicializar .Aunque suele devolver ERROR es conveniente para iniciar el modo de transmisión INTERNET por si se hubiera desactivado

AT+HTTPPARA=”CID”,1

Instrucción que permite iniciar la conexión al programa instalado en el servidor. Nos devolverá un OK

AT+HTTPPARA=”URL”,”http://URL_DEL_SERVIDOR_DESTINO /posted_2.php?valor=DATA”

Instrucción para enviar el DATA correspondiente al programa PHP instalado en el servidor que lo guardará en un archivo del mismo

AT+HTTPACTION=1

Instrucción para comprobar que el envío ha sido correcto, devolverá un OK o un texto como +HTTPACTION=200,1 si el envío se ha ejecutado correctamente