temperature and pressure sensor

Dependencies:   BMP180 beep N5110 PowerControl mbed

Revision:
0:0d59691c1dd5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue May 12 23:00:47 2015 +0000
@@ -0,0 +1,113 @@
+/**
+@file main.cpp
+@brief Program implementation
+
+*/
+
+#include "main.h"
+
+
+
+void buttonPressed() {
+    buttonFlag=!buttonFlag;
+    }
+
+int main()
+{
+
+    /// initiliase the barometer
+
+    bmp180.init();
+    lcd.init(); // initialise display
+
+    lcd.printString("Welcome to",15,1); // display text on screen
+    lcd.printString("Weather Station",20,2);
+    lcd.printString("Project",6,3);
+    lcd.printString("Tarek I. AlKurdi",0,5);
+    wait(5.0); // wait for 5 seconds before refreshing the LCD to display the temperature
+
+    lcd.clear();
+    lcd.refresh();
+    
+    
+    button.rise(&buttonPressed);
+    
+        while(1) {
+            
+            lcd.setBrightness(1.0); // put LED backlight on full
+            
+            P = mypotentiometer; 
+            lcd.setBrightness(P);
+
+            if(buttonFlag) {
+                
+                
+                lcd.clear();
+                lcd.refresh();
+                
+                char buffer[14];
+                
+                Measurement value;  // measurement structure declared in BMP180 class
+                value = bmp180.readValues(); 
+                wait(0.1);
+                
+                int length = sprintf(buffer, "T = %.2f K", value.temperature+273); // configuration of celsis to kelvin conversion
+                if (length <= 14)
+                    lcd.printString(buffer,0,1);// display value on LCD screen
+                wait(0.1);
+
+                length = sprintf(buffer, "P =%.2f P", value.pressure/1000); // coverting mili Pascal to pascal
+                if (length <=14)
+                    lcd.printString(buffer,0,2); // display the value on the LCD screen
+                wait(0.1);
+                
+            } 
+            else{
+                
+                lcd.clear();
+                lcd.refresh(); // refresh the screen 
+                
+                char buffer[14];
+                
+                Measurement value;  // measurement structure declared in BMP180 class
+                value = bmp180.readValues();  // set the value to the sensors reading
+                wait(0.1);
+
+                int length = sprintf(buffer, "T = %.2f C", value.temperature);
+                if (length <= 14)
+                    lcd.printString(buffer,0,1); // Display the temperature on the first line
+                wait(0.1);
+
+                length = sprintf(buffer, "P =%.2f mP", value.pressure); // Display the pressure on the 2nd line under the temp.
+                if (length <=14)
+                    lcd.printString(buffer,0,2);
+                wait(0.1);
+                //lcd.refresh();
+            }
+            
+            Measurement value;  // measurement structure declared in BMP180 class
+            value = bmp180.readValues(); // set values of sensor reading on the screen
+            wait(0.1);
+            
+
+            if (value.temperature>22 && value.temperature<=28)  { // if the temp is between 22 and 28 celsius 
+                greenled= 0; // LED OFF
+                redled=1;  // LED ON
+            }
+
+            else if (value.temperature>28 && value.temperature<=31) { // if temp. between 28 and 31 celsius
+                greenled=1; //LED ON
+                redled=0;  // LED OFF
+            }
+            
+            else {
+                greenled=0; // LED OFF
+                redled=0;  // LED OFF
+                buzzer.beep(1000,0.5);  // Buzzer will be activated when the temp increases above 31 celsius
+            }
+
+            wait(0.01);
+
+        }
+
+    }
\ No newline at end of file