get an input from RFID to control the LCD

Dependencies:   mbed

Fork of LCD4884 by Dan Ghiciulescu

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