example code to display mpl1152a data on a jhd 162a 16x2 lcd display

Dependencies:   mbed mpl115a2 BME280_SPI TextLCD

Revision:
3:99befa3962d4
Parent:
2:e1e9cca4d7e3
Child:
4:1775558d1a45
--- a/main.cpp	Mon Mar 30 12:33:24 2020 +0000
+++ b/main.cpp	Thu Apr 02 13:35:13 2020 +0000
@@ -1,6 +1,6 @@
 #include "mbed.h"
 #include "MPL115A2.h"
-#include "BME280.h"
+#include "BME280_SPI.h"
 #include "TextLCD.h"
 
 
@@ -8,26 +8,48 @@
 
 Serial pc(USBTX, USBRX); // tx, rx
 
-// MPL115A2 p_sensor(&i2c, &pc); //DEBUG verion
 MPL115A2 mpl_sensor(&i2c);
-//BME280 bme_sensor(p28, p27); // sda, scl
+
+BME280_SPI bme_sensor(p5, p6, p7, p8); // mosi, miso, sclk, cs
+
 TextLCD lcd(p24, p25, p26, p27, p28, p29); // rs, rw, e, d4, d5, d6, d7
-//TextLCD lcd(p21, p22, p23, p24, p25, p26); // rs, rw, e, d4, d5, d6, d7
+
+InterruptIn button(p11);
+bool display_hPa = true;
+const double hPa2cmH2O = 1.01974428892;
+
+void toggleDisplayFormat() {
+    display_hPa ^= display_hPa;
+}
 
 int main() {
 
-    mpl_sensor.begin();   
+    bool display_hPa = true;
+    
+    button.rise(&toggleDisplayFormat);
     
+    mpl_sensor.begin();       
+    
+    // main loop
     while(1) 
-    {
-        
+    {        
         mpl_sensor.ReadSensor();
         lcd.cls(); // WITHOUT THIS THE ENDLESS BEEP OCCURS
-        lcd.printf("%0.2f hPa\n%0.2f C  %\n", mpl_sensor.GetPressure(), mpl_sensor.GetTemperature());
-        wait(.1);    
-        //lcd.cls(); // WITHOUT THIS THE ENDLESS BEEP OCCURS
-        //lcd.printf("%0.2f hPa\n%0.2f C  %\n", bme_sensor.getPressure(), bme_sensor.getTemperature());  
-        //wait(1);
-        
+        if(display_hPa) {
+            lcd.printf("MPL: %4.4f hPa\nBME: %4.4f hPa%\n", 
+                        mpl_sensor.GetPressure(),
+                        bme_sensor.getTemperature());
+            pc.printf("MPL: %4.4f hPa\nBME: %4.4f hPa%\n", 
+                        mpl_sensor.GetPressure(),
+                        bme_sensor.getTemperature());
+        }
+        else {
+            lcd.printf("MPL: %4.4f cmH2O\nBME: %4.4f cmH2O%\n",
+                        (mpl_sensor.GetPressure() * hPa2cmH2O),
+                        (bme_sensor.getTemperature() * hPa2cmH2O));
+            pc.printf("MPL: %4.4f cmH2O\nBME: %4.4f cmH2O%\n",
+                        (mpl_sensor.GetPressure() * hPa2cmH2O),
+                        (bme_sensor.getTemperature() * hPa2cmH2O));
+        }      
     }
 }