Full layout 'HUB' with functioning navigation between all screens and active temp/state display, now with outbound signals to leds and buzzer. Final Project.
Dependencies: ID12RFID SPI_TFT_ILI9341 TFT_fonts mbed
Fork of Welcome_Screen_TFT_2_point_oh by
main.cpp@9:0adb037a25a4, 2016-06-17 (annotated)
- Committer:
- bendavis96
- Date:
- Fri Jun 17 12:38:37 2016 +0000
- Revision:
- 9:0adb037a25a4
- Parent:
- 8:95cd847648cd
wifi inbound signals and outbound signals to led etc working, all working!;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bendavis96 | 7:ceeced183454 | 1 | |
bendavis96 | 7:ceeced183454 | 2 | //%%%%%% SERVER HUB %%%%%%% |
bendavis96 | 7:ceeced183454 | 3 | |
dreschpe | 0:7c3b9bfd6ead | 4 | |
bendavis96 | 7:ceeced183454 | 5 | |
bendavis96 | 7:ceeced183454 | 6 | //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
bendavis96 | 7:ceeced183454 | 7 | //%%%%%% Initialisations %%%%%%%% |
dreschpe | 0:7c3b9bfd6ead | 8 | #include "stdio.h" |
dreschpe | 0:7c3b9bfd6ead | 9 | #include "mbed.h" |
dreschpe | 0:7c3b9bfd6ead | 10 | #include "SPI_TFT_ILI9341.h" |
bendavis96 | 7:ceeced183454 | 11 | #include "ID12RFID.h" |
dreschpe | 0:7c3b9bfd6ead | 12 | #include "string" |
dreschpe | 0:7c3b9bfd6ead | 13 | #include "Arial12x12.h" |
dreschpe | 0:7c3b9bfd6ead | 14 | #include "Arial24x23.h" |
dreschpe | 0:7c3b9bfd6ead | 15 | #include "Arial28x28.h" |
dreschpe | 0:7c3b9bfd6ead | 16 | #include "font_big.h" |
cstevens | 4:14043cafbec7 | 17 | |
cstevens | 6:18c7288b5e00 | 18 | |
cstevens | 6:18c7288b5e00 | 19 | Serial pc (USBTX,USBRX); |
bendavis96 | 8:95cd847648cd | 20 | ID12RFID rfid(PTE23); |
bendavis96 | 9:0adb037a25a4 | 21 | Serial dev(PTE0,PTE1); // for KL25Z... asuming one can't use the PTA1 version which is the stdio |
bendavis96 | 7:ceeced183454 | 22 | DigitalOut rled(LED1); |
bendavis96 | 7:ceeced183454 | 23 | DigitalOut gled(LED2); |
bendavis96 | 7:ceeced183454 | 24 | DigitalOut bled(LED3); |
bendavis96 | 9:0adb037a25a4 | 25 | DigitalOut rst(PTD7); // single digital pin to drive the esp8266 reset line |
bendavis96 | 7:ceeced183454 | 26 | |
bendavis96 | 7:ceeced183454 | 27 | int touching = 0; |
cstevens | 4:14043cafbec7 | 28 | |
dreschpe | 0:7c3b9bfd6ead | 29 | |
dreschpe | 0:7c3b9bfd6ead | 30 | |
pegcjs | 3:676adf84c914 | 31 | |
cstevens | 6:18c7288b5e00 | 32 | // the display has a backlight switch on board |
bendavis96 | 7:ceeced183454 | 33 | DigitalOut LCD_LED(PTA13); // LED Display |
bendavis96 | 7:ceeced183454 | 34 | DigitalOut pwr(PTD7); // Power |
dreschpe | 0:7c3b9bfd6ead | 35 | |
dreschpe | 0:7c3b9bfd6ead | 36 | // the TFT is connected to SPI pin 5-7 |
pegcjs | 1:e0479f60cd48 | 37 | //SPI_TFT_ILI9341 TFT(p5, p6, p7, p8, p9, p10,"TFT"); // mosi, miso, sclk, cs, reset, dc for lpc1768 |
cstevens | 5:424af4fa03ab | 38 | SPI_TFT_ILI9341 TFT(PTD2, PTD3, PTD1, PTD5, PTD0, PTA13,"TFT"); // mosi, miso, sclk, cs, reset, dc for frdmkl25z |
cstevens | 6:18c7288b5e00 | 39 | //NB better combination to use a coherent 2x4 block for lcd |
pegcjs | 3:676adf84c914 | 40 | // SPI_TFT_ILI9341 TFT(PTD2, PTD3, PTD1, PTA16, PTA17, PTC16,"TFT"); // mosi, miso, sclk, cs, reset, dc for frdmkl25z |
bendavis96 | 7:ceeced183454 | 41 | |
bendavis96 | 7:ceeced183454 | 42 | //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
bendavis96 | 9:0adb037a25a4 | 43 | //%%%%%%%%%%%%%%%%%%%%%% WIFI %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
bendavis96 | 9:0adb037a25a4 | 44 | // subroutine to run anytime a serial interrupt arrives from the device |
bendavis96 | 9:0adb037a25a4 | 45 | // this basically passes everything thatthe device produces on to the pc terminal screen |
bendavis96 | 9:0adb037a25a4 | 46 | |
bendavis96 | 9:0adb037a25a4 | 47 | void dev_recv() |
bendavis96 | 9:0adb037a25a4 | 48 | { |
bendavis96 | 9:0adb037a25a4 | 49 | while(dev.readable()) { |
bendavis96 | 9:0adb037a25a4 | 50 | pc.putc(dev.getc()); |
bendavis96 | 9:0adb037a25a4 | 51 | wait_us(1); |
bendavis96 | 9:0adb037a25a4 | 52 | } |
bendavis96 | 9:0adb037a25a4 | 53 | } |
bendavis96 | 9:0adb037a25a4 | 54 | // subroutine to service the serial interrupt on the pc connection |
bendavis96 | 9:0adb037a25a4 | 55 | // this is a bit more complex - it takes what the use sends on the pc and copies it on to the device |
bendavis96 | 9:0adb037a25a4 | 56 | // the esp should echo these straight back to the the pc if all is well |
bendavis96 | 9:0adb037a25a4 | 57 | // this also detects the end of command character which is ascii 13 (0x0d) adn adds a linefeed after it =asscii 10 (0x0a) |
bendavis96 | 9:0adb037a25a4 | 58 | void pc_recv() |
bendavis96 | 9:0adb037a25a4 | 59 | { |
bendavis96 | 9:0adb037a25a4 | 60 | char c; |
bendavis96 | 9:0adb037a25a4 | 61 | while(pc.readable()) { |
bendavis96 | 9:0adb037a25a4 | 62 | c = pc.getc(); |
bendavis96 | 9:0adb037a25a4 | 63 | dev.putc(c); |
bendavis96 | 9:0adb037a25a4 | 64 | // pc.putc(c); // echo back |
bendavis96 | 9:0adb037a25a4 | 65 | if(c==13) { |
bendavis96 | 9:0adb037a25a4 | 66 | dev.putc(10); // send the linefeed to complement the carriage return generated by return key on the pc |
bendavis96 | 9:0adb037a25a4 | 67 | pc.putc(10); |
bendavis96 | 9:0adb037a25a4 | 68 | } |
bendavis96 | 9:0adb037a25a4 | 69 | } |
bendavis96 | 9:0adb037a25a4 | 70 | } |
bendavis96 | 9:0adb037a25a4 | 71 | |
bendavis96 | 9:0adb037a25a4 | 72 | /*void client() { |
bendavis96 | 9:0adb037a25a4 | 73 | |
bendavis96 | 9:0adb037a25a4 | 74 | i = dev.getc(); */ |
bendavis96 | 9:0adb037a25a4 | 75 | //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
bendavis96 | 7:ceeced183454 | 76 | //%%%%%%%%%%% Subroutine to read the x location of the touch point %%%%%%%%%% |
bendavis96 | 7:ceeced183454 | 77 | |
cstevens | 6:18c7288b5e00 | 78 | |
cstevens | 6:18c7288b5e00 | 79 | |
cstevens | 6:18c7288b5e00 | 80 | // need to set x+ to 3V and ground x- then read analogue voltage on ym |
cstevens | 6:18c7288b5e00 | 81 | //nb need to add a check for actual touch as opposed to random crap |
bendavis96 | 7:ceeced183454 | 82 | |
cstevens | 6:18c7288b5e00 | 83 | int readX() |
cstevens | 6:18c7288b5e00 | 84 | { |
bendavis96 | 7:ceeced183454 | 85 | int delta=0,xv1=0,xv2=0,k=0; |
bendavis96 | 7:ceeced183454 | 86 | |
bendavis96 | 7:ceeced183454 | 87 | AnalogIn yp(PTB3); |
bendavis96 | 7:ceeced183454 | 88 | AnalogIn ym(PTB2); |
cstevens | 6:18c7288b5e00 | 89 | DigitalOut xp(PTB0); |
cstevens | 6:18c7288b5e00 | 90 | DigitalOut xm(PTB1); |
cstevens | 6:18c7288b5e00 | 91 | |
cstevens | 6:18c7288b5e00 | 92 | xp=1; // set positive sdie of x high |
cstevens | 6:18c7288b5e00 | 93 | xm=0; |
cstevens | 6:18c7288b5e00 | 94 | // dont need to do anyhting to set low side as it should be fine. |
cstevens | 6:18c7288b5e00 | 95 | // but do need to disconnect yp |
cstevens | 6:18c7288b5e00 | 96 | //yp.PinMode(PullNone) |
bendavis96 | 7:ceeced183454 | 97 | for(k=0; k<10; k++) { // make 10 readings to average |
bendavis96 | 7:ceeced183454 | 98 | xv1+=(int)ym.read_u16(); // get value |
bendavis96 | 7:ceeced183454 | 99 | xv2+=(int)yp.read_u16(); // get other value |
bendavis96 | 7:ceeced183454 | 100 | } |
bendavis96 | 7:ceeced183454 | 101 | delta=abs(xv2-xv1)/10; |
bendavis96 | 7:ceeced183454 | 102 | if(delta<300) touching=1; |
bendavis96 | 7:ceeced183454 | 103 | else touching=0; |
bendavis96 | 7:ceeced183454 | 104 | // pc.printf("delta=%d \t %d\n\r",delta,touching); |
bendavis96 | 7:ceeced183454 | 105 | xp=0; |
bendavis96 | 7:ceeced183454 | 106 | xm=0; |
bendavis96 | 7:ceeced183454 | 107 | return(xv2/10); //maybe better to return the average of both.... |
cstevens | 6:18c7288b5e00 | 108 | } |
cstevens | 6:18c7288b5e00 | 109 | // subroutine to read y values - has different pin functions .. |
cstevens | 6:18c7288b5e00 | 110 | int readY() |
cstevens | 6:18c7288b5e00 | 111 | { |
bendavis96 | 7:ceeced183454 | 112 | DigitalOut yp(PTB3); |
bendavis96 | 7:ceeced183454 | 113 | DigitalOut ym(PTB2); |
cstevens | 6:18c7288b5e00 | 114 | AnalogIn xp(PTB0); |
cstevens | 6:18c7288b5e00 | 115 | AnalogIn xm(PTB1); |
cstevens | 6:18c7288b5e00 | 116 | |
cstevens | 6:18c7288b5e00 | 117 | yp=1; // set positive sdie of x high |
cstevens | 6:18c7288b5e00 | 118 | ym=0; |
cstevens | 6:18c7288b5e00 | 119 | // dont need to do anyhting to set low side as it should be fine. |
cstevens | 6:18c7288b5e00 | 120 | // but do need to disconnect yp |
cstevens | 6:18c7288b5e00 | 121 | //yp.PinMode(PullNone) |
cstevens | 6:18c7288b5e00 | 122 | int yval=(int)xm.read_u16(); // get value |
bendavis96 | 7:ceeced183454 | 123 | |
bendavis96 | 7:ceeced183454 | 124 | yp=0; |
bendavis96 | 7:ceeced183454 | 125 | ym=0; |
cstevens | 6:18c7288b5e00 | 126 | return(yval); |
cstevens | 6:18c7288b5e00 | 127 | } |
bendavis96 | 7:ceeced183454 | 128 | //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
bendavis96 | 7:ceeced183454 | 129 | //%%%%%% Home Display %%%%%%% |
bendavis96 | 7:ceeced183454 | 130 | |
bendavis96 | 7:ceeced183454 | 131 | void start() |
bendavis96 | 7:ceeced183454 | 132 | { |
bendavis96 | 7:ceeced183454 | 133 | |
bendavis96 | 7:ceeced183454 | 134 | pwr=1; |
bendavis96 | 7:ceeced183454 | 135 | wait(0.2); |
bendavis96 | 7:ceeced183454 | 136 | |
bendavis96 | 7:ceeced183454 | 137 | LCD_LED = 1; // backlight on |
bendavis96 | 7:ceeced183454 | 138 | rled = 1; |
bendavis96 | 7:ceeced183454 | 139 | bled = 1; |
bendavis96 | 7:ceeced183454 | 140 | gled = 1; |
bendavis96 | 7:ceeced183454 | 141 | |
bendavis96 | 7:ceeced183454 | 142 | TFT.claim(stdout); // send stdout to the TFT display |
bendavis96 | 7:ceeced183454 | 143 | TFT.set_orientation(1); |
bendavis96 | 7:ceeced183454 | 144 | TFT.background(Black); // set background to black |
bendavis96 | 7:ceeced183454 | 145 | TFT.foreground(Cyan); // set chars to white |
bendavis96 | 7:ceeced183454 | 146 | TFT.locate(80,110); |
bendavis96 | 7:ceeced183454 | 147 | TFT.set_font((unsigned char*) Neu42x35); |
bendavis96 | 7:ceeced183454 | 148 | TFT.cls(); // clear the screen |
bendavis96 | 7:ceeced183454 | 149 | TFT.printf("SmOuse"); |
bendavis96 | 7:ceeced183454 | 150 | |
bendavis96 | 7:ceeced183454 | 151 | } |
bendavis96 | 7:ceeced183454 | 152 | |
bendavis96 | 7:ceeced183454 | 153 | void welcome() |
bendavis96 | 7:ceeced183454 | 154 | { |
bendavis96 | 7:ceeced183454 | 155 | //Greeting |
bendavis96 | 7:ceeced183454 | 156 | TFT.set_font((unsigned char*) Arial24x23); |
bendavis96 | 7:ceeced183454 | 157 | TFT.set_orientation(1); |
bendavis96 | 7:ceeced183454 | 158 | TFT.locate(50,100); |
bendavis96 | 7:ceeced183454 | 159 | TFT.printf("W"); |
bendavis96 | 7:ceeced183454 | 160 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 161 | TFT.printf("e"); |
bendavis96 | 7:ceeced183454 | 162 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 163 | TFT.printf("l"); |
bendavis96 | 7:ceeced183454 | 164 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 165 | TFT.printf("c"); |
bendavis96 | 7:ceeced183454 | 166 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 167 | TFT.printf("o"); |
bendavis96 | 7:ceeced183454 | 168 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 169 | TFT.printf("m"); |
bendavis96 | 7:ceeced183454 | 170 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 171 | TFT.printf("e"); |
bendavis96 | 7:ceeced183454 | 172 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 173 | TFT.printf(","); |
bendavis96 | 7:ceeced183454 | 174 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 175 | TFT.printf(" "); |
bendavis96 | 7:ceeced183454 | 176 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 177 | } |
bendavis96 | 7:ceeced183454 | 178 | |
bendavis96 | 7:ceeced183454 | 179 | |
bendavis96 | 7:ceeced183454 | 180 | void home() |
bendavis96 | 7:ceeced183454 | 181 | { |
bendavis96 | 7:ceeced183454 | 182 | TFT.cls(); |
bendavis96 | 7:ceeced183454 | 183 | //show corners |
bendavis96 | 7:ceeced183454 | 184 | TFT.circle(10,10,10,0xffff); |
bendavis96 | 7:ceeced183454 | 185 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 186 | TFT.circle(308,10,10,0xffff); |
bendavis96 | 7:ceeced183454 | 187 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 188 | TFT.circle(10,229,10,0xffff); |
bendavis96 | 7:ceeced183454 | 189 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 190 | TFT.circle(308,229,10,0xffff); |
bendavis96 | 7:ceeced183454 | 191 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 192 | //add menu buttons |
bendavis96 | 8:95cd847648cd | 193 | TFT.rect(25,200,155,140,0xffff); //lighting |
bendavis96 | 8:95cd847648cd | 194 | TFT.rect(165,200,295,140,0xffff); //AC |
bendavis96 | 8:95cd847648cd | 195 | TFT.rect(25,25,93,0,Red); //auto controls |
bendavis96 | 8:95cd847648cd | 196 | |
bendavis96 | 7:ceeced183454 | 197 | //text for buttons |
bendavis96 | 7:ceeced183454 | 198 | TFT.set_font((unsigned char*) Arial12x12); |
bendavis96 | 7:ceeced183454 | 199 | TFT.locate(65,165); |
bendavis96 | 7:ceeced183454 | 200 | TFT.printf("Lighting"); |
bendavis96 | 7:ceeced183454 | 201 | TFT.locate(195,165); |
bendavis96 | 7:ceeced183454 | 202 | TFT.printf("AC Control"); |
bendavis96 | 8:95cd847648cd | 203 | TFT.locate(40,10); |
bendavis96 | 8:95cd847648cd | 204 | TFT.printf("AUTO"); |
bendavis96 | 7:ceeced183454 | 205 | } |
bendavis96 | 7:ceeced183454 | 206 | |
bendavis96 | 7:ceeced183454 | 207 | void lights() |
bendavis96 | 7:ceeced183454 | 208 | { |
bendavis96 | 7:ceeced183454 | 209 | |
bendavis96 | 7:ceeced183454 | 210 | TFT.cls(); |
bendavis96 | 7:ceeced183454 | 211 | TFT.locate(55,15); |
bendavis96 | 7:ceeced183454 | 212 | TFT.set_font((unsigned char*) Arial24x23); |
bendavis96 | 7:ceeced183454 | 213 | TFT.printf("Lighting System"); |
bendavis96 | 7:ceeced183454 | 214 | //show corners |
bendavis96 | 7:ceeced183454 | 215 | TFT.circle(10,10,10,0xffff); |
bendavis96 | 7:ceeced183454 | 216 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 217 | TFT.circle(308,10,10,0xffff); |
bendavis96 | 7:ceeced183454 | 218 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 219 | TFT.circle(10,229,10,0xffff); |
bendavis96 | 7:ceeced183454 | 220 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 221 | TFT.circle(308,229,10,0xffff); |
bendavis96 | 7:ceeced183454 | 222 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 223 | //add menu buttons |
bendavis96 | 7:ceeced183454 | 224 | TFT.rect(25,200,155,140,0xffff); |
bendavis96 | 8:95cd847648cd | 225 | TFT.rect(165,110,295,80,0xffff); |
bendavis96 | 8:95cd847648cd | 226 | TFT.rect(165,155,295,125,0xffff); |
bendavis96 | 8:95cd847648cd | 227 | TFT.rect(165,200,295,170,0xffff); |
bendavis96 | 7:ceeced183454 | 228 | //text for buttons |
bendavis96 | 7:ceeced183454 | 229 | TFT.set_font((unsigned char*) Arial12x12); |
bendavis96 | 7:ceeced183454 | 230 | TFT.locate(50,165); |
bendavis96 | 7:ceeced183454 | 231 | TFT.printf("LIGHTS OFF"); |
bendavis96 | 8:95cd847648cd | 232 | TFT.locate(230,92); |
bendavis96 | 8:95cd847648cd | 233 | TFT.printf("3"); |
bendavis96 | 8:95cd847648cd | 234 | TFT.locate(230,137); |
bendavis96 | 8:95cd847648cd | 235 | TFT.printf("2"); |
bendavis96 | 8:95cd847648cd | 236 | TFT.locate(230,182); |
bendavis96 | 8:95cd847648cd | 237 | TFT.printf("1"); |
bendavis96 | 8:95cd847648cd | 238 | TFT.locate(6,6); |
bendavis96 | 8:95cd847648cd | 239 | TFT.printf("X"); |
bendavis96 | 7:ceeced183454 | 240 | } |
bendavis96 | 7:ceeced183454 | 241 | |
bendavis96 | 7:ceeced183454 | 242 | void temps() |
bendavis96 | 7:ceeced183454 | 243 | { |
bendavis96 | 7:ceeced183454 | 244 | |
bendavis96 | 7:ceeced183454 | 245 | TFT.cls(); |
bendavis96 | 7:ceeced183454 | 246 | TFT.locate(90,15); |
bendavis96 | 7:ceeced183454 | 247 | TFT.set_font((unsigned char*) Arial24x23); |
bendavis96 | 7:ceeced183454 | 248 | TFT.printf("AC System"); |
bendavis96 | 7:ceeced183454 | 249 | //show corners |
bendavis96 | 7:ceeced183454 | 250 | TFT.circle(10,10,10,0xffff); |
bendavis96 | 7:ceeced183454 | 251 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 252 | TFT.circle(308,10,10,0xffff); |
bendavis96 | 7:ceeced183454 | 253 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 254 | TFT.circle(10,229,10,0xffff); |
bendavis96 | 7:ceeced183454 | 255 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 256 | TFT.circle(308,229,10,0xffff); |
bendavis96 | 7:ceeced183454 | 257 | wait(0.1); |
bendavis96 | 7:ceeced183454 | 258 | //add menu buttons |
bendavis96 | 7:ceeced183454 | 259 | TFT.rect(25,200,155,140,0xffff); |
bendavis96 | 7:ceeced183454 | 260 | TFT.rect(165,200,295,140,0xffff); |
bendavis96 | 7:ceeced183454 | 261 | //text for buttons |
bendavis96 | 7:ceeced183454 | 262 | TFT.set_font((unsigned char*) Arial12x12); |
bendavis96 | 7:ceeced183454 | 263 | TFT.locate(60,165); |
bendavis96 | 7:ceeced183454 | 264 | TFT.printf("FAN OFF"); |
bendavis96 | 7:ceeced183454 | 265 | TFT.locate(200,165); |
bendavis96 | 7:ceeced183454 | 266 | TFT.printf("FAN ON"); |
bendavis96 | 8:95cd847648cd | 267 | TFT.locate(6,6); |
bendavis96 | 8:95cd847648cd | 268 | TFT.printf("X"); |
bendavis96 | 8:95cd847648cd | 269 | } |
bendavis96 | 8:95cd847648cd | 270 | |
bendavis96 | 8:95cd847648cd | 271 | void autos() |
bendavis96 | 8:95cd847648cd | 272 | { |
bendavis96 | 8:95cd847648cd | 273 | |
bendavis96 | 8:95cd847648cd | 274 | TFT.cls(); |
bendavis96 | 8:95cd847648cd | 275 | TFT.locate(30,15); |
bendavis96 | 8:95cd847648cd | 276 | TFT.set_font((unsigned char*) Arial24x23); |
bendavis96 | 8:95cd847648cd | 277 | TFT.printf("Automatic Control"); |
bendavis96 | 8:95cd847648cd | 278 | //show corners |
bendavis96 | 8:95cd847648cd | 279 | TFT.circle(10,10,10,0xffff); |
bendavis96 | 8:95cd847648cd | 280 | wait(0.1); |
bendavis96 | 8:95cd847648cd | 281 | TFT.circle(308,10,10,0xffff); |
bendavis96 | 8:95cd847648cd | 282 | wait(0.1); |
bendavis96 | 8:95cd847648cd | 283 | TFT.circle(10,229,10,0xffff); |
bendavis96 | 8:95cd847648cd | 284 | wait(0.1); |
bendavis96 | 8:95cd847648cd | 285 | TFT.circle(308,229,10,0xffff); |
bendavis96 | 8:95cd847648cd | 286 | wait(0.1); |
bendavis96 | 8:95cd847648cd | 287 | //add menu buttons |
bendavis96 | 8:95cd847648cd | 288 | TFT.rect(25,200,155,140,0xffff); |
bendavis96 | 8:95cd847648cd | 289 | TFT.rect(165,200,295,140,0xffff); |
bendavis96 | 8:95cd847648cd | 290 | //text for buttons |
bendavis96 | 8:95cd847648cd | 291 | TFT.set_font((unsigned char*) Arial12x12); |
bendavis96 | 8:95cd847648cd | 292 | TFT.locate(75,165); |
bendavis96 | 8:95cd847648cd | 293 | TFT.printf("OFF"); |
bendavis96 | 8:95cd847648cd | 294 | TFT.locate(215,165); |
bendavis96 | 8:95cd847648cd | 295 | TFT.printf("ON"); |
bendavis96 | 8:95cd847648cd | 296 | TFT.locate(6,6); |
bendavis96 | 8:95cd847648cd | 297 | TFT.printf("X"); |
bendavis96 | 7:ceeced183454 | 298 | } |
bendavis96 | 7:ceeced183454 | 299 | |
bendavis96 | 9:0adb037a25a4 | 300 | //%%%%%%%%% OUTPUTS %%%%%%%%%%%%%%% |
bendavis96 | 9:0adb037a25a4 | 301 | |
bendavis96 | 9:0adb037a25a4 | 302 | void alarm_off() |
bendavis96 | 9:0adb037a25a4 | 303 | { |
bendavis96 | 9:0adb037a25a4 | 304 | dev.printf("AT+CIPSEND=0,1\r\n"); |
bendavis96 | 9:0adb037a25a4 | 305 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 306 | dev.printf("x"); |
bendavis96 | 9:0adb037a25a4 | 307 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 308 | } |
bendavis96 | 9:0adb037a25a4 | 309 | |
bendavis96 | 9:0adb037a25a4 | 310 | void control_start(){ |
bendavis96 | 9:0adb037a25a4 | 311 | dev.printf("AT+CIPSEND=1,1\r\n"); |
bendavis96 | 9:0adb037a25a4 | 312 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 313 | dev.printf("G"); |
bendavis96 | 9:0adb037a25a4 | 314 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 315 | } |
bendavis96 | 9:0adb037a25a4 | 316 | |
bendavis96 | 9:0adb037a25a4 | 317 | void lights_off() |
bendavis96 | 9:0adb037a25a4 | 318 | { |
bendavis96 | 9:0adb037a25a4 | 319 | dev.printf("AT+CIPSEND=1,1\r\n"); |
bendavis96 | 9:0adb037a25a4 | 320 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 321 | dev.printf("Z"); |
bendavis96 | 9:0adb037a25a4 | 322 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 323 | } |
bendavis96 | 9:0adb037a25a4 | 324 | |
bendavis96 | 9:0adb037a25a4 | 325 | void lights_1() |
bendavis96 | 9:0adb037a25a4 | 326 | { |
bendavis96 | 9:0adb037a25a4 | 327 | dev.printf("AT+CIPSEND=1,1\r\n"); |
bendavis96 | 9:0adb037a25a4 | 328 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 329 | dev.printf("X"); |
bendavis96 | 9:0adb037a25a4 | 330 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 331 | } |
bendavis96 | 9:0adb037a25a4 | 332 | |
bendavis96 | 9:0adb037a25a4 | 333 | void lights_2() |
bendavis96 | 9:0adb037a25a4 | 334 | { |
bendavis96 | 9:0adb037a25a4 | 335 | dev.printf("AT+CIPSEND=1,1\r\n"); |
bendavis96 | 9:0adb037a25a4 | 336 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 337 | dev.printf("Y"); |
bendavis96 | 9:0adb037a25a4 | 338 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 339 | } |
bendavis96 | 9:0adb037a25a4 | 340 | |
bendavis96 | 9:0adb037a25a4 | 341 | void lights_3() |
bendavis96 | 9:0adb037a25a4 | 342 | { |
bendavis96 | 9:0adb037a25a4 | 343 | dev.printf("AT+CIPSEND=1,1\r\n"); |
bendavis96 | 9:0adb037a25a4 | 344 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 345 | dev.printf("W"); |
bendavis96 | 9:0adb037a25a4 | 346 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 347 | } |
bendavis96 | 9:0adb037a25a4 | 348 | |
bendavis96 | 9:0adb037a25a4 | 349 | void fan_off() |
bendavis96 | 9:0adb037a25a4 | 350 | { |
bendavis96 | 9:0adb037a25a4 | 351 | dev.printf("AT+CIPSEND=1,1\r\n"); |
bendavis96 | 9:0adb037a25a4 | 352 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 353 | dev.printf("L"); |
bendavis96 | 9:0adb037a25a4 | 354 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 355 | } |
bendavis96 | 9:0adb037a25a4 | 356 | |
bendavis96 | 9:0adb037a25a4 | 357 | void fan_on() |
bendavis96 | 9:0adb037a25a4 | 358 | { |
bendavis96 | 9:0adb037a25a4 | 359 | dev.printf("AT+CIPSEND=1,1\r\n"); |
bendavis96 | 9:0adb037a25a4 | 360 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 361 | dev.printf("K"); |
bendavis96 | 9:0adb037a25a4 | 362 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 363 | } |
bendavis96 | 9:0adb037a25a4 | 364 | |
bendavis96 | 9:0adb037a25a4 | 365 | void autom_togg() |
bendavis96 | 9:0adb037a25a4 | 366 | { |
bendavis96 | 9:0adb037a25a4 | 367 | dev.printf("AT+CIPSEND=1,1\r\n"); |
bendavis96 | 9:0adb037a25a4 | 368 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 369 | dev.printf("Q"); |
bendavis96 | 9:0adb037a25a4 | 370 | wait(0.1); |
bendavis96 | 9:0adb037a25a4 | 371 | } |
bendavis96 | 7:ceeced183454 | 372 | //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
bendavis96 | 7:ceeced183454 | 373 | //%%%%% IDs %%%%%% |
bendavis96 | 7:ceeced183454 | 374 | |
bendavis96 | 7:ceeced183454 | 375 | void ben() |
bendavis96 | 7:ceeced183454 | 376 | { |
bendavis96 | 7:ceeced183454 | 377 | |
bendavis96 | 7:ceeced183454 | 378 | rled = 0; |
bendavis96 | 7:ceeced183454 | 379 | bled = 1; |
bendavis96 | 7:ceeced183454 | 380 | gled = 1; |
bendavis96 | 7:ceeced183454 | 381 | |
bendavis96 | 9:0adb037a25a4 | 382 | alarm_off(); |
bendavis96 | 9:0adb037a25a4 | 383 | control_start(); |
bendavis96 | 7:ceeced183454 | 384 | TFT.printf("B"); |
bendavis96 | 7:ceeced183454 | 385 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 386 | TFT.printf("e"); |
bendavis96 | 7:ceeced183454 | 387 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 388 | TFT.printf("n"); |
bendavis96 | 9:0adb037a25a4 | 389 | |
bendavis96 | 7:ceeced183454 | 390 | } |
bendavis96 | 7:ceeced183454 | 391 | |
bendavis96 | 7:ceeced183454 | 392 | void joe() |
bendavis96 | 7:ceeced183454 | 393 | { |
bendavis96 | 7:ceeced183454 | 394 | rled = 1; |
bendavis96 | 7:ceeced183454 | 395 | bled = 0; |
bendavis96 | 7:ceeced183454 | 396 | gled = 1; |
bendavis96 | 7:ceeced183454 | 397 | |
bendavis96 | 9:0adb037a25a4 | 398 | alarm_off(); |
bendavis96 | 9:0adb037a25a4 | 399 | control_start(); |
bendavis96 | 7:ceeced183454 | 400 | TFT.printf("J"); |
bendavis96 | 7:ceeced183454 | 401 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 402 | TFT.printf("o"); |
bendavis96 | 7:ceeced183454 | 403 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 404 | TFT.printf("e"); |
bendavis96 | 7:ceeced183454 | 405 | |
bendavis96 | 7:ceeced183454 | 406 | } |
bendavis96 | 7:ceeced183454 | 407 | |
bendavis96 | 7:ceeced183454 | 408 | void arthur() |
bendavis96 | 7:ceeced183454 | 409 | { |
bendavis96 | 7:ceeced183454 | 410 | rled = 1; |
bendavis96 | 7:ceeced183454 | 411 | bled = 0; |
bendavis96 | 7:ceeced183454 | 412 | gled = 1; |
bendavis96 | 7:ceeced183454 | 413 | |
bendavis96 | 9:0adb037a25a4 | 414 | alarm_off(); |
bendavis96 | 9:0adb037a25a4 | 415 | control_start(); |
bendavis96 | 7:ceeced183454 | 416 | TFT.printf("A"); |
bendavis96 | 7:ceeced183454 | 417 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 418 | TFT.printf("r"); |
bendavis96 | 7:ceeced183454 | 419 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 420 | TFT.printf("t"); |
bendavis96 | 7:ceeced183454 | 421 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 422 | TFT.printf("h"); |
bendavis96 | 7:ceeced183454 | 423 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 424 | TFT.printf("u"); |
bendavis96 | 7:ceeced183454 | 425 | wait(0.05); |
bendavis96 | 7:ceeced183454 | 426 | TFT.printf("r"); |
bendavis96 | 7:ceeced183454 | 427 | |
bendavis96 | 7:ceeced183454 | 428 | } |
bendavis96 | 7:ceeced183454 | 429 | |
bendavis96 | 7:ceeced183454 | 430 | void intruder() |
bendavis96 | 7:ceeced183454 | 431 | { |
bendavis96 | 7:ceeced183454 | 432 | rled = 0; |
bendavis96 | 7:ceeced183454 | 433 | bled = 0; |
bendavis96 | 7:ceeced183454 | 434 | gled = 0; |
bendavis96 | 7:ceeced183454 | 435 | TFT.cls(); // clear the screen |
bendavis96 | 7:ceeced183454 | 436 | TFT.set_font((unsigned char*) Neu42x35); |
bendavis96 | 7:ceeced183454 | 437 | TFT.locate(45,105); |
bendavis96 | 7:ceeced183454 | 438 | TFT.foreground(Red); |
bendavis96 | 7:ceeced183454 | 439 | TFT.printf("INTRUDER!"); |
bendavis96 | 7:ceeced183454 | 440 | wait(0.4); |
bendavis96 | 7:ceeced183454 | 441 | TFT.cls(); |
bendavis96 | 7:ceeced183454 | 442 | wait(0.2); |
bendavis96 | 7:ceeced183454 | 443 | TFT.locate(45,105); |
bendavis96 | 7:ceeced183454 | 444 | TFT.printf("INTRUDER!"); |
bendavis96 | 7:ceeced183454 | 445 | wait(0.4); |
bendavis96 | 7:ceeced183454 | 446 | TFT.cls(); |
bendavis96 | 7:ceeced183454 | 447 | wait(0.2); |
bendavis96 | 7:ceeced183454 | 448 | TFT.locate(45,105); |
bendavis96 | 7:ceeced183454 | 449 | TFT.printf("INTRUDER!"); |
bendavis96 | 7:ceeced183454 | 450 | wait(0.4); |
bendavis96 | 7:ceeced183454 | 451 | TFT.cls(); |
bendavis96 | 7:ceeced183454 | 452 | wait(0.2); |
bendavis96 | 7:ceeced183454 | 453 | TFT.locate(45,105); |
bendavis96 | 7:ceeced183454 | 454 | TFT.printf("INTRUDER!"); |
bendavis96 | 7:ceeced183454 | 455 | wait(0.4); |
bendavis96 | 7:ceeced183454 | 456 | TFT.cls(); |
bendavis96 | 7:ceeced183454 | 457 | wait(0.2); |
bendavis96 | 7:ceeced183454 | 458 | TFT.locate(45,105); |
bendavis96 | 7:ceeced183454 | 459 | TFT.foreground(White); |
bendavis96 | 7:ceeced183454 | 460 | TFT.cls(); |
bendavis96 | 7:ceeced183454 | 461 | rled = 1; |
bendavis96 | 7:ceeced183454 | 462 | bled = 1; |
bendavis96 | 7:ceeced183454 | 463 | gled = 1; |
bendavis96 | 7:ceeced183454 | 464 | } |
bendavis96 | 7:ceeced183454 | 465 | |
bendavis96 | 7:ceeced183454 | 466 | //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
bendavis96 | 7:ceeced183454 | 467 | |
cstevens | 6:18c7288b5e00 | 468 | |
cstevens | 6:18c7288b5e00 | 469 | |
cstevens | 4:14043cafbec7 | 470 | |
dreschpe | 0:7c3b9bfd6ead | 471 | int main() |
dreschpe | 0:7c3b9bfd6ead | 472 | { |
bendavis96 | 9:0adb037a25a4 | 473 | //%%%%%%%%%%%%%%%% WIFI %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
bendavis96 | 9:0adb037a25a4 | 474 | pc.printf("start"); |
bendavis96 | 9:0adb037a25a4 | 475 | pc.baud(115200); |
bendavis96 | 9:0adb037a25a4 | 476 | dev.baud(115200); |
bendavis96 | 9:0adb037a25a4 | 477 | rst = 0; |
bendavis96 | 9:0adb037a25a4 | 478 | wait(1); |
bendavis96 | 9:0adb037a25a4 | 479 | rst = 1; // send the esp8266 reset |
bendavis96 | 9:0adb037a25a4 | 480 | wait(1); |
bendavis96 | 9:0adb037a25a4 | 481 | |
bendavis96 | 9:0adb037a25a4 | 482 | rled = 0, gled = 1; //Red LED indicates startup in progress |
bendavis96 | 9:0adb037a25a4 | 483 | |
bendavis96 | 9:0adb037a25a4 | 484 | pc.attach(&pc_recv, Serial::RxIrq); // attach the two interrupt services |
bendavis96 | 9:0adb037a25a4 | 485 | dev.attach(&dev_recv, Serial::RxIrq); |
bendavis96 | 9:0adb037a25a4 | 486 | dev.printf("AT+RST\r\n"); |
bendavis96 | 9:0adb037a25a4 | 487 | wait(10); |
bendavis96 | 9:0adb037a25a4 | 488 | dev.printf("AT+CWJAP=\"BTHub3-WXWX\",\"fdd6f7c682\"\r\n"); |
bendavis96 | 9:0adb037a25a4 | 489 | wait(10); |
bendavis96 | 9:0adb037a25a4 | 490 | dev.printf("AT+CIPMUX=1\r\n"); |
bendavis96 | 9:0adb037a25a4 | 491 | wait(2); |
bendavis96 | 9:0adb037a25a4 | 492 | dev.printf("AT+CIPSERVER=1,333\r\n"); |
bendavis96 | 9:0adb037a25a4 | 493 | wait(2); |
bendavis96 | 9:0adb037a25a4 | 494 | dev.printf("AT+CIPSTO=3000\r\n"); |
bendavis96 | 9:0adb037a25a4 | 495 | |
bendavis96 | 9:0adb037a25a4 | 496 | rled = 1, gled = 0; //Green LED indicates startup complete |
bendavis96 | 9:0adb037a25a4 | 497 | |
bendavis96 | 9:0adb037a25a4 | 498 | //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
bendavis96 | 9:0adb037a25a4 | 499 | |
bendavis96 | 7:ceeced183454 | 500 | int display = 0; |
bendavis96 | 7:ceeced183454 | 501 | int reading = 0; |
bendavis96 | 7:ceeced183454 | 502 | int id = 0; |
bendavis96 | 7:ceeced183454 | 503 | |
cstevens | 6:18c7288b5e00 | 504 | pc.baud(115200); |
cstevens | 6:18c7288b5e00 | 505 | |
cstevens | 6:18c7288b5e00 | 506 | int xpos=0,ypos=0,xp=0,yp=0; |
bendavis96 | 7:ceeced183454 | 507 | |
bendavis96 | 7:ceeced183454 | 508 | while (1) { |
bendavis96 | 7:ceeced183454 | 509 | |
bendavis96 | 7:ceeced183454 | 510 | pc.printf("%d",id); |
bendavis96 | 7:ceeced183454 | 511 | |
bendavis96 | 7:ceeced183454 | 512 | switch (display) { |
bendavis96 | 7:ceeced183454 | 513 | |
bendavis96 | 7:ceeced183454 | 514 | case 0 : //start screen |
bendavis96 | 7:ceeced183454 | 515 | |
bendavis96 | 7:ceeced183454 | 516 | start(); |
bendavis96 | 7:ceeced183454 | 517 | |
bendavis96 | 7:ceeced183454 | 518 | while (display == 0) { |
cstevens | 6:18c7288b5e00 | 519 | |
bendavis96 | 7:ceeced183454 | 520 | reading = rfid.readable(); |
bendavis96 | 7:ceeced183454 | 521 | if (reading) { |
bendavis96 | 7:ceeced183454 | 522 | display = 1; //FOR TESTING LIGHTING, SHOULD BE 1 |
bendavis96 | 7:ceeced183454 | 523 | id = rfid.read(); |
bendavis96 | 7:ceeced183454 | 524 | } |
bendavis96 | 7:ceeced183454 | 525 | |
bendavis96 | 7:ceeced183454 | 526 | } |
bendavis96 | 7:ceeced183454 | 527 | break; |
bendavis96 | 7:ceeced183454 | 528 | |
bendavis96 | 7:ceeced183454 | 529 | case 1 : //welcome screen |
bendavis96 | 7:ceeced183454 | 530 | |
bendavis96 | 7:ceeced183454 | 531 | home(); |
cstevens | 6:18c7288b5e00 | 532 | |
bendavis96 | 7:ceeced183454 | 533 | //Personalised |
bendavis96 | 7:ceeced183454 | 534 | switch (id) { |
bendavis96 | 7:ceeced183454 | 535 | |
bendavis96 | 7:ceeced183454 | 536 | case 22311780 : //Ben |
bendavis96 | 7:ceeced183454 | 537 | welcome(); |
bendavis96 | 7:ceeced183454 | 538 | ben(); |
bendavis96 | 7:ceeced183454 | 539 | break; |
bendavis96 | 7:ceeced183454 | 540 | |
bendavis96 | 7:ceeced183454 | 541 | case 22320978 : //Joe |
bendavis96 | 7:ceeced183454 | 542 | welcome(); |
bendavis96 | 7:ceeced183454 | 543 | joe(); |
bendavis96 | 7:ceeced183454 | 544 | break; |
dreschpe | 0:7c3b9bfd6ead | 545 | |
bendavis96 | 7:ceeced183454 | 546 | case 22352757 : //Arthur |
bendavis96 | 7:ceeced183454 | 547 | welcome(); |
bendavis96 | 7:ceeced183454 | 548 | arthur(); |
bendavis96 | 7:ceeced183454 | 549 | break; |
bendavis96 | 7:ceeced183454 | 550 | |
bendavis96 | 7:ceeced183454 | 551 | default : //intruder case |
bendavis96 | 7:ceeced183454 | 552 | intruder(); |
bendavis96 | 7:ceeced183454 | 553 | display = 0; |
bendavis96 | 7:ceeced183454 | 554 | break; |
bendavis96 | 7:ceeced183454 | 555 | } |
bendavis96 | 7:ceeced183454 | 556 | if (display == 0) { //intruder restarts system |
bendavis96 | 7:ceeced183454 | 557 | break; |
bendavis96 | 7:ceeced183454 | 558 | } |
bendavis96 | 7:ceeced183454 | 559 | while (display == 1) { |
bendavis96 | 9:0adb037a25a4 | 560 | //%%%%%% RFID Override %%%%%%%% |
bendavis96 | 9:0adb037a25a4 | 561 | reading = rfid.readable(); |
bendavis96 | 9:0adb037a25a4 | 562 | if (reading) { |
bendavis96 | 9:0adb037a25a4 | 563 | id = rfid.read(); |
bendavis96 | 9:0adb037a25a4 | 564 | TFT.set_orientation(1); |
bendavis96 | 9:0adb037a25a4 | 565 | break; |
bendavis96 | 9:0adb037a25a4 | 566 | } |
bendavis96 | 8:95cd847648cd | 567 | //%%%%% INCOMING DATA %%%%%% |
bendavis96 | 9:0adb037a25a4 | 568 | /*TFT.set_orientation(1); |
bendavis96 | 8:95cd847648cd | 569 | TFT.foreground(White); |
bendavis96 | 8:95cd847648cd | 570 | TFT.locate(145,0); |
bendavis96 | 8:95cd847648cd | 571 | TFT.set_font((unsigned char*) Arial12x12); |
bendavis96 | 8:95cd847648cd | 572 | TFT.printf("Temperature: 25.0 C"); |
bendavis96 | 8:95cd847648cd | 573 | TFT.locate(145,15); |
bendavis96 | 8:95cd847648cd | 574 | TFT.printf("Fan: On"); |
bendavis96 | 8:95cd847648cd | 575 | TFT.locate(145, 30); |
bendavis96 | 8:95cd847648cd | 576 | TFT.printf("Lights: Low"); |
bendavis96 | 9:0adb037a25a4 | 577 | TFT.foreground(Cyan); */ |
bendavis96 | 8:95cd847648cd | 578 | |
bendavis96 | 7:ceeced183454 | 579 | //%%%%% TOUCH %%%%%% |
bendavis96 | 7:ceeced183454 | 580 | TFT.set_orientation(0); |
bendavis96 | 7:ceeced183454 | 581 | xpos= readX(); |
bendavis96 | 7:ceeced183454 | 582 | ypos= readY(); |
dreschpe | 0:7c3b9bfd6ead | 583 | |
bendavis96 | 7:ceeced183454 | 584 | xp=(240*(xpos-5800))/51200; |
bendavis96 | 7:ceeced183454 | 585 | yp=320-(320*(ypos-3000))/58300; |
bendavis96 | 7:ceeced183454 | 586 | |
bendavis96 | 8:95cd847648cd | 587 | if (yp<120 && xp<120 && touching==1) { //button for lighting |
bendavis96 | 7:ceeced183454 | 588 | |
bendavis96 | 7:ceeced183454 | 589 | display = 2; //jump to lights |
bendavis96 | 7:ceeced183454 | 590 | TFT.set_orientation(1); |
bendavis96 | 7:ceeced183454 | 591 | } |
bendavis96 | 8:95cd847648cd | 592 | |
bendavis96 | 8:95cd847648cd | 593 | if (yp>230 && xp<120 && touching==1) { //button for ac system |
bendavis96 | 7:ceeced183454 | 594 | |
bendavis96 | 7:ceeced183454 | 595 | display = 3; //jump to ac |
bendavis96 | 7:ceeced183454 | 596 | TFT.set_orientation(1); |
bendavis96 | 7:ceeced183454 | 597 | } |
bendavis96 | 8:95cd847648cd | 598 | |
bendavis96 | 8:95cd847648cd | 599 | if (yp<100 && xp>120 && touching==1) { //button for auto control |
bendavis96 | 8:95cd847648cd | 600 | |
bendavis96 | 8:95cd847648cd | 601 | display = 4; //jump to automatic control |
bendavis96 | 8:95cd847648cd | 602 | TFT.set_orientation(1); |
bendavis96 | 8:95cd847648cd | 603 | } |
bendavis96 | 7:ceeced183454 | 604 | } |
bendavis96 | 7:ceeced183454 | 605 | break; |
bendavis96 | 7:ceeced183454 | 606 | |
bendavis96 | 7:ceeced183454 | 607 | case 2 : //lighting screen |
bendavis96 | 7:ceeced183454 | 608 | |
bendavis96 | 7:ceeced183454 | 609 | |
bendavis96 | 7:ceeced183454 | 610 | lights(); |
bendavis96 | 7:ceeced183454 | 611 | |
bendavis96 | 7:ceeced183454 | 612 | while (display == 2) { |
bendavis96 | 7:ceeced183454 | 613 | |
bendavis96 | 8:95cd847648cd | 614 | //%%%%% TOUCH %%%%%% |
bendavis96 | 8:95cd847648cd | 615 | TFT.set_orientation(0); |
bendavis96 | 8:95cd847648cd | 616 | xpos= readX(); |
bendavis96 | 8:95cd847648cd | 617 | ypos= readY(); |
bendavis96 | 8:95cd847648cd | 618 | |
bendavis96 | 8:95cd847648cd | 619 | xp=(240*(xpos-5800))/51200; |
bendavis96 | 8:95cd847648cd | 620 | yp=320-(320*(ypos-3000))/58300; |
bendavis96 | 8:95cd847648cd | 621 | |
bendavis96 | 8:95cd847648cd | 622 | if (yp<120 && xp<120 && touching==1) { //button for LIGHTS OFF |
bendavis96 | 8:95cd847648cd | 623 | |
bendavis96 | 9:0adb037a25a4 | 624 | lights_off(); |
bendavis96 | 8:95cd847648cd | 625 | } |
bendavis96 | 8:95cd847648cd | 626 | |
bendavis96 | 9:0adb037a25a4 | 627 | if (yp>250 && xp<60 && touching==1) { //button for LIGHTS 1 |
bendavis96 | 8:95cd847648cd | 628 | |
bendavis96 | 9:0adb037a25a4 | 629 | lights_1(); |
bendavis96 | 8:95cd847648cd | 630 | } |
bendavis96 | 8:95cd847648cd | 631 | |
bendavis96 | 9:0adb037a25a4 | 632 | if (yp>250 && 70<xp<110 && touching==1) { //button for LIGHTS 2 |
bendavis96 | 8:95cd847648cd | 633 | |
bendavis96 | 9:0adb037a25a4 | 634 | lights_2(); |
bendavis96 | 8:95cd847648cd | 635 | } |
bendavis96 | 8:95cd847648cd | 636 | |
bendavis96 | 9:0adb037a25a4 | 637 | if (yp>250 && xp>115 && touching==1) { //button for LIGHTS 3 |
bendavis96 | 8:95cd847648cd | 638 | |
bendavis96 | 9:0adb037a25a4 | 639 | lights_3(); |
bendavis96 | 8:95cd847648cd | 640 | } |
bendavis96 | 8:95cd847648cd | 641 | |
bendavis96 | 8:95cd847648cd | 642 | if (yp<30 && xp>210 && touching==1) { //RETURN TO MAIN SCREEN |
bendavis96 | 8:95cd847648cd | 643 | |
bendavis96 | 8:95cd847648cd | 644 | display = 1; |
bendavis96 | 8:95cd847648cd | 645 | TFT.set_orientation(1); |
bendavis96 | 8:95cd847648cd | 646 | } |
bendavis96 | 8:95cd847648cd | 647 | |
bendavis96 | 8:95cd847648cd | 648 | |
bendavis96 | 8:95cd847648cd | 649 | //%%%%%% RFID Override %%%%%%%% |
bendavis96 | 8:95cd847648cd | 650 | reading = rfid.readable(); |
bendavis96 | 8:95cd847648cd | 651 | if (reading) { |
bendavis96 | 8:95cd847648cd | 652 | id = rfid.read(); |
bendavis96 | 8:95cd847648cd | 653 | TFT.set_orientation(1); |
bendavis96 | 8:95cd847648cd | 654 | display = 1; |
bendavis96 | 8:95cd847648cd | 655 | } |
bendavis96 | 7:ceeced183454 | 656 | } |
bendavis96 | 7:ceeced183454 | 657 | break; |
bendavis96 | 8:95cd847648cd | 658 | |
bendavis96 | 7:ceeced183454 | 659 | case 3 : //temperature screen |
bendavis96 | 7:ceeced183454 | 660 | |
bendavis96 | 7:ceeced183454 | 661 | |
bendavis96 | 7:ceeced183454 | 662 | temps(); |
bendavis96 | 7:ceeced183454 | 663 | |
bendavis96 | 7:ceeced183454 | 664 | while (display == 3) { |
bendavis96 | 7:ceeced183454 | 665 | |
bendavis96 | 8:95cd847648cd | 666 | //%%%%% TOUCH %%%%%% |
bendavis96 | 8:95cd847648cd | 667 | TFT.set_orientation(0); |
bendavis96 | 8:95cd847648cd | 668 | xpos= readX(); |
bendavis96 | 8:95cd847648cd | 669 | ypos= readY(); |
bendavis96 | 8:95cd847648cd | 670 | |
bendavis96 | 8:95cd847648cd | 671 | xp=(240*(xpos-5800))/51200; |
bendavis96 | 8:95cd847648cd | 672 | yp=320-(320*(ypos-3000))/58300; |
bendavis96 | 8:95cd847648cd | 673 | |
bendavis96 | 8:95cd847648cd | 674 | if (yp<120 && xp<120 && touching==1) { //button for FAN OFF |
bendavis96 | 8:95cd847648cd | 675 | |
bendavis96 | 9:0adb037a25a4 | 676 | fan_off(); |
bendavis96 | 8:95cd847648cd | 677 | } |
bendavis96 | 8:95cd847648cd | 678 | |
bendavis96 | 8:95cd847648cd | 679 | if (yp>230 && xp<120 && touching==1) { //button for FAN ON |
bendavis96 | 8:95cd847648cd | 680 | |
bendavis96 | 9:0adb037a25a4 | 681 | fan_on(); |
bendavis96 | 8:95cd847648cd | 682 | } |
bendavis96 | 8:95cd847648cd | 683 | |
bendavis96 | 8:95cd847648cd | 684 | if (yp<30 && xp>210 && touching==1) { //RETURN TO MAIN SCREEN |
bendavis96 | 8:95cd847648cd | 685 | |
bendavis96 | 8:95cd847648cd | 686 | display = 1; |
bendavis96 | 8:95cd847648cd | 687 | TFT.set_orientation(1); |
bendavis96 | 8:95cd847648cd | 688 | } |
bendavis96 | 8:95cd847648cd | 689 | |
bendavis96 | 8:95cd847648cd | 690 | |
bendavis96 | 8:95cd847648cd | 691 | //%%%%%% RFID Override %%%%%%%% |
bendavis96 | 8:95cd847648cd | 692 | reading = rfid.readable(); |
bendavis96 | 8:95cd847648cd | 693 | if (reading) { |
bendavis96 | 8:95cd847648cd | 694 | id = rfid.read(); |
bendavis96 | 8:95cd847648cd | 695 | TFT.set_orientation(1); |
bendavis96 | 8:95cd847648cd | 696 | display = 1; |
bendavis96 | 8:95cd847648cd | 697 | } |
bendavis96 | 7:ceeced183454 | 698 | } |
bendavis96 | 7:ceeced183454 | 699 | break; |
bendavis96 | 7:ceeced183454 | 700 | |
bendavis96 | 8:95cd847648cd | 701 | case 4 : //auto controls |
bendavis96 | 7:ceeced183454 | 702 | |
bendavis96 | 8:95cd847648cd | 703 | |
bendavis96 | 8:95cd847648cd | 704 | autos(); |
bendavis96 | 8:95cd847648cd | 705 | |
bendavis96 | 8:95cd847648cd | 706 | while (display == 4) { |
bendavis96 | 8:95cd847648cd | 707 | |
bendavis96 | 8:95cd847648cd | 708 | //%%%%% TOUCH %%%%%% |
bendavis96 | 8:95cd847648cd | 709 | TFT.set_orientation(0); |
bendavis96 | 8:95cd847648cd | 710 | xpos= readX(); |
bendavis96 | 8:95cd847648cd | 711 | ypos= readY(); |
bendavis96 | 8:95cd847648cd | 712 | |
bendavis96 | 8:95cd847648cd | 713 | xp=(240*(xpos-5800))/51200; |
bendavis96 | 8:95cd847648cd | 714 | yp=320-(320*(ypos-3000))/58300; |
bendavis96 | 8:95cd847648cd | 715 | |
bendavis96 | 8:95cd847648cd | 716 | if (yp<120 && xp<120 && touching==1) { //button for AUTO OFF |
bendavis96 | 8:95cd847648cd | 717 | |
bendavis96 | 9:0adb037a25a4 | 718 | autom_togg(); |
bendavis96 | 8:95cd847648cd | 719 | } |
bendavis96 | 8:95cd847648cd | 720 | |
bendavis96 | 8:95cd847648cd | 721 | if (yp>230 && xp<120 && touching==1) { //button for AUTO ON |
bendavis96 | 8:95cd847648cd | 722 | |
bendavis96 | 9:0adb037a25a4 | 723 | autom_togg(); |
bendavis96 | 8:95cd847648cd | 724 | } |
bendavis96 | 8:95cd847648cd | 725 | |
bendavis96 | 8:95cd847648cd | 726 | if (yp<30 && xp>210 && touching==1) { //RETURN TO MAIN SCREEN |
bendavis96 | 8:95cd847648cd | 727 | |
bendavis96 | 8:95cd847648cd | 728 | display = 1; |
bendavis96 | 8:95cd847648cd | 729 | TFT.set_orientation(1); |
bendavis96 | 8:95cd847648cd | 730 | } |
bendavis96 | 8:95cd847648cd | 731 | |
bendavis96 | 8:95cd847648cd | 732 | |
bendavis96 | 8:95cd847648cd | 733 | //%%%%%% RFID Override %%%%%%%% |
bendavis96 | 8:95cd847648cd | 734 | reading = rfid.readable(); |
bendavis96 | 8:95cd847648cd | 735 | if (reading) { |
bendavis96 | 8:95cd847648cd | 736 | id = rfid.read(); |
bendavis96 | 8:95cd847648cd | 737 | TFT.set_orientation(1); |
bendavis96 | 8:95cd847648cd | 738 | display = 1; |
bendavis96 | 8:95cd847648cd | 739 | } |
bendavis96 | 8:95cd847648cd | 740 | } |
bendavis96 | 8:95cd847648cd | 741 | break; |
bendavis96 | 7:ceeced183454 | 742 | } |
cstevens | 6:18c7288b5e00 | 743 | } |
bendavis96 | 7:ceeced183454 | 744 | } |