Blog Image

e-@

BARÓMETRO GSM DE TELEFONÍA MOVIL

blog Posted on Sat, May 02, 2020 13:33:20

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



LOS DATOS TAMBIEN SON MUSICA

blog Posted on Thu, February 27, 2020 19:44:53

Cualquier serie de datos puede convertirse en una melodía musical ya que cada nota musical de esa melodía puede identificarse con un número de una serie numérica concreta. En la actualidad los softwares y los instrumentos musicales comparten la codificación MIDI para poder emparejar música y números de una manera standard. En la figura 1 se puede ver la correspondencia entre números y notas musicales que se usa en dicha codificación MIDI.

Figura 1. Relación entre notas musicales y números en la codificación MIDI ( las notas  C, D, E…. se corresponden con las notas Do, Re, Mi…. Donde las primeras están en notación musical anglosajona y las segundas en notación latina)

Para poder convertir los datos en una pieza musical necesitamos un software con el que podamos programar la música correspondiente. En mi caso yo he usado Sonic Pi (https://sonic-pi.net/) con el que de manera muy sencilla podemos programar música mediante el uso de scripts que se pueden escribir en formato texto simple.   Un script básico para este software sería  por ejemplo  (https://sonic-pi.net/files/articles/Live-Coding-Education.pdf) :

play 70

sleep 1

play 75

sleep 0.5

play 82

sleep 1

Donde “play” es la instrucción con la que se toca una nota concreta cuyo número MIDI se escribe tras la instrucción y donde “sleep” es un tiempo de duración del mantenimiento de esa nota y que es proporcional   al “tempo” de la melodía (https://es.wikipedia.org/wiki/Tempo ), tempo  que se ajusta con la instrucción “use_bpm” .  El  tempo  representa la velocidad a la que se ejecutará la pieza musical  expresada en “beast per minute” . De esta manera, para crear una composición musical a partir de una serie de números o datos  con el software Sonic Pi, lo único que hay que hacer es convertir estos datos en los números MIDI  de las instrucciones play consecutivas de un script texto  que posteriormente el software Sonic Pi ejecutará.

Mis datos de partida fueron la serie de las medidas de temperaturas del aeropuerto de Vitoria que se pueden obtener en este link  http://weather.uwyo.edu/surface/meteorogram/europe.shtml  . Estos datos (http://e-ao.org/Apuntes/data_musica.xlsx  ) se corresponden con las medidas de temperatura tomadas cada media hora desde las 19:00 UTM del día 15 de noviembre de 2019 hasta las   19:30 UTM del día siguiente.

Para convertir en una melodía   cualquier serie de números o datos (como son en nuestro caso   la serie de los valores de temperaturas) es preciso utilizar algún algoritmo que transponga cada valor de temperatura (nuestros datos) en una nota MIDI. Este algoritmo debe tener en cuenta los valores máximos y mínimos de la serie, así como la elección de una octava musical adecuada para ejecutar la pieza musical resultante con un sonido que nos sea agradable (por  ejemplo  los de las  octavas centrales 5 o 6). El algoritmo usado en mi caso fue el siguiente:

                    Nota_musical= [(g/max-min)*(temp-min)]+cero                               (1)

Donde:

g= Factor para acomodar el máximo y el mínimo de las notas al máximo y el mínimo de las temperaturas (en nuestro caso g=9)

max y min : Temperaturas máxima y mínima de la serie

temp= Temperatura que se quiere convertir en una nota

cero= Valor MIDI de la nota musical de base que se corresponderá con la Temperatura mínima ( en nuestro caso se eligió 65 – nota F  de la octava 5 – )

Este algoritmo se construyó por tanteo tras varios ensayos previos. Evidentemente este algoritmo no puede ser usado de manera general ya que cada serie de datos particular debería ser convertida en una melodía mediante el uso de un algoritmo propio que consiga el mejor resultado musical posible. 

Para convertir la serie de temperaturas en la pieza musical final se ha usado un script desarrollado en R (https://www.r-project.org/) y que implementa el algoritmo (1) anteriormente descrito. Este script se puede obtener en http://e-ao.org/Apuntes/prog_datos_melod.txt

Mediante este programa en R se puede convertir la serie de valores de temperatura en un archivo texto simple  (script)  ejecutable desde Sonic Pi. Nuestro script de base era un conjunto de instrucciones play y sleep consecutivas en el que se habían  transformado   los números de la serie de temperaturas en una melodía escrita con el código numérico  MIDI. La figura 2 representa el inicio de este script Sonic Pi.

Figura 2. Parte inicial del script Sonic Pi obtenido con los datos de temperaturas y el programa R de transformación de números en notas MIDI

Este script, con la melodía básica,  se modificó añadiéndole algunos detalles rítmicos de sonidos de batería y  de bajos, para así obtener  un script final de Sonic Pi     que  sonara de manera  agradable    ( http://e-ao.org/Apuntes/musica_final3.txt ) . El resultado se grabó con el mismo software Sonic PI en formato WAV, formato que luego se convirtió a MP3. La pieza musical completa final se puede obtener en este link  http://e-ao.org/Apuntes/musica_final.mp3

Finalmente para editar un video donde se puedan ver los datos de manera animada junto a la música creada ( http://e-ao.org/Apuntes/video_datos_f.mp4 ) podremos usar PowerPoint para crear el video. A este video le añadiremos la música   mediante un editor de videos cualquiera (en mi caso yo usé Power Director) pero siempre teniendo en cuenta que hay que adecuar la duración de la animación a la duración de la música.

En PowerPoint la animación se consigue abriendo una diapositiva donde se pega la gráfica Excel correspondiente a los datos y luego se utiliza el menú de la pestaña de ANIMACIONES, donde tras marcar y señalar la gráfica insertada, se eligen las opciones adecuadas (Figura 3). Finalmente con el menú ARCHIVO del propio PowerPoint exportaremos el fichero a un formato MP4. El video así generado se puede editar con cualquier editor de videos y agregarle la música creada.

Figura 3.  En la pestaña ANIMACIONES   de   PowerPoint, y tras marcar la gráfica a animar proveniente de Excel, se pueden elegir las opciones que nos interesen (en nuestro caso Barrido y Duración 26.00 segundos) para obtener el video final.  El PowerPoint  de  esta  animación  se  encuentra  en este  link http://e-ao.org/Apuntes/animacion_datos.pptx