''

Dependencies:   BME280 BMP280 TextLCD mbed

Fork of CW_watchdog_08012018a by Calvin Kalintra

Committer:
ckalintra
Date:
Tue Jan 09 15:45:56 2018 +0000
Revision:
5:8aa72ee456fc
Parent:
3:f5fe5071416a
s

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ckalintra 0:7023c3f98f36 1 #include "mbed.h"
ckalintra 0:7023c3f98f36 2 #include "BMP280.h"
ckalintra 0:7023c3f98f36 3 #include "date.h"
ckalintra 0:7023c3f98f36 4 float tempf;
ckalintra 0:7023c3f98f36 5 float pressuref;
ckalintra 0:7023c3f98f36 6 float lvl;
ckalintra 5:8aa72ee456fc 7 float data_temp [119], data_press[119], data_light[119],data_tempa[999], data_pressa[999], data_lighta[999];
ckalintra 5:8aa72ee456fc 8 int date_a[199], time_a[199], time0_a[199], date0_a[199],date_aa[999], time_aa[999], time0_aa[9999], date0_aa[999];
ckalintra 3:f5fe5071416a 9 BMP280 bmp(D14,D15);
ckalintra 0:7023c3f98f36 10
ckalintra 0:7023c3f98f36 11 AnalogIn LDR(A0);
ckalintra 5:8aa72ee456fc 12 int counterw = 0, full = 0, day, month, year, leap, countera;
ckalintra 0:7023c3f98f36 13
ckalintra 0:7023c3f98f36 14 void time_rule()
ckalintra 0:7023c3f98f36 15 {
ckalintra 0:7023c3f98f36 16 if (ss == 10)
ckalintra 0:7023c3f98f36 17 {
ckalintra 0:7023c3f98f36 18 ss = 0;
ckalintra 0:7023c3f98f36 19 s++;
ckalintra 0:7023c3f98f36 20 }
ckalintra 0:7023c3f98f36 21
ckalintra 0:7023c3f98f36 22 if (s == 6 && ss == 0)
ckalintra 0:7023c3f98f36 23 {
ckalintra 0:7023c3f98f36 24 ss = 1;
ckalintra 0:7023c3f98f36 25 s = 0;
ckalintra 0:7023c3f98f36 26 mmi++;
ckalintra 0:7023c3f98f36 27 }
ckalintra 0:7023c3f98f36 28
ckalintra 0:7023c3f98f36 29 if (mmi == 10)
ckalintra 0:7023c3f98f36 30 {
ckalintra 0:7023c3f98f36 31 mmi = 0;
ckalintra 0:7023c3f98f36 32 mi++;
ckalintra 0:7023c3f98f36 33 }
ckalintra 0:7023c3f98f36 34
ckalintra 0:7023c3f98f36 35 if (mi == 6 && mmi == 0)
ckalintra 0:7023c3f98f36 36 {
ckalintra 0:7023c3f98f36 37 mi = 0;
ckalintra 0:7023c3f98f36 38 mmi = 1;
ckalintra 0:7023c3f98f36 39 hh++;
ckalintra 0:7023c3f98f36 40 }
ckalintra 0:7023c3f98f36 41
ckalintra 0:7023c3f98f36 42 if (hh == 10)
ckalintra 0:7023c3f98f36 43 {
ckalintra 0:7023c3f98f36 44 hh = 0;
ckalintra 0:7023c3f98f36 45 h++;
ckalintra 0:7023c3f98f36 46 }
ckalintra 0:7023c3f98f36 47
ckalintra 0:7023c3f98f36 48 if(h == 2 && hh == 4)
ckalintra 0:7023c3f98f36 49 {
ckalintra 0:7023c3f98f36 50 h = 0;
ckalintra 0:7023c3f98f36 51 hh = 0;
ckalintra 0:7023c3f98f36 52 dd++;
ckalintra 0:7023c3f98f36 53 }
ckalintra 0:7023c3f98f36 54 }
ckalintra 0:7023c3f98f36 55
ckalintra 0:7023c3f98f36 56
ckalintra 0:7023c3f98f36 57 void date_rule()
ckalintra 0:7023c3f98f36 58 {
ckalintra 0:7023c3f98f36 59 if (mm == 10)
ckalintra 0:7023c3f98f36 60 {
ckalintra 0:7023c3f98f36 61 mm = 0;
ckalintra 0:7023c3f98f36 62 m++;
ckalintra 0:7023c3f98f36 63 }
ckalintra 0:7023c3f98f36 64
ckalintra 0:7023c3f98f36 65 if (m == 1 && mm == 3)
ckalintra 0:7023c3f98f36 66 {
ckalintra 0:7023c3f98f36 67 m = 0;
ckalintra 0:7023c3f98f36 68 mm = 1;
ckalintra 0:7023c3f98f36 69 yyyy++;
ckalintra 0:7023c3f98f36 70 }
ckalintra 0:7023c3f98f36 71
ckalintra 0:7023c3f98f36 72 if (yyyy== 10)
ckalintra 0:7023c3f98f36 73 {
ckalintra 0:7023c3f98f36 74 yyyy = 0;
ckalintra 0:7023c3f98f36 75 yyy++;
ckalintra 0:7023c3f98f36 76 }
ckalintra 0:7023c3f98f36 77 if (yyy == 10)
ckalintra 0:7023c3f98f36 78 {
ckalintra 0:7023c3f98f36 79 yyy = 0;
ckalintra 0:7023c3f98f36 80 yy++;
ckalintra 0:7023c3f98f36 81 }
ckalintra 0:7023c3f98f36 82 if (yy == 10)
ckalintra 0:7023c3f98f36 83 {
ckalintra 0:7023c3f98f36 84 yy = 0;
ckalintra 0:7023c3f98f36 85 y++;
ckalintra 0:7023c3f98f36 86 }
ckalintra 0:7023c3f98f36 87
ckalintra 0:7023c3f98f36 88 }
ckalintra 0:7023c3f98f36 89
ckalintra 1:dc21a6fce3af 90 //void day_check()
ckalintra 1:dc21a6fce3af 91 //{
ckalintra 1:dc21a6fce3af 92 // month = m*10+mm;
ckalintra 1:dc21a6fce3af 93 //
ckalintra 1:dc21a6fce3af 94 // switch (month){
ckalintra 1:dc21a6fce3af 95 // case 1:
ckalintra 1:dc21a6fce3af 96 // d = d;
ckalintra 1:dc21a6fce3af 97 // if (d == 3 %% dd == 2)
ckalintra 1:dc21a6fce3af 98 // {
ckalintra 1:dc21a6fce3af 99 // mm++;
ckalintra 1:dc21a6fce3af 100 // d = 0;
ckalintra 1:dc21a6fce3af 101 // dd = 1;
ckalintra 1:dc21a6fce3af 102 // }
ckalintra 1:dc21a6fce3af 103 // }
ckalintra 1:dc21a6fce3af 104 // break;
ckalintra 1:dc21a6fce3af 105 //
ckalintra 1:dc21a6fce3af 106 // case 2:
ckalintra 1:dc21a6fce3af 107 // if (d == 3 %% dd == 0)
ckalintra 1:dc21a6fce3af 108 // {
ckalintra 1:dc21a6fce3af 109 // mm++;
ckalintra 1:dc21a6fce3af 110 // d = 0;
ckalintra 1:dc21a6fce3af 111 // dd = 1;
ckalintra 1:dc21a6fce3af 112 // }
ckalintra 1:dc21a6fce3af 113 // break;
ckalintra 1:dc21a6fce3af 114 // case 3: if (d == 3 %% dd == 2)
ckalintra 1:dc21a6fce3af 115 // {
ckalintra 1:dc21a6fce3af 116 // mm++;
ckalintra 1:dc21a6fce3af 117 // d = 0;
ckalintra 1:dc21a6fce3af 118 // dd = 1;
ckalintra 1:dc21a6fce3af 119 // }
ckalintra 1:dc21a6fce3af 120 // break;
ckalintra 1:dc21a6fce3af 121 // case 4: if (d == 3 %% dd == 1)
ckalintra 1:dc21a6fce3af 122 // {
ckalintra 1:dc21a6fce3af 123 // mm++;
ckalintra 1:dc21a6fce3af 124 // d = 0;
ckalintra 1:dc21a6fce3af 125 // dd = 1;
ckalintra 1:dc21a6fce3af 126 // }
ckalintra 1:dc21a6fce3af 127 // break;
ckalintra 1:dc21a6fce3af 128 // case 5: if (d == 3 %% dd == 2)
ckalintra 1:dc21a6fce3af 129 // {
ckalintra 1:dc21a6fce3af 130 // mm++;
ckalintra 1:dc21a6fce3af 131 // d = 0;
ckalintra 1:dc21a6fce3af 132 // dd = 1;
ckalintra 1:dc21a6fce3af 133 // }
ckalintra 1:dc21a6fce3af 134 // break;
ckalintra 1:dc21a6fce3af 135 // case 6 :if (d == 3 %% dd == 1)
ckalintra 1:dc21a6fce3af 136 // {
ckalintra 1:dc21a6fce3af 137 // mm++;
ckalintra 1:dc21a6fce3af 138 // d = 0;
ckalintra 1:dc21a6fce3af 139 // dd = 1;
ckalintra 1:dc21a6fce3af 140 // }
ckalintra 1:dc21a6fce3af 141 // break;
ckalintra 1:dc21a6fce3af 142 //
ckalintra 1:dc21a6fce3af 143 // case 7: if (d == 3 %% dd == 2)
ckalintra 1:dc21a6fce3af 144 // {
ckalintra 1:dc21a6fce3af 145 // mm++;
ckalintra 1:dc21a6fce3af 146 // d = 0;
ckalintra 1:dc21a6fce3af 147 // dd = 1;
ckalintra 1:dc21a6fce3af 148 // }
ckalintra 1:dc21a6fce3af 149 // break;
ckalintra 1:dc21a6fce3af 150 // case 8: if (d == 3 %% dd == 2)
ckalintra 1:dc21a6fce3af 151 // {
ckalintra 1:dc21a6fce3af 152 // mm++;
ckalintra 1:dc21a6fce3af 153 // d = 0;
ckalintra 1:dc21a6fce3af 154 // dd = 1;
ckalintra 1:dc21a6fce3af 155 // }
ckalintra 1:dc21a6fce3af 156 // break;
ckalintra 1:dc21a6fce3af 157 // case 9: if (d == 3 %% dd == 1)
ckalintra 1:dc21a6fce3af 158 // {
ckalintra 1:dc21a6fce3af 159 // mm++;
ckalintra 1:dc21a6fce3af 160 // d = 0;
ckalintra 1:dc21a6fce3af 161 // dd = 1;
ckalintra 1:dc21a6fce3af 162 // }
ckalintra 1:dc21a6fce3af 163 // break;
ckalintra 1:dc21a6fce3af 164 // case 10: if (d == 3 %% dd == 2)
ckalintra 1:dc21a6fce3af 165 // {
ckalintra 1:dc21a6fce3af 166 // mm++;
ckalintra 1:dc21a6fce3af 167 // d = 0;
ckalintra 1:dc21a6fce3af 168 // dd = 1;
ckalintra 1:dc21a6fce3af 169 // }
ckalintra 1:dc21a6fce3af 170 // break;
ckalintra 1:dc21a6fce3af 171 // case 11: if (d == 3 %% dd == 1)
ckalintra 1:dc21a6fce3af 172 // {
ckalintra 1:dc21a6fce3af 173 // mm++;
ckalintra 1:dc21a6fce3af 174 // d = 0;
ckalintra 1:dc21a6fce3af 175 // dd = 1;
ckalintra 1:dc21a6fce3af 176 // }
ckalintra 1:dc21a6fce3af 177 // break;
ckalintra 1:dc21a6fce3af 178 // case 12: if (d == 3 %% dd == 2)
ckalintra 1:dc21a6fce3af 179 // {
ckalintra 1:dc21a6fce3af 180 // mm++;
ckalintra 1:dc21a6fce3af 181 // d = 0;
ckalintra 1:dc21a6fce3af 182 // dd = 1;
ckalintra 1:dc21a6fce3af 183 // }
ckalintra 1:dc21a6fce3af 184 // break;
ckalintra 1:dc21a6fce3af 185 // }
ckalintra 1:dc21a6fce3af 186 // date_rule();
ckalintra 1:dc21a6fce3af 187 //}
ckalintra 0:7023c3f98f36 188
ckalintra 0:7023c3f98f36 189 void day_check()
ckalintra 0:7023c3f98f36 190 {
ckalintra 1:dc21a6fce3af 191 //day = 10*d + dd;
ckalintra 1:dc21a6fce3af 192 //month = m*10+mm;
ckalintra 0:7023c3f98f36 193 year = y*1000+yy*100+yyy*10+yyyy;
ckalintra 1:dc21a6fce3af 194 if((m == 0 && (mm == 1 || mm == 3 || mm == 5 || mm == 7 || mm == 8)) || (m ==1 && (mm == 0 || mm == 2)))
ckalintra 0:7023c3f98f36 195 {
ckalintra 1:dc21a6fce3af 196 if (d == 3 && dd == 0)
ckalintra 0:7023c3f98f36 197 {
ckalintra 1:dc21a6fce3af 198 d = 3;
ckalintra 0:7023c3f98f36 199 dd = 1;
ckalintra 1:dc21a6fce3af 200 }
ckalintra 1:dc21a6fce3af 201 else if (d == 3 && dd == 2)
ckalintra 0:7023c3f98f36 202 {
ckalintra 0:7023c3f98f36 203 mm++;
ckalintra 0:7023c3f98f36 204 d = 0;
ckalintra 0:7023c3f98f36 205 dd = 1;
ckalintra 0:7023c3f98f36 206 }
ckalintra 1:dc21a6fce3af 207
ckalintra 1:dc21a6fce3af 208
ckalintra 1:dc21a6fce3af 209 }
ckalintra 1:dc21a6fce3af 210
ckalintra 1:dc21a6fce3af 211 else if((m == 0 && (mm == 4 || mm == 6 || mm == 9)) || (m ==1 && mm == 1))
ckalintra 1:dc21a6fce3af 212 {
ckalintra 1:dc21a6fce3af 213 if (d == 3 && dd == 0)
ckalintra 1:dc21a6fce3af 214 {
ckalintra 1:dc21a6fce3af 215 d = 3;
ckalintra 1:dc21a6fce3af 216 dd = 1;
ckalintra 1:dc21a6fce3af 217 }
ckalintra 1:dc21a6fce3af 218 else if (d == 3 && dd == 1)
ckalintra 1:dc21a6fce3af 219 {
ckalintra 1:dc21a6fce3af 220 mm++;
ckalintra 1:dc21a6fce3af 221 d = 0;
ckalintra 1:dc21a6fce3af 222 dd = 1;
ckalintra 1:dc21a6fce3af 223 }
ckalintra 1:dc21a6fce3af 224
ckalintra 1:dc21a6fce3af 225
ckalintra 0:7023c3f98f36 226 }
ckalintra 0:7023c3f98f36 227
ckalintra 1:dc21a6fce3af 228 else if(m == 0 && mm == 2)
ckalintra 0:7023c3f98f36 229 {
ckalintra 1:dc21a6fce3af 230 leap = year%4;
ckalintra 1:dc21a6fce3af 231 if (leap == 0)
ckalintra 0:7023c3f98f36 232 {
ckalintra 1:dc21a6fce3af 233 if (d == 3 && dd == 0)
ckalintra 1:dc21a6fce3af 234 {
ckalintra 1:dc21a6fce3af 235 mm++;
ckalintra 1:dc21a6fce3af 236 d = 0;
ckalintra 1:dc21a6fce3af 237 dd = 1;
ckalintra 1:dc21a6fce3af 238 }
ckalintra 0:7023c3f98f36 239 }
ckalintra 1:dc21a6fce3af 240 else if(leap != 0)
ckalintra 0:7023c3f98f36 241 {
ckalintra 1:dc21a6fce3af 242 if (d == 2 && dd == 9)
ckalintra 1:dc21a6fce3af 243 {
ckalintra 1:dc21a6fce3af 244 mm++;
ckalintra 1:dc21a6fce3af 245 d = 0;
ckalintra 1:dc21a6fce3af 246 dd = 1;
ckalintra 1:dc21a6fce3af 247 }
ckalintra 1:dc21a6fce3af 248 }
ckalintra 1:dc21a6fce3af 249
ckalintra 0:7023c3f98f36 250 }
ckalintra 0:7023c3f98f36 251 date_rule();
ckalintra 0:7023c3f98f36 252 }
ckalintra 0:7023c3f98f36 253
ckalintra 0:7023c3f98f36 254
ckalintra 0:7023c3f98f36 255
ckalintra 0:7023c3f98f36 256
ckalintra 0:7023c3f98f36 257 void getdata()
ckalintra 0:7023c3f98f36 258 {
ckalintra 0:7023c3f98f36 259 tempf = bmp.getTemperature();
ckalintra 0:7023c3f98f36 260 //tempf = tempf*-1;
ckalintra 0:7023c3f98f36 261 pressuref = bmp.getPressure();
ckalintra 0:7023c3f98f36 262 lvl = LDR;
ckalintra 1:dc21a6fce3af 263
ckalintra 0:7023c3f98f36 264 }
ckalintra 0:7023c3f98f36 265
ckalintra 0:7023c3f98f36 266 void store()
ckalintra 0:7023c3f98f36 267 {
ckalintra 0:7023c3f98f36 268 data_temp[counterw] = tempf;
ckalintra 0:7023c3f98f36 269 data_press[counterw] = pressuref;
ckalintra 0:7023c3f98f36 270 data_light[counterw] = lvl;
ckalintra 1:dc21a6fce3af 271 date_a[counterw] = dd*1000000+m*100000+mm*10000+y*1000+yy*100+yyy*10+yyyy;
ckalintra 5:8aa72ee456fc 272 time_a[counterw] = hh*10000+mi*1000+mmi*100+s*10+ss;
ckalintra 1:dc21a6fce3af 273 date0_a[counterw] = d;
ckalintra 5:8aa72ee456fc 274 time0_a[counterw] = h;
ckalintra 5:8aa72ee456fc 275 data_tempa[countera] = tempf;
ckalintra 5:8aa72ee456fc 276 data_pressa[countera] = pressuref;
ckalintra 5:8aa72ee456fc 277 data_lighta[countera] = lvl;
ckalintra 5:8aa72ee456fc 278 date_aa[countera] = dd*1000000+m*100000+mm*10000+y*1000+yy*100+yyy*10+yyyy;
ckalintra 5:8aa72ee456fc 279 time_aa[countera] = hh*10000+mi*1000+mmi*100+s*10+ss;
ckalintra 5:8aa72ee456fc 280 date0_aa[countera] = d;
ckalintra 5:8aa72ee456fc 281 time0_aa[countera] = h;
ckalintra 1:dc21a6fce3af 282 if (counterw == 119)
ckalintra 0:7023c3f98f36 283 {
ckalintra 0:7023c3f98f36 284 counterw = 0;
ckalintra 0:7023c3f98f36 285 full = 1;
ckalintra 0:7023c3f98f36 286 }
ckalintra 0:7023c3f98f36 287 counterw++;
ckalintra 5:8aa72ee456fc 288 countera++;
ckalintra 0:7023c3f98f36 289 }
ckalintra 0:7023c3f98f36 290
ckalintra 0:7023c3f98f36 291
ckalintra 0:7023c3f98f36 292