joseph adamu
/
cw_final_thr1
coursework
sensor_data.h@1:dc648c5624b9, 2018-01-10 (annotated)
- Committer:
- joseph_adamu
- Date:
- Wed Jan 10 09:50:29 2018 +0000
- Revision:
- 1:dc648c5624b9
- Child:
- 2:54c537a2569a
version for export
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
joseph_adamu | 1:dc648c5624b9 | 1 | #include "mbed.h" |
joseph_adamu | 1:dc648c5624b9 | 2 | #include "BMP280.h" |
joseph_adamu | 1:dc648c5624b9 | 3 | #include "calender_operation.h" |
joseph_adamu | 1:dc648c5624b9 | 4 | float getTemperature_bmp280; // Read the current Temperature value from BME280 sensor |
joseph_adamu | 1:dc648c5624b9 | 5 | float getPressure_bmp280; // Read the current humidity value (humidity %) from BME280 sensor |
joseph_adamu | 1:dc648c5624b9 | 6 | float fLDR; // Read the current light intensity value from LDR sensor |
joseph_adamu | 1:dc648c5624b9 | 7 | float temperature_data [120], pressure_data[120], LDR_data[120]; |
joseph_adamu | 1:dc648c5624b9 | 8 | BMP280 bmp280(D14,D15,0x77); //Assigning the pin for BMP280 Pressure sensor |
joseph_adamu | 1:dc648c5624b9 | 9 | |
joseph_adamu | 1:dc648c5624b9 | 10 | AnalogIn LDR(A1); //Assigning the pin for LDR |
joseph_adamu | 1:dc648c5624b9 | 11 | int counter_store = 0, full = 0, day, month, year, leap; |
joseph_adamu | 1:dc648c5624b9 | 12 | |
joseph_adamu | 1:dc648c5624b9 | 13 | //***** setting up the time ************ |
joseph_adamu | 1:dc648c5624b9 | 14 | // h/hh/mi/mni/s/ss |
joseph_adamu | 1:dc648c5624b9 | 15 | // h=> first integer value of the Hour |
joseph_adamu | 1:dc648c5624b9 | 16 | // hh=> second integer value of the Hour |
joseph_adamu | 1:dc648c5624b9 | 17 | // mi=> first integer value of the Minutes |
joseph_adamu | 1:dc648c5624b9 | 18 | // mni=> second integer value of the Minutes |
joseph_adamu | 1:dc648c5624b9 | 19 | // s=> first integer value of the Seconds |
joseph_adamu | 1:dc648c5624b9 | 20 | // ss => second integer value of the Seconds |
joseph_adamu | 1:dc648c5624b9 | 21 | void time_rule() |
joseph_adamu | 1:dc648c5624b9 | 22 | { |
joseph_adamu | 1:dc648c5624b9 | 23 | if (ss == 10) |
joseph_adamu | 1:dc648c5624b9 | 24 | { |
joseph_adamu | 1:dc648c5624b9 | 25 | ss = 0; |
joseph_adamu | 1:dc648c5624b9 | 26 | s++; |
joseph_adamu | 1:dc648c5624b9 | 27 | } |
joseph_adamu | 1:dc648c5624b9 | 28 | |
joseph_adamu | 1:dc648c5624b9 | 29 | if (s == 6 && ss == 1) |
joseph_adamu | 1:dc648c5624b9 | 30 | { |
joseph_adamu | 1:dc648c5624b9 | 31 | ss = 1; |
joseph_adamu | 1:dc648c5624b9 | 32 | s = 0; |
joseph_adamu | 1:dc648c5624b9 | 33 | mmi++; |
joseph_adamu | 1:dc648c5624b9 | 34 | } |
joseph_adamu | 1:dc648c5624b9 | 35 | |
joseph_adamu | 1:dc648c5624b9 | 36 | if (mmi == 10) |
joseph_adamu | 1:dc648c5624b9 | 37 | { |
joseph_adamu | 1:dc648c5624b9 | 38 | mmi = 0; |
joseph_adamu | 1:dc648c5624b9 | 39 | mi++; |
joseph_adamu | 1:dc648c5624b9 | 40 | } |
joseph_adamu | 1:dc648c5624b9 | 41 | |
joseph_adamu | 1:dc648c5624b9 | 42 | if (mi == 6 && mmi == 1) |
joseph_adamu | 1:dc648c5624b9 | 43 | { |
joseph_adamu | 1:dc648c5624b9 | 44 | mi = 0; |
joseph_adamu | 1:dc648c5624b9 | 45 | mmi = 1; |
joseph_adamu | 1:dc648c5624b9 | 46 | hh++; |
joseph_adamu | 1:dc648c5624b9 | 47 | } |
joseph_adamu | 1:dc648c5624b9 | 48 | |
joseph_adamu | 1:dc648c5624b9 | 49 | if (hh == 10) |
joseph_adamu | 1:dc648c5624b9 | 50 | { |
joseph_adamu | 1:dc648c5624b9 | 51 | hh = 0; |
joseph_adamu | 1:dc648c5624b9 | 52 | h++; |
joseph_adamu | 1:dc648c5624b9 | 53 | } |
joseph_adamu | 1:dc648c5624b9 | 54 | |
joseph_adamu | 1:dc648c5624b9 | 55 | if(h == 2 && hh == 4) |
joseph_adamu | 1:dc648c5624b9 | 56 | { |
joseph_adamu | 1:dc648c5624b9 | 57 | h = 0; |
joseph_adamu | 1:dc648c5624b9 | 58 | hh = 0; |
joseph_adamu | 1:dc648c5624b9 | 59 | dd++; |
joseph_adamu | 1:dc648c5624b9 | 60 | } |
joseph_adamu | 1:dc648c5624b9 | 61 | } |
joseph_adamu | 1:dc648c5624b9 | 62 | |
joseph_adamu | 1:dc648c5624b9 | 63 | /********* Setting the date up *********/ |
joseph_adamu | 1:dc648c5624b9 | 64 | void date_rule() |
joseph_adamu | 1:dc648c5624b9 | 65 | { |
joseph_adamu | 1:dc648c5624b9 | 66 | if (mm == 10) |
joseph_adamu | 1:dc648c5624b9 | 67 | { |
joseph_adamu | 1:dc648c5624b9 | 68 | mm = 0; |
joseph_adamu | 1:dc648c5624b9 | 69 | m++; |
joseph_adamu | 1:dc648c5624b9 | 70 | } |
joseph_adamu | 1:dc648c5624b9 | 71 | |
joseph_adamu | 1:dc648c5624b9 | 72 | if (m == 1 && mm == 3) |
joseph_adamu | 1:dc648c5624b9 | 73 | { |
joseph_adamu | 1:dc648c5624b9 | 74 | m = 0; |
joseph_adamu | 1:dc648c5624b9 | 75 | mm = 1; |
joseph_adamu | 1:dc648c5624b9 | 76 | yyyy++; |
joseph_adamu | 1:dc648c5624b9 | 77 | } |
joseph_adamu | 1:dc648c5624b9 | 78 | |
joseph_adamu | 1:dc648c5624b9 | 79 | if (yyyy== 10) |
joseph_adamu | 1:dc648c5624b9 | 80 | { |
joseph_adamu | 1:dc648c5624b9 | 81 | yyyy = 0; |
joseph_adamu | 1:dc648c5624b9 | 82 | yyy++; |
joseph_adamu | 1:dc648c5624b9 | 83 | } |
joseph_adamu | 1:dc648c5624b9 | 84 | if (yyy == 10) |
joseph_adamu | 1:dc648c5624b9 | 85 | { |
joseph_adamu | 1:dc648c5624b9 | 86 | yyy = 0; |
joseph_adamu | 1:dc648c5624b9 | 87 | yy++; |
joseph_adamu | 1:dc648c5624b9 | 88 | } |
joseph_adamu | 1:dc648c5624b9 | 89 | if (yy == 10) |
joseph_adamu | 1:dc648c5624b9 | 90 | { |
joseph_adamu | 1:dc648c5624b9 | 91 | yy = 0; |
joseph_adamu | 1:dc648c5624b9 | 92 | y++; |
joseph_adamu | 1:dc648c5624b9 | 93 | } |
joseph_adamu | 1:dc648c5624b9 | 94 | |
joseph_adamu | 1:dc648c5624b9 | 95 | } |
joseph_adamu | 1:dc648c5624b9 | 96 | |
joseph_adamu | 1:dc648c5624b9 | 97 | |
joseph_adamu | 1:dc648c5624b9 | 98 | void day_check() |
joseph_adamu | 1:dc648c5624b9 | 99 | { |
joseph_adamu | 1:dc648c5624b9 | 100 | day = 10*d + dd; |
joseph_adamu | 1:dc648c5624b9 | 101 | month = mi*10+mmi; |
joseph_adamu | 1:dc648c5624b9 | 102 | year = y*1000+yy*100+yyy*10+yyyy; |
joseph_adamu | 1:dc648c5624b9 | 103 | if((month == 1)||(month ==3)||(month ==5)||(month ==7)||(month ==8)||(month ==10)||(month ==12)) |
joseph_adamu | 1:dc648c5624b9 | 104 | { |
joseph_adamu | 1:dc648c5624b9 | 105 | if (day == 32) |
joseph_adamu | 1:dc648c5624b9 | 106 | { |
joseph_adamu | 1:dc648c5624b9 | 107 | mm++; |
joseph_adamu | 1:dc648c5624b9 | 108 | d = 0; |
joseph_adamu | 1:dc648c5624b9 | 109 | dd = 1; |
joseph_adamu | 1:dc648c5624b9 | 110 | } |
joseph_adamu | 1:dc648c5624b9 | 111 | } |
joseph_adamu | 1:dc648c5624b9 | 112 | |
joseph_adamu | 1:dc648c5624b9 | 113 | else if(month == 4||6||9||11 ) |
joseph_adamu | 1:dc648c5624b9 | 114 | { |
joseph_adamu | 1:dc648c5624b9 | 115 | if (day == 31) |
joseph_adamu | 1:dc648c5624b9 | 116 | { |
joseph_adamu | 1:dc648c5624b9 | 117 | mm++; |
joseph_adamu | 1:dc648c5624b9 | 118 | d = 0; |
joseph_adamu | 1:dc648c5624b9 | 119 | dd = 1; |
joseph_adamu | 1:dc648c5624b9 | 120 | } |
joseph_adamu | 1:dc648c5624b9 | 121 | } |
joseph_adamu | 1:dc648c5624b9 | 122 | |
joseph_adamu | 1:dc648c5624b9 | 123 | else if(month == 2) |
joseph_adamu | 1:dc648c5624b9 | 124 | { |
joseph_adamu | 1:dc648c5624b9 | 125 | leap = year % 4; |
joseph_adamu | 1:dc648c5624b9 | 126 | if(leap == 0) |
joseph_adamu | 1:dc648c5624b9 | 127 | { |
joseph_adamu | 1:dc648c5624b9 | 128 | if (day == 30) |
joseph_adamu | 1:dc648c5624b9 | 129 | { |
joseph_adamu | 1:dc648c5624b9 | 130 | mm++; |
joseph_adamu | 1:dc648c5624b9 | 131 | d = 0; |
joseph_adamu | 1:dc648c5624b9 | 132 | dd = 1; |
joseph_adamu | 1:dc648c5624b9 | 133 | } |
joseph_adamu | 1:dc648c5624b9 | 134 | } |
joseph_adamu | 1:dc648c5624b9 | 135 | else |
joseph_adamu | 1:dc648c5624b9 | 136 | { |
joseph_adamu | 1:dc648c5624b9 | 137 | if (day == 29) |
joseph_adamu | 1:dc648c5624b9 | 138 | { |
joseph_adamu | 1:dc648c5624b9 | 139 | mm++; |
joseph_adamu | 1:dc648c5624b9 | 140 | d = 0; |
joseph_adamu | 1:dc648c5624b9 | 141 | dd = 1; |
joseph_adamu | 1:dc648c5624b9 | 142 | } |
joseph_adamu | 1:dc648c5624b9 | 143 | } |
joseph_adamu | 1:dc648c5624b9 | 144 | } |
joseph_adamu | 1:dc648c5624b9 | 145 | date_rule(); |
joseph_adamu | 1:dc648c5624b9 | 146 | } |
joseph_adamu | 1:dc648c5624b9 | 147 | |
joseph_adamu | 1:dc648c5624b9 | 148 | |
joseph_adamu | 1:dc648c5624b9 | 149 | |
joseph_adamu | 1:dc648c5624b9 | 150 | //Sensor setup |
joseph_adamu | 1:dc648c5624b9 | 151 | void sensor_operation() |
joseph_adamu | 1:dc648c5624b9 | 152 | { |
joseph_adamu | 1:dc648c5624b9 | 153 | getTemperature_bmp280 = bmp280.getTemperature(); |
joseph_adamu | 1:dc648c5624b9 | 154 | |
joseph_adamu | 1:dc648c5624b9 | 155 | getPressure_bmp280 = bmp280.getPressure(); |
joseph_adamu | 1:dc648c5624b9 | 156 | fLDR = LDR; |
joseph_adamu | 1:dc648c5624b9 | 157 | } |
joseph_adamu | 1:dc648c5624b9 | 158 | //******* Displaying sensor data to the lcd to allocated position ************* |
joseph_adamu | 1:dc648c5624b9 | 159 | void sensor_lcd() |
joseph_adamu | 1:dc648c5624b9 | 160 | { |
joseph_adamu | 1:dc648c5624b9 | 161 | lcd.locate(10,0); |
joseph_adamu | 1:dc648c5624b9 | 162 | lcd.printf("L:%1.2f", fLDR); |
joseph_adamu | 1:dc648c5624b9 | 163 | |
joseph_adamu | 1:dc648c5624b9 | 164 | lcd.locate(0,0); |
joseph_adamu | 1:dc648c5624b9 | 165 | lcd.printf("P:%3.1f", getPressure_bmp280); |
joseph_adamu | 1:dc648c5624b9 | 166 | |
joseph_adamu | 1:dc648c5624b9 | 167 | lcd.locate(10,1); |
joseph_adamu | 1:dc648c5624b9 | 168 | lcd.printf("T:%3.1f", getTemperature_bmp280); |
joseph_adamu | 1:dc648c5624b9 | 169 | } |
joseph_adamu | 1:dc648c5624b9 | 170 | void records() |
joseph_adamu | 1:dc648c5624b9 | 171 | { |
joseph_adamu | 1:dc648c5624b9 | 172 | temperature_data[counter_store] = getTemperature_bmp280; |
joseph_adamu | 1:dc648c5624b9 | 173 | pressure_data[counter_store] = getPressure_bmp280; |
joseph_adamu | 1:dc648c5624b9 | 174 | LDR_data[counter_store] = fLDR; |
joseph_adamu | 1:dc648c5624b9 | 175 | |
joseph_adamu | 1:dc648c5624b9 | 176 | if (counter_store == 120) |
joseph_adamu | 1:dc648c5624b9 | 177 | { |
joseph_adamu | 1:dc648c5624b9 | 178 | counter_store = 0; |
joseph_adamu | 1:dc648c5624b9 | 179 | full = 1; |
joseph_adamu | 1:dc648c5624b9 | 180 | } |
joseph_adamu | 1:dc648c5624b9 | 181 | counter_store++; |
joseph_adamu | 1:dc648c5624b9 | 182 | } |