temperature and pressure sensor
Dependencies: BMP180 N5110 beep mbed
main.cpp@0:aadd841890b5, 2015-05-11 (annotated)
- Committer:
- laithnashashibi1
- Date:
- Mon May 11 23:50:39 2015 +0000
- Revision:
- 0:aadd841890b5
final code
Who changed what in which revision?
User | Revision | Line number | New 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 |