Paso 2: Software
En el lado de Arduino, el software está dividido en varios archivos y están todos en la misma carpeta para que usted no necesita importar cualquier biblioteca en el IDE de Arduino. También hay un intermedio módulo I2C que trata de ofrecer un nivel más y abstracto I2C API que el Arduino uno.
La biblioteca es portada desde el proyecto más viejo, y es aún algo C a C++. Sólo ofrece las funciones, sin clases, pero esto está bien mientras no interfaz dos sensores BME280 (con direcciones diferentes) en el mismo MCU (y probablemente no). La ventaja de esta librería, en mi opinión, es que está optimizado para mayor velocidad y menor consumo de recursos. Una de las mejoras es que se reduce al mínimo el tráfico de I2C y esto debe hacer una diferencia (en implementaciones sin DMA) I2C es una de las interfaces más lentas.
La aplicación sólo inicializa el sensor realiza un sensor de leer cada 10ms y envía los datos a la interfase serial en este formato: temperatura, espacio, presión, espacio, humedad, nueva línea.
En el lado de PC tenemos un GUI hecho en v3 de procesamiento que abre un puerto serie para recibir los datos desde Arduino e inicializa una función callback que se divide la secuencia de datos para extraer los parámetros individuales y les empuja intro un búfer. En el bucle de draw() yo sólo trazar los datos y actualizar el último valor recibido (las etiquetas azules). La aplicación funciona, aunque a veces falla al inicio de la causa no trata las excepciones en el código y, eventualmente, otras razones. Si tiene problemas, puede probar a partir de la interfaz gráfica mientras mantiene el botón de reset de la Arduino y soltarlo cuando se haya iniciado la GUI. Esperemos que se soluciono esto en el futuro.
Usted puede encontrar el código para la aplicación de Arduino y la GUI de aquí: https://github.com/cosminp12/BME280-plotting-GUI