coursework

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?

UserRevisionLine numberNew 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 }