Altímetro con MPL3115 a Serie OTG de Teléfono

          Aprovechando la excelente sensibilidad barométrica del módulo MPL3115, se usa como altímetro con un Nodemcu que envía los datos a través de un conector serial-OTG al teléfono Android. 

         Aquí algunas de sus características.
               
           Interface I2C
           Precisión de presión de ±0.05kPa
           Precisión de altitud de ±0.3m
           Precisión de temperatura de ±3C
          
         He usado un Nodemcu por su pequeño tamaño y por su lógica de 3,3 voltios necesaria para el MPL3115. He montado ambos en una placa reciclada de anterior montaje sobre caídas. Pueden soldarse juntos de forma muy compacta e incluir el OTG en una mini caja.
         El adaptador OTG que he usado tiene conectores macho USB C, micro y otro hembra normal, que para largos periodos de uso serviría para alimentar todo con un USB macho-macho a un powerbank. En vez de este OTG, por supuesto puede usarse uno de cable largo.
          La conexión del MPL3115 es por I2C  conectando SDA a D2 y SCL a D1 y alimentado con los 3,3v del Nodemcu       

          El programa para el Nodemcu es muy sencillo. Carga la librería del sensor y la de WIFI para poder desconectarla, ya que su consumo es elevado y descargaría el teléfono. Así el consumo queda en unos 10mA. 

          Se capturan los tres datos que proporciona el MPL3115, temperatura, presión atmoférica y altura. Tener en cuenta que la altura se determina en base a la presión y esta no es fija ya que depende de la meteorología lo que nos puede dar alturas "falsas" de varios metros.

          El sensor, por tanto no es exacto pero si muy preciso de tal forma que detecta perfectamente variaciones de presión (altura) cuando hace viento fuerte o simplemente elevando o bajando el sensor con la mano alturas de +-30cm. 

          Por último se envían los datos en formato String y separados por comas al teléfono via Serial OTG.
#include <Wire.h>
#include <Adafruit_MPL3115A2.h>
#include <ESP8266WiFi.h>

Adafruit_MPL3115A2 baro = Adafruit_MPL3115A2();

String todo;

void setup() {
Serial.begin(9600);
WiFi.mode(WIFI_AP);
WiFi.mode(WIFI_OFF);  //Apaga el wifi
WiFi.forceSleepBegin(); //Consumo inferior a 10mA
}

void loop() {
  if (! baro.begin()) {
    Serial.println("No se detecta el sensor");
    return;
  }
 
  float pascals = baro.getPressure();
  pascals=(pascals/100);   //Pasa a hectopascales
  String Spascals=String(pascals,1);  //Deja solo un decimal
//  Serial.print(Spascals); Serial.println(" hPa");
  float altm = baro.getAltitude();
// Serial.print(altm); Serial.println(" meters");
  float tempC = baro.getTemperature();
//  Serial.print(tempC); Serial.println("*C");
  todo = Spascals + "," + (String) altm + "," + (String) tempC;
  Serial.print(todo);
  delay(1000);
}
          Montaje muy sencillo. El OTG conectado al Nodemcu con micro USB y al teléfono Android con USB C.
         
             La APP para Android es AltimetroOTG. Programada para la resolución de mi teléfono 1080x1920 píxeles (lo siento)

             Primero se inicializa el Serial con el botón superior derecho, después con el izquierdo se abre y ya se comienzan a recibir los datos del montaje. 

             La Altura se supone que es la real en base a la presión atmosférica actual, pero con el error debido a su variabilidad.

             Si pulsamos Reset AR
el valor en Altura Relativa será cero, lo que nos permite ver las variaciones que tengamos desde donde nos encontremos ahora y así serán reflejadas en la gráfica inferior.

             La gráfica puede activarse o ponerse en Pausa así como comenzar de nuevo con Reset Graf.

             Podemos seleccionar cada cuantos segundos la gráfica toma un nuevo valor. La elección puede variar en función de si vamos a pie o en automóvil.

             Y finalmente la altura máxima medible en el eje Y.

             La gráfica es continua, es decir, se "mueve" hacia la izquierda si se llena de valores para admitir nuevos.

             La captura de pantalla es la subida desde el garaje a un sexto piso y descenso.
            

             Arrancar primero la APP, conectar el montaje, pulsar IniciarOTG y Pulsar para abrirlo. Si aparece un error, ignorarlo pulsando en otro lugar de la pantalla.


            Descargar  AltimetroOTG
          Reconocimiento a la página http://kio4.com/index.htm por su base de conocimiento.



Menu