get an input from RFID to control the LCD

Dependencies:   mbed

Fork of LCD4884 by Dan Ghiciulescu

Committer:
Pinmanee
Date:
Mon Dec 11 07:39:34 2017 +0000
Revision:
2:fb07a736e132
Parent:
1:baf91b6482eb
Child:
3:dbe254844345
add graph

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Pinmanee 1:baf91b6482eb 1 #include "mbed.h"
Pinmanee 1:baf91b6482eb 2 #include "LCD4884.h"
Pinmanee 1:baf91b6482eb 3 #include "MFRC522.h"
Pinmanee 1:baf91b6482eb 4
Pinmanee 1:baf91b6482eb 5 #define MF_RESET D8
Pinmanee 1:baf91b6482eb 6 #define SPI_CS D10
Pinmanee 1:baf91b6482eb 7
Pinmanee 1:baf91b6482eb 8 int ReadRFID();
Pinmanee 1:baf91b6482eb 9
Pinmanee 1:baf91b6482eb 10 //LCD
Pinmanee 1:baf91b6482eb 11 AnalogIn analog_button_select(A0);
Pinmanee 1:baf91b6482eb 12 AnalogIn analog_button_press(A1);
Pinmanee 1:baf91b6482eb 13 AnalogIn analog_button_alarm(A2);
Pinmanee 1:baf91b6482eb 14 LCD4884 p;
Pinmanee 1:baf91b6482eb 15 //Serial pc(D1 , D0);
Pinmanee 1:baf91b6482eb 16
Pinmanee 1:baf91b6482eb 17 //RFID
Pinmanee 1:baf91b6482eb 18 DigitalOut LedGreen(LED1);
Pinmanee 1:baf91b6482eb 19 Serial pc(SERIAL_TX, SERIAL_RX);
Pinmanee 1:baf91b6482eb 20 MFRC522 RfChip (PC_12, PC_11, PC_10, SPI_CS, MF_RESET);
Pinmanee 1:baf91b6482eb 21
Pinmanee 1:baf91b6482eb 22
Pinmanee 1:baf91b6482eb 23 int main(void)
Pinmanee 1:baf91b6482eb 24 {
Pinmanee 1:baf91b6482eb 25 p.LCD_init();
Pinmanee 1:baf91b6482eb 26 p.LCD_write_string(28,2,"Hello",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 27 uint8_t state = 0;
Pinmanee 2:fb07a736e132 28 double select, press, ss_analysis;
Pinmanee 1:baf91b6482eb 29 int line, rfid_ID;
Pinmanee 1:baf91b6482eb 30
Pinmanee 2:fb07a736e132 31 int row1 = 2;
Pinmanee 2:fb07a736e132 32 int row2 = 72;
Pinmanee 2:fb07a736e132 33 int row3 = 142;
Pinmanee 2:fb07a736e132 34 int row4 = 212;
Pinmanee 2:fb07a736e132 35 int row5 = 282;
Pinmanee 2:fb07a736e132 36 int n = 0;
Pinmanee 2:fb07a736e132 37
Pinmanee 2:fb07a736e132 38 float sensor[6] = {40,20,10,16,27,33};
Pinmanee 2:fb07a736e132 39
Pinmanee 2:fb07a736e132 40 unsigned char img[] = {
Pinmanee 2:fb07a736e132 41 128,255,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 42 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 43 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 44 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 45 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 46
Pinmanee 2:fb07a736e132 47 128,255,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 48 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 49 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 50 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 51 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 52
Pinmanee 2:fb07a736e132 53 128,255,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 54 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 55 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 56 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 57 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 58
Pinmanee 2:fb07a736e132 59 128,255,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 60 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 61 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 62 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 63 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Pinmanee 2:fb07a736e132 64
Pinmanee 2:fb07a736e132 65 128,255,128,128,128,128,128,128,128,128,128,192,128,128,
Pinmanee 2:fb07a736e132 66 128,128,128,128,128,128,128,192,128,128,128,128,128,128,
Pinmanee 2:fb07a736e132 67 128,128,128,192,128,128,128,128,128,128,128,128,128,192,
Pinmanee 2:fb07a736e132 68 128,128,128,128,128,128,128,128,128,192,128,128,128,128,
Pinmanee 2:fb07a736e132 69 128,128,128,128,128,192,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
Pinmanee 2:fb07a736e132 70 };
Pinmanee 2:fb07a736e132 71
Pinmanee 1:baf91b6482eb 72 while(1) {
Pinmanee 1:baf91b6482eb 73
Pinmanee 1:baf91b6482eb 74 select = analog_button_select.read();
Pinmanee 1:baf91b6482eb 75 press = analog_button_press.read();
Pinmanee 2:fb07a736e132 76 ss_analysis = analog_button_alarm.read();
Pinmanee 1:baf91b6482eb 77
Pinmanee 1:baf91b6482eb 78 printf("x = %f\n",select);
Pinmanee 1:baf91b6482eb 79
Pinmanee 2:fb07a736e132 80 n = 0;
Pinmanee 2:fb07a736e132 81 while (n != 6) {
Pinmanee 2:fb07a736e132 82 //Start Row5
Pinmanee 2:fb07a736e132 83 if (sensor[n] == 1) {
Pinmanee 2:fb07a736e132 84 img[row5+n] = 128;
Pinmanee 2:fb07a736e132 85 } else if (sensor[n] == 2) {
Pinmanee 2:fb07a736e132 86 img[row5+n] = 192;
Pinmanee 2:fb07a736e132 87 } else if (sensor[n] == 3) {
Pinmanee 2:fb07a736e132 88 img[row5+n] = 160;
Pinmanee 2:fb07a736e132 89 } else if (sensor[n] == 4) {
Pinmanee 2:fb07a736e132 90 img[row5+n] = 144;
Pinmanee 2:fb07a736e132 91 } else if (sensor[n] == 5) {
Pinmanee 2:fb07a736e132 92 img[row5+n] = 144;
Pinmanee 2:fb07a736e132 93 } else if (sensor[n] == 6) {
Pinmanee 2:fb07a736e132 94 img[row5+n] = 136;
Pinmanee 2:fb07a736e132 95 } else if (sensor[n] == 7) {
Pinmanee 2:fb07a736e132 96 img[row5+n] = 136;
Pinmanee 2:fb07a736e132 97 } else if (sensor[n] == 8) {
Pinmanee 2:fb07a736e132 98 img[row5+n] = 132;
Pinmanee 2:fb07a736e132 99 } else if (sensor[n] == 9) {
Pinmanee 2:fb07a736e132 100 img[row5+n] = 132;
Pinmanee 2:fb07a736e132 101 } else if (sensor[n] == 10) {
Pinmanee 2:fb07a736e132 102 img[row5+n] = 129;
Pinmanee 2:fb07a736e132 103 }
Pinmanee 2:fb07a736e132 104 //End Row5
Pinmanee 2:fb07a736e132 105
Pinmanee 2:fb07a736e132 106 //Start Row4
Pinmanee 2:fb07a736e132 107 if (sensor[n] == 2) {
Pinmanee 2:fb07a736e132 108 img[row4+n] = 128;
Pinmanee 2:fb07a736e132 109 } else if (sensor[n] == 12) {
Pinmanee 2:fb07a736e132 110 img[row4+n] = 64;
Pinmanee 2:fb07a736e132 111 } else if (sensor[n] == 13) {
Pinmanee 2:fb07a736e132 112 img[row4+n] = 32;
Pinmanee 2:fb07a736e132 113 } else if (sensor[n] == 14) {
Pinmanee 2:fb07a736e132 114 img[row4+n] = 16;
Pinmanee 2:fb07a736e132 115 } else if (sensor[n] == 15) {
Pinmanee 2:fb07a736e132 116 img[row4+n] = 16;
Pinmanee 2:fb07a736e132 117 } else if (sensor[n] == 16) {
Pinmanee 2:fb07a736e132 118 img[row4+n] = 8;
Pinmanee 2:fb07a736e132 119 } else if (sensor[n] == 17) {
Pinmanee 2:fb07a736e132 120 img[row4+n] = 8;
Pinmanee 2:fb07a736e132 121 } else if (sensor[n] == 18) {
Pinmanee 2:fb07a736e132 122 img[row4+n] = 4;
Pinmanee 2:fb07a736e132 123 } else if (sensor[n] == 19) {
Pinmanee 2:fb07a736e132 124 img[row4+n] = 2;
Pinmanee 2:fb07a736e132 125 } else if (sensor[n] == 20) {
Pinmanee 2:fb07a736e132 126 img[row4+n] = 1;
Pinmanee 2:fb07a736e132 127 }
Pinmanee 2:fb07a736e132 128 //End Row4
Pinmanee 2:fb07a736e132 129
Pinmanee 2:fb07a736e132 130 //Start Row3
Pinmanee 2:fb07a736e132 131 if (sensor[n] == 3) {
Pinmanee 2:fb07a736e132 132 img[row3+n] = 128;
Pinmanee 2:fb07a736e132 133 } else if (sensor[n] == 22) {
Pinmanee 2:fb07a736e132 134 img[row3+n] = 64;
Pinmanee 2:fb07a736e132 135 } else if (sensor[n] == 23) {
Pinmanee 2:fb07a736e132 136 img[row3+n] = 32;
Pinmanee 2:fb07a736e132 137 } else if (sensor[n] == 24) {
Pinmanee 2:fb07a736e132 138 img[row3+n] = 16;
Pinmanee 2:fb07a736e132 139 } else if (sensor[n] == 25) {
Pinmanee 2:fb07a736e132 140 img[row3+n] = 16;
Pinmanee 2:fb07a736e132 141 } else if (sensor[n] == 26) {
Pinmanee 2:fb07a736e132 142 img[row3+n] = 8;
Pinmanee 2:fb07a736e132 143 } else if (sensor[n] == 27) {
Pinmanee 2:fb07a736e132 144 img[row3+n] = 8;
Pinmanee 2:fb07a736e132 145 } else if (sensor[n] == 28) {
Pinmanee 2:fb07a736e132 146 img[row3+n] = 4;
Pinmanee 2:fb07a736e132 147 } else if (sensor[n] == 29) {
Pinmanee 2:fb07a736e132 148 img[row3+n] = 2;
Pinmanee 2:fb07a736e132 149 } else if (sensor[n] == 30) {
Pinmanee 2:fb07a736e132 150 img[row3+n] = 1;
Pinmanee 2:fb07a736e132 151 }
Pinmanee 2:fb07a736e132 152 //End Row3
Pinmanee 2:fb07a736e132 153
Pinmanee 2:fb07a736e132 154 //Start Row2
Pinmanee 2:fb07a736e132 155 if (sensor[n] == 4) {
Pinmanee 2:fb07a736e132 156 img[row2+n] = 128;
Pinmanee 2:fb07a736e132 157 } else if (sensor[n] == 32) {
Pinmanee 2:fb07a736e132 158 img[row2+n] = 64;
Pinmanee 2:fb07a736e132 159 } else if (sensor[n] == 33) {
Pinmanee 2:fb07a736e132 160 img[row2+n] = 32;
Pinmanee 2:fb07a736e132 161 } else if (sensor[n] == 34) {
Pinmanee 2:fb07a736e132 162 img[row2+n] = 16;
Pinmanee 2:fb07a736e132 163 } else if (sensor[n] == 35) {
Pinmanee 2:fb07a736e132 164 img[row2+n] = 16;
Pinmanee 2:fb07a736e132 165 } else if (sensor[n] == 36) {
Pinmanee 2:fb07a736e132 166 img[row2+n] = 8;
Pinmanee 2:fb07a736e132 167 } else if (sensor[n] == 37) {
Pinmanee 2:fb07a736e132 168 img[row2+n] = 8;
Pinmanee 2:fb07a736e132 169 } else if (sensor[n] == 38) {
Pinmanee 2:fb07a736e132 170 img[row2+n] = 4;
Pinmanee 2:fb07a736e132 171 } else if (sensor[n] == 39) {
Pinmanee 2:fb07a736e132 172 img[row2+n] = 2;
Pinmanee 2:fb07a736e132 173 } else if (sensor[n] == 40) {
Pinmanee 2:fb07a736e132 174 img[row2+n] = 1;
Pinmanee 2:fb07a736e132 175 }
Pinmanee 2:fb07a736e132 176 //End Row2
Pinmanee 2:fb07a736e132 177
Pinmanee 2:fb07a736e132 178 //Start Row1
Pinmanee 2:fb07a736e132 179 if (sensor[n] == 5) {
Pinmanee 2:fb07a736e132 180 img[row1+n] = 128;
Pinmanee 2:fb07a736e132 181 } else if (sensor[n] == 42) {
Pinmanee 2:fb07a736e132 182 img[row1+n] = 64;
Pinmanee 2:fb07a736e132 183 } else if (sensor[n] == 43) {
Pinmanee 2:fb07a736e132 184 img[row1+n] = 32;
Pinmanee 2:fb07a736e132 185 } else if (sensor[n] == 44) {
Pinmanee 2:fb07a736e132 186 img[row1+n] = 16;
Pinmanee 2:fb07a736e132 187 } else if (sensor[n] == 45) {
Pinmanee 2:fb07a736e132 188 img[row1+n] = 16;
Pinmanee 2:fb07a736e132 189 } else if (sensor[n] == 46) {
Pinmanee 2:fb07a736e132 190 img[row1+n] = 8;
Pinmanee 2:fb07a736e132 191 } else if (sensor[n] == 47) {
Pinmanee 2:fb07a736e132 192 img[row1+n] = 8;
Pinmanee 2:fb07a736e132 193 } else if (sensor[n] == 48) {
Pinmanee 2:fb07a736e132 194 img[row1+n] = 4;
Pinmanee 2:fb07a736e132 195 } else if (sensor[n] == 49) {
Pinmanee 2:fb07a736e132 196 img[row1+n] = 2;
Pinmanee 2:fb07a736e132 197 } else if (sensor[n] == 50) {
Pinmanee 2:fb07a736e132 198 img[row1+n] = 1;
Pinmanee 2:fb07a736e132 199 }
Pinmanee 2:fb07a736e132 200 //End Row1
Pinmanee 2:fb07a736e132 201 n = n +1;
Pinmanee 2:fb07a736e132 202 }
Pinmanee 2:fb07a736e132 203
Pinmanee 1:baf91b6482eb 204 if (state == 0) { // Home Page
Pinmanee 1:baf91b6482eb 205 p.backlight(0);
Pinmanee 1:baf91b6482eb 206 p.LCD_write_string(28,2,"Hello",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 207 printf("I am in home page\n");
Pinmanee 1:baf91b6482eb 208 rfid_ID = ReadRFID();
Pinmanee 1:baf91b6482eb 209
Pinmanee 2:fb07a736e132 210 if (ss_analysis == 0) { // Alarm Page
Pinmanee 1:baf91b6482eb 211 printf("Alarm detected");
Pinmanee 1:baf91b6482eb 212 p.LCD_clear();
Pinmanee 1:baf91b6482eb 213 state = 2;
Pinmanee 1:baf91b6482eb 214 } else {
Pinmanee 1:baf91b6482eb 215 if (rfid_ID == 0) {
Pinmanee 1:baf91b6482eb 216 printf("Admin detected");
Pinmanee 1:baf91b6482eb 217 p.LCD_clear();
Pinmanee 1:baf91b6482eb 218 state = 1;
Pinmanee 2:fb07a736e132 219 } else break;
Pinmanee 1:baf91b6482eb 220 }
Pinmanee 1:baf91b6482eb 221
Pinmanee 1:baf91b6482eb 222 }
Pinmanee 1:baf91b6482eb 223
Pinmanee 1:baf91b6482eb 224 else if (state == 1) { //Admin Page
Pinmanee 1:baf91b6482eb 225 p.backlight(1);
Pinmanee 1:baf91b6482eb 226 p.LCD_write_string(25,0,"Admin",MENU_HIGHLIGHT);
Pinmanee 1:baf91b6482eb 227 p.LCD_write_string(0,1,"- Motion Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 228 p.LCD_write_string(0,2,"- AC Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 229 p.LCD_write_string(0,3,"- LDR Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 230 p.LCD_write_string(0,4,"Back",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 231
Pinmanee 1:baf91b6482eb 232
Pinmanee 1:baf91b6482eb 233 while(1) {
Pinmanee 1:baf91b6482eb 234 select = analog_button_select.read();
Pinmanee 1:baf91b6482eb 235 press = analog_button_press.read();
Pinmanee 1:baf91b6482eb 236
Pinmanee 1:baf91b6482eb 237 if (select != 0 && press != 0) { // no press
Pinmanee 1:baf91b6482eb 238 if (line == 1) {
Pinmanee 1:baf91b6482eb 239 p.LCD_write_string(25,0,"Admin",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 240 p.LCD_write_string(0,1,"- Motion Graph",MENU_HIGHLIGHT); //line = 0
Pinmanee 1:baf91b6482eb 241 p.LCD_write_string(0,2,"- AC Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 242 p.LCD_write_string(0,3,"- LDR Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 243 p.LCD_write_string(0,4,"Back",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 244 }
Pinmanee 1:baf91b6482eb 245
Pinmanee 1:baf91b6482eb 246 else if (line == 2) {
Pinmanee 1:baf91b6482eb 247 p.LCD_write_string(25,0,"Admin",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 248 p.LCD_write_string(0,1,"- Motion Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 249 p.LCD_write_string(0,2,"- AC Graph",MENU_HIGHLIGHT); //line = 1
Pinmanee 1:baf91b6482eb 250 p.LCD_write_string(0,3,"- LDR Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 251 p.LCD_write_string(0,4,"Back",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 252 }
Pinmanee 1:baf91b6482eb 253
Pinmanee 1:baf91b6482eb 254 else if (line == 3) {
Pinmanee 1:baf91b6482eb 255 p.LCD_write_string(25,0,"Admin",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 256 p.LCD_write_string(0,1,"- Motion Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 257 p.LCD_write_string(0,2,"- AC Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 258 p.LCD_write_string(0,3,"- LDR Graph",MENU_HIGHLIGHT); //line = 2
Pinmanee 1:baf91b6482eb 259 p.LCD_write_string(0,4,"Back",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 260 }
Pinmanee 1:baf91b6482eb 261
Pinmanee 1:baf91b6482eb 262 else if (line == 4) {
Pinmanee 1:baf91b6482eb 263 p.LCD_write_string(25,0,"Admin",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 264 p.LCD_write_string(0,1,"- Motion Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 265 p.LCD_write_string(0,2,"- AC Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 266 p.LCD_write_string(0,3,"- LDR Graph",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 267 p.LCD_write_string(0,4,"Back",MENU_HIGHLIGHT); //line = 3
Pinmanee 1:baf91b6482eb 268 }
Pinmanee 1:baf91b6482eb 269 }
Pinmanee 1:baf91b6482eb 270
Pinmanee 1:baf91b6482eb 271 else if (select == 0) { // channel selecting button (down)
Pinmanee 1:baf91b6482eb 272 if (line < 4) {
Pinmanee 1:baf91b6482eb 273 //printf("line = %d\n",line);
Pinmanee 1:baf91b6482eb 274 line = line + 1;
Pinmanee 1:baf91b6482eb 275 wait_ms(250);
Pinmanee 1:baf91b6482eb 276 } else line = 0;
Pinmanee 1:baf91b6482eb 277 }
Pinmanee 1:baf91b6482eb 278
Pinmanee 1:baf91b6482eb 279 else if (press == 0) { // press button
Pinmanee 1:baf91b6482eb 280 //printf("i am in\n");
Pinmanee 1:baf91b6482eb 281 //printf("line = %d\n",line);
Pinmanee 1:baf91b6482eb 282
Pinmanee 1:baf91b6482eb 283 if(line == 0) {
Pinmanee 1:baf91b6482eb 284 state = 1;
Pinmanee 1:baf91b6482eb 285 line = 0;
Pinmanee 1:baf91b6482eb 286 break;
Pinmanee 1:baf91b6482eb 287 } else if(line == 1) {
Pinmanee 1:baf91b6482eb 288 state = 10;
Pinmanee 1:baf91b6482eb 289 break;
Pinmanee 1:baf91b6482eb 290 } else if(line == 2) {
Pinmanee 1:baf91b6482eb 291 state = 11;
Pinmanee 1:baf91b6482eb 292 break;
Pinmanee 1:baf91b6482eb 293 } else if(line == 3) {
Pinmanee 1:baf91b6482eb 294 state = 12;
Pinmanee 1:baf91b6482eb 295 break;
Pinmanee 1:baf91b6482eb 296 } else {
Pinmanee 1:baf91b6482eb 297 p.LCD_clear();
Pinmanee 1:baf91b6482eb 298 state = 0;
Pinmanee 1:baf91b6482eb 299 line = 0;
Pinmanee 1:baf91b6482eb 300 break;
Pinmanee 1:baf91b6482eb 301 }
Pinmanee 1:baf91b6482eb 302 }
Pinmanee 1:baf91b6482eb 303
Pinmanee 1:baf91b6482eb 304 }
Pinmanee 1:baf91b6482eb 305 }
Pinmanee 1:baf91b6482eb 306
Pinmanee 1:baf91b6482eb 307 else if (state == 10) { //Admin Page - Motion Graph
Pinmanee 1:baf91b6482eb 308 p.LCD_clear();
Pinmanee 1:baf91b6482eb 309 p.LCD_write_string(7,0,"Motion Graph",MENU_HIGHLIGHT);
Pinmanee 2:fb07a736e132 310 p.LCD_draw_bmp_pixel(14,1, img, 70,40);
Pinmanee 1:baf91b6482eb 311 wait_ms(250);
Pinmanee 1:baf91b6482eb 312
Pinmanee 1:baf91b6482eb 313 while(1) {
Pinmanee 1:baf91b6482eb 314 press = analog_button_press.read();
Pinmanee 1:baf91b6482eb 315
Pinmanee 1:baf91b6482eb 316 if (press == 0) {
Pinmanee 1:baf91b6482eb 317 printf("press\n");
Pinmanee 1:baf91b6482eb 318 p.LCD_clear();
Pinmanee 1:baf91b6482eb 319 state = 1;
Pinmanee 1:baf91b6482eb 320 line = 0;
Pinmanee 1:baf91b6482eb 321 break;
Pinmanee 1:baf91b6482eb 322 }
Pinmanee 1:baf91b6482eb 323 }
Pinmanee 1:baf91b6482eb 324 }
Pinmanee 1:baf91b6482eb 325
Pinmanee 1:baf91b6482eb 326 else if (state == 11) { //Admin Page - Air Conditioner Graph
Pinmanee 1:baf91b6482eb 327 p.LCD_clear();
Pinmanee 1:baf91b6482eb 328 p.LCD_write_string(20,0,"AC Graph",MENU_HIGHLIGHT);
Pinmanee 2:fb07a736e132 329 p.LCD_draw_bmp_pixel(14,1, img, 70,40);
Pinmanee 1:baf91b6482eb 330 wait_ms(250);
Pinmanee 1:baf91b6482eb 331
Pinmanee 1:baf91b6482eb 332 while(1) {
Pinmanee 1:baf91b6482eb 333 press = analog_button_press.read();
Pinmanee 1:baf91b6482eb 334
Pinmanee 1:baf91b6482eb 335 if (press == 0) {
Pinmanee 1:baf91b6482eb 336 printf("press\n");
Pinmanee 1:baf91b6482eb 337 p.LCD_clear();
Pinmanee 1:baf91b6482eb 338 state = 1;
Pinmanee 1:baf91b6482eb 339 line = 0;
Pinmanee 1:baf91b6482eb 340 break;
Pinmanee 1:baf91b6482eb 341 }
Pinmanee 1:baf91b6482eb 342 }
Pinmanee 1:baf91b6482eb 343 }
Pinmanee 1:baf91b6482eb 344
Pinmanee 1:baf91b6482eb 345 else if (state == 12) { //Admin Page - LDR Graph
Pinmanee 1:baf91b6482eb 346 p.LCD_clear();
Pinmanee 1:baf91b6482eb 347 p.LCD_write_string(17,0,"LDR Graph",MENU_HIGHLIGHT);
Pinmanee 2:fb07a736e132 348 p.LCD_draw_bmp_pixel(14,1, img, 70,40);
Pinmanee 1:baf91b6482eb 349 wait_ms(250);
Pinmanee 1:baf91b6482eb 350
Pinmanee 1:baf91b6482eb 351 while(1) {
Pinmanee 1:baf91b6482eb 352 press = analog_button_press.read();
Pinmanee 1:baf91b6482eb 353
Pinmanee 1:baf91b6482eb 354 if (press == 0) {
Pinmanee 1:baf91b6482eb 355 printf("press\n");
Pinmanee 1:baf91b6482eb 356 p.LCD_clear();
Pinmanee 1:baf91b6482eb 357 state = 1;
Pinmanee 1:baf91b6482eb 358 line = 0;
Pinmanee 1:baf91b6482eb 359 break;
Pinmanee 1:baf91b6482eb 360 }
Pinmanee 1:baf91b6482eb 361 }
Pinmanee 1:baf91b6482eb 362 }
Pinmanee 1:baf91b6482eb 363
Pinmanee 1:baf91b6482eb 364 else if (state == 2) {
Pinmanee 1:baf91b6482eb 365 p.LCD_clear();
Pinmanee 1:baf91b6482eb 366 while(1) {
Pinmanee 1:baf91b6482eb 367 p.backlight(0);
Pinmanee 1:baf91b6482eb 368 wait_ms(500);
Pinmanee 1:baf91b6482eb 369 p.backlight(1);
Pinmanee 1:baf91b6482eb 370 wait_ms(500);
Pinmanee 1:baf91b6482eb 371 p.LCD_write_string(25,1,"PEASE",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 372 p.LCD_write_string(10,3,"TAP ID CARD",MENU_NORMAL);
Pinmanee 1:baf91b6482eb 373 wait_ms(250);
Pinmanee 1:baf91b6482eb 374 }
Pinmanee 1:baf91b6482eb 375 }
Pinmanee 1:baf91b6482eb 376
Pinmanee 1:baf91b6482eb 377 }
Pinmanee 1:baf91b6482eb 378 }
Pinmanee 1:baf91b6482eb 379
Pinmanee 1:baf91b6482eb 380 int ReadRFID()
Pinmanee 1:baf91b6482eb 381 {
Pinmanee 1:baf91b6482eb 382 int data[10];
Pinmanee 1:baf91b6482eb 383 int card;
Pinmanee 1:baf91b6482eb 384 pc.printf("starting...\n");
Pinmanee 1:baf91b6482eb 385
Pinmanee 1:baf91b6482eb 386 // Init. RC522 Chip
Pinmanee 1:baf91b6482eb 387 RfChip.PCD_Init();
Pinmanee 1:baf91b6482eb 388
Pinmanee 1:baf91b6482eb 389 while(true) {
Pinmanee 2:fb07a736e132 390 LedGreen = 1;
Pinmanee 1:baf91b6482eb 391
Pinmanee 1:baf91b6482eb 392 // Look for new cards
Pinmanee 1:baf91b6482eb 393 if(data[0] == 199 && data[1] == 230 &&data[2] == 46 &&data[3] == 0 ) {
Pinmanee 1:baf91b6482eb 394 //pc.printf(" admin \n");
Pinmanee 1:baf91b6482eb 395 data[0] = 0;
Pinmanee 1:baf91b6482eb 396 data[1] = 0;
Pinmanee 1:baf91b6482eb 397 data[2] = 0;
Pinmanee 1:baf91b6482eb 398 data[3] = 0;
Pinmanee 1:baf91b6482eb 399 card = 0;
Pinmanee 1:baf91b6482eb 400 return card;
Pinmanee 1:baf91b6482eb 401 }
Pinmanee 1:baf91b6482eb 402 if ( ! RfChip.PICC_IsNewCardPresent()) {
Pinmanee 1:baf91b6482eb 403 wait_ms(500);
Pinmanee 1:baf91b6482eb 404 continue;
Pinmanee 1:baf91b6482eb 405 }
Pinmanee 1:baf91b6482eb 406
Pinmanee 1:baf91b6482eb 407 // Select one of the cards
Pinmanee 1:baf91b6482eb 408 if ( ! RfChip.PICC_ReadCardSerial()) {
Pinmanee 1:baf91b6482eb 409 wait_ms(500);
Pinmanee 1:baf91b6482eb 410 continue;
Pinmanee 1:baf91b6482eb 411 }
Pinmanee 1:baf91b6482eb 412 LedGreen = 0;
Pinmanee 1:baf91b6482eb 413
Pinmanee 1:baf91b6482eb 414 // Print Card UID
Pinmanee 1:baf91b6482eb 415 pc.printf("Card UID: ");
Pinmanee 1:baf91b6482eb 416 for (uint8_t i = 0; i < RfChip.uid.size; i++) {
Pinmanee 1:baf91b6482eb 417 data[i] = RfChip.uid.uidByte[i];
Pinmanee 1:baf91b6482eb 418 pc.printf("%d ", data[i]);
Pinmanee 1:baf91b6482eb 419
Pinmanee 1:baf91b6482eb 420 }
Pinmanee 1:baf91b6482eb 421
Pinmanee 1:baf91b6482eb 422 //pc.printf("\n\r");
Pinmanee 1:baf91b6482eb 423 //pc.printf("\n\r");
Pinmanee 1:baf91b6482eb 424 //char data[0];
Pinmanee 1:baf91b6482eb 425 //pc.printf(" %X02", data[0]);
Pinmanee 1:baf91b6482eb 426 //pc.printf(" %s\n", data[0]);
Pinmanee 1:baf91b6482eb 427
Pinmanee 1:baf91b6482eb 428 pc.printf("\n\r");
Pinmanee 1:baf91b6482eb 429 }
Pinmanee 2:fb07a736e132 430 }