temperature and pressure sensor

Dependencies:   BMP180 N5110 beep mbed

Committer:
laithnashashibi1
Date:
Mon May 11 23:50:39 2015 +0000
Revision:
0:aadd841890b5
final code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
laithnashashibi1 0:aadd841890b5 1 /**
laithnashashibi1 0:aadd841890b5 2 @file main.cpp
laithnashashibi1 0:aadd841890b5 3
laithnashashibi1 0:aadd841890b5 4 @brief Program implementation
laithnashashibi1 0:aadd841890b5 5
laithnashashibi1 0:aadd841890b5 6 */
laithnashashibi1 0:aadd841890b5 7
laithnashashibi1 0:aadd841890b5 8 #include "main.h"
laithnashashibi1 0:aadd841890b5 9
laithnashashibi1 0:aadd841890b5 10
laithnashashibi1 0:aadd841890b5 11 int main()
laithnashashibi1 0:aadd841890b5 12 {
laithnashashibi1 0:aadd841890b5 13
laithnashashibi1 0:aadd841890b5 14 /// initiliase barometer
laithnashashibi1 0:aadd841890b5 15
laithnashashibi1 0:aadd841890b5 16 bmp180.init();
laithnashashibi1 0:aadd841890b5 17 lcd.init(); /// intialise display
laithnashashibi1 0:aadd841890b5 18
laithnashashibi1 0:aadd841890b5 19 buzzer.beep(1000,0.5);
laithnashashibi1 0:aadd841890b5 20 lcd.printString("Welcome to",0,1); /// display splash screen
laithnashashibi1 0:aadd841890b5 21 lcd.printString("My Temperature",0,2);
laithnashashibi1 0:aadd841890b5 22 lcd.printString("and Pressure",0,3);
laithnashashibi1 0:aadd841890b5 23 lcd.printString("Sensor",0,5);
laithnashashibi1 0:aadd841890b5 24 wait(3);
laithnashashibi1 0:aadd841890b5 25
laithnashashibi1 0:aadd841890b5 26 lcd.clear();
laithnashashibi1 0:aadd841890b5 27 lcd.refresh();
laithnashashibi1 0:aadd841890b5 28
laithnashashibi1 0:aadd841890b5 29
laithnashashibi1 0:aadd841890b5 30
laithnashashibi1 0:aadd841890b5 31
laithnashashibi1 0:aadd841890b5 32 while(1) {
laithnashashibi1 0:aadd841890b5 33
laithnashashibi1 0:aadd841890b5 34 if(button == 1) {
laithnashashibi1 0:aadd841890b5 35
laithnashashibi1 0:aadd841890b5 36 lcd.clear();
laithnashashibi1 0:aadd841890b5 37 lcd.refresh();
laithnashashibi1 0:aadd841890b5 38 char buffer[14];
laithnashashibi1 0:aadd841890b5 39 Measurement measurement; /// measurement structure declared in BMP180 class
laithnashashibi1 0:aadd841890b5 40 measurement = bmp180.readValues();
laithnashashibi1 0:aadd841890b5 41 wait(0.1);
laithnashashibi1 0:aadd841890b5 42
laithnashashibi1 0:aadd841890b5 43 int length = sprintf(buffer, "T = %.2f F", measurement.temperature*9/5+32); ///temp unit changed to F using the formula
laithnashashibi1 0:aadd841890b5 44 if (length <= 14)
laithnashashibi1 0:aadd841890b5 45 lcd.printString(buffer,0,1);
laithnashashibi1 0:aadd841890b5 46 wait(0.1);
laithnashashibi1 0:aadd841890b5 47
laithnashashibi1 0:aadd841890b5 48 length = sprintf(buffer, "P =%.2f b ", measurement.pressure/1000); /// pressure unit changed using /1000 to b
laithnashashibi1 0:aadd841890b5 49 if (length <=14)
laithnashashibi1 0:aadd841890b5 50 lcd.printString(buffer,0,2);
laithnashashibi1 0:aadd841890b5 51 wait(0.1);
laithnashashibi1 0:aadd841890b5 52
laithnashashibi1 0:aadd841890b5 53 }
laithnashashibi1 0:aadd841890b5 54 else{
laithnashashibi1 0:aadd841890b5 55 char buffer[14];
laithnashashibi1 0:aadd841890b5 56 Measurement measurement; /// measurement structure declared in BMP180 class
laithnashashibi1 0:aadd841890b5 57 measurement = bmp180.readValues();
laithnashashibi1 0:aadd841890b5 58 wait(0.1);
laithnashashibi1 0:aadd841890b5 59
laithnashashibi1 0:aadd841890b5 60 int length = sprintf(buffer, "T = %.2f C", measurement.temperature); /// temp unit in Celsius
laithnashashibi1 0:aadd841890b5 61 if (length <= 14)
laithnashashibi1 0:aadd841890b5 62 lcd.printString(buffer,0,1);
laithnashashibi1 0:aadd841890b5 63 wait(0.1);
laithnashashibi1 0:aadd841890b5 64
laithnashashibi1 0:aadd841890b5 65 length = sprintf(buffer, "P =%.2f mb ", measurement.pressure); /// pressure unit in mb
laithnashashibi1 0:aadd841890b5 66 if (length <=14)
laithnashashibi1 0:aadd841890b5 67 lcd.printString(buffer,0,2);
laithnashashibi1 0:aadd841890b5 68 wait(0.1);
laithnashashibi1 0:aadd841890b5 69 ///lcd.refresh();
laithnashashibi1 0:aadd841890b5 70 }
laithnashashibi1 0:aadd841890b5 71 Measurement measurement; /// measurement structure declared in BMP180 class
laithnashashibi1 0:aadd841890b5 72 measurement = bmp180.readValues();
laithnashashibi1 0:aadd841890b5 73 wait(0.1);
laithnashashibi1 0:aadd841890b5 74 temp=measurement.temperature;
laithnashashibi1 0:aadd841890b5 75
laithnashashibi1 0:aadd841890b5 76
laithnashashibi1 0:aadd841890b5 77
laithnashashibi1 0:aadd841890b5 78 if (measurement.temperature > 30) {
laithnashashibi1 0:aadd841890b5 79 myled= 0.0; /// LED off
laithnashashibi1 0:aadd841890b5 80 myled2=1.0; /// LED on
laithnashashibi1 0:aadd841890b5 81 buzzer.beep(1000,0.5); /// Buzzer on when temp is > 30
laithnashashibi1 0:aadd841890b5 82
laithnashashibi1 0:aadd841890b5 83 }
laithnashashibi1 0:aadd841890b5 84
laithnashashibi1 0:aadd841890b5 85
laithnashashibi1 0:aadd841890b5 86 else if (measurement.temperature < 25) {
laithnashashibi1 0:aadd841890b5 87 myled=1.0; /// led on
laithnashashibi1 0:aadd841890b5 88 myled2=0.0; /// led off
laithnashashibi1 0:aadd841890b5 89 }
laithnashashibi1 0:aadd841890b5 90
laithnashashibi1 0:aadd841890b5 91 else {
laithnashashibi1 0:aadd841890b5 92 myled=0.0; /// both leds are off when temp is between 25-30
laithnashashibi1 0:aadd841890b5 93 myled2=0.0;
laithnashashibi1 0:aadd841890b5 94 }
laithnashashibi1 0:aadd841890b5 95
laithnashashibi1 0:aadd841890b5 96
laithnashashibi1 0:aadd841890b5 97 lcd.setBrightness(1.0); /// put LED backlight on full
laithnashashibi1 0:aadd841890b5 98 V= mypotentiometer; /// potentiometer controls brightness of the screen
laithnashashibi1 0:aadd841890b5 99 lcd.setBrightness(V);
laithnashashibi1 0:aadd841890b5 100
laithnashashibi1 0:aadd841890b5 101 wait(0.01);
laithnashashibi1 0:aadd841890b5 102
laithnashashibi1 0:aadd841890b5 103 }
laithnashashibi1 0:aadd841890b5 104
laithnashashibi1 0:aadd841890b5 105 }
laithnashashibi1 0:aadd841890b5 106
laithnashashibi1 0:aadd841890b5 107
laithnashashibi1 0:aadd841890b5 108
laithnashashibi1 0:aadd841890b5 109