Fet

Dependencies:   mbed BMP180

Committer:
sugihara0312
Date:
Sat Nov 28 08:44:03 2020 +0000
Revision:
0:c2d05d76f730
Child:
1:d51aa991d297
pi

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sugihara0312 0:c2d05d76f730 1 #include "mbed.h"
sugihara0312 0:c2d05d76f730 2 #include "BMP180.h"
sugihara0312 0:c2d05d76f730 3 #include <math.h>
sugihara0312 0:c2d05d76f730 4
sugihara0312 0:c2d05d76f730 5 #define PIN_SDA D4
sugihara0312 0:c2d05d76f730 6 #define PIN_SCL D5
sugihara0312 0:c2d05d76f730 7 Serial pc(SERIAL_TX,SERIAL_RX,921600);
sugihara0312 0:c2d05d76f730 8 Serial xbee(D1,D0);
sugihara0312 0:c2d05d76f730 9
sugihara0312 0:c2d05d76f730 10 int main(){
sugihara0312 0:c2d05d76f730 11 float x8;
sugihara0312 0:c2d05d76f730 12
sugihara0312 0:c2d05d76f730 13 BMP180 bmp180(PIN_SDA,PIN_SCL);
sugihara0312 0:c2d05d76f730 14 float pressure,temperature,altitude;
sugihara0312 0:c2d05d76f730 15 xbee.printf("\rstart!\n\r");
sugihara0312 0:c2d05d76f730 16 bmp180.Initialize(27,BMP180_OSS_ULTRA_HIGH_RESOLUTION);//27は府大の海抜高度
sugihara0312 0:c2d05d76f730 17 xbee.printf("initialization complete!\n\r");
sugihara0312 0:c2d05d76f730 18
sugihara0312 0:c2d05d76f730 19 while(1){
sugihara0312 0:c2d05d76f730 20 if(bmp180.ReadData(&temperature,&pressure)){
sugihara0312 0:c2d05d76f730 21 float x4,x5,x6,x7,a,b;
sugihara0312 0:c2d05d76f730 22 a = pressure;
sugihara0312 0:c2d05d76f730 23 b = temperature;
sugihara0312 0:c2d05d76f730 24 x4 = 1019.11 / a; //海面気圧を気圧でわる
sugihara0312 0:c2d05d76f730 25 x5 = powf(x4, 0.1902225); //5.257ぶんの1
sugihara0312 0:c2d05d76f730 26 x6 = 273.15 + b; //絶対温度
sugihara0312 0:c2d05d76f730 27 x7 = (x5 - 1) * x6;
sugihara0312 0:c2d05d76f730 28 x8 = x7 / 0.0065;
sugihara0312 0:c2d05d76f730 29 altitude = x8;
sugihara0312 0:c2d05d76f730 30
sugihara0312 0:c2d05d76f730 31
sugihara0312 0:c2d05d76f730 32 xbee.printf("Altitude(m)\t:%.3f\n\r",altitude);
sugihara0312 0:c2d05d76f730 33 xbee.printf("--------------------------------\n\r");
sugihara0312 0:c2d05d76f730 34 wait(1);
sugihara0312 0:c2d05d76f730 35 break;
sugihara0312 0:c2d05d76f730 36 }else{
sugihara0312 0:c2d05d76f730 37 xbee.printf("NO DATA\n\r");
sugihara0312 0:c2d05d76f730 38 xbee.printf("---------------------------\n\r");
sugihara0312 0:c2d05d76f730 39 wait(1);
sugihara0312 0:c2d05d76f730 40 }
sugihara0312 0:c2d05d76f730 41 }
sugihara0312 0:c2d05d76f730 42 while(1){
sugihara0312 0:c2d05d76f730 43 if(bmp180.ReadData(&temperature,&pressure)){
sugihara0312 0:c2d05d76f730 44 float y4,y5,y6,y7,y8,c,d;
sugihara0312 0:c2d05d76f730 45 float speed;
sugihara0312 0:c2d05d76f730 46
sugihara0312 0:c2d05d76f730 47 c = pressure;
sugihara0312 0:c2d05d76f730 48 d = temperature;
sugihara0312 0:c2d05d76f730 49 y4 = 1019.11 / c; //海面気圧を気圧でわる
sugihara0312 0:c2d05d76f730 50 y5 = powf(y4,0.1902225);
sugihara0312 0:c2d05d76f730 51 y6 = 273.15 + d;
sugihara0312 0:c2d05d76f730 52 y7 = (y5 - 1) * y6;
sugihara0312 0:c2d05d76f730 53 y8 = y7 / 0.0065;
sugihara0312 0:c2d05d76f730 54 altitude = y8;
sugihara0312 0:c2d05d76f730 55 speed = (x8 - y8)/1;
sugihara0312 0:c2d05d76f730 56
sugihara0312 0:c2d05d76f730 57 xbee.printf("Altitude(m)\t:%.3f\n\r",altitude);
sugihara0312 0:c2d05d76f730 58 xbee.printf("Speed(m/s)\t:%.3f\n\r",speed);
sugihara0312 0:c2d05d76f730 59 xbee.printf("--------------------------------\n\r");
sugihara0312 0:c2d05d76f730 60 x8 = y8;
sugihara0312 0:c2d05d76f730 61 wait(1);
sugihara0312 0:c2d05d76f730 62 if(altitude==0){
sugihara0312 0:c2d05d76f730 63 break;
sugihara0312 0:c2d05d76f730 64 }}
sugihara0312 0:c2d05d76f730 65 else{
sugihara0312 0:c2d05d76f730 66 xbee.printf("NO DATA\n\r");
sugihara0312 0:c2d05d76f730 67 wait(1);
sugihara0312 0:c2d05d76f730 68 }
sugihara0312 0:c2d05d76f730 69 }
sugihara0312 0:c2d05d76f730 70
sugihara0312 0:c2d05d76f730 71 return 0;
sugihara0312 0:c2d05d76f730 72 }