Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: ID12RFID SPI_TFT_ILI9341 TFT_fonts mbed
Fork of Welcome_Screen_TFT_2_point_oh by
Revision 9:0adb037a25a4, committed 2016-06-17
- Comitter:
- bendavis96
- Date:
- Fri Jun 17 12:38:37 2016 +0000
- Parent:
- 8:95cd847648cd
- Commit message:
- wifi inbound signals and outbound signals to led etc working, all working!;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Jun 16 20:56:50 2016 +0000
+++ b/main.cpp Fri Jun 17 12:38:37 2016 +0000
@@ -18,9 +18,11 @@
Serial pc (USBTX,USBRX);
ID12RFID rfid(PTE23);
+Serial dev(PTE0,PTE1); // for KL25Z... asuming one can't use the PTA1 version which is the stdio
DigitalOut rled(LED1);
DigitalOut gled(LED2);
DigitalOut bled(LED3);
+DigitalOut rst(PTD7); // single digital pin to drive the esp8266 reset line
int touching = 0;
@@ -38,6 +40,39 @@
// SPI_TFT_ILI9341 TFT(PTD2, PTD3, PTD1, PTA16, PTA17, PTC16,"TFT"); // mosi, miso, sclk, cs, reset, dc for frdmkl25z
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+//%%%%%%%%%%%%%%%%%%%%%% WIFI %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+// subroutine to run anytime a serial interrupt arrives from the device
+// this basically passes everything thatthe device produces on to the pc terminal screen
+
+void dev_recv()
+{
+ while(dev.readable()) {
+ pc.putc(dev.getc());
+ wait_us(1);
+ }
+}
+// subroutine to service the serial interrupt on the pc connection
+// this is a bit more complex - it takes what the use sends on the pc and copies it on to the device
+// the esp should echo these straight back to the the pc if all is well
+// this also detects the end of command character which is ascii 13 (0x0d) adn adds a linefeed after it =asscii 10 (0x0a)
+void pc_recv()
+{
+ char c;
+ while(pc.readable()) {
+ c = pc.getc();
+ dev.putc(c);
+ // pc.putc(c); // echo back
+ if(c==13) {
+ dev.putc(10); // send the linefeed to complement the carriage return generated by return key on the pc
+ pc.putc(10);
+ }
+ }
+}
+
+/*void client() {
+
+ i = dev.getc(); */
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%% Subroutine to read the x location of the touch point %%%%%%%%%%
@@ -262,6 +297,78 @@
TFT.printf("X");
}
+//%%%%%%%%% OUTPUTS %%%%%%%%%%%%%%%
+
+void alarm_off()
+{
+ dev.printf("AT+CIPSEND=0,1\r\n");
+ wait(0.1);
+ dev.printf("x");
+ wait(0.1);
+}
+
+void control_start(){
+ dev.printf("AT+CIPSEND=1,1\r\n");
+ wait(0.1);
+ dev.printf("G");
+ wait(0.1);
+}
+
+void lights_off()
+{
+ dev.printf("AT+CIPSEND=1,1\r\n");
+ wait(0.1);
+ dev.printf("Z");
+ wait(0.1);
+}
+
+void lights_1()
+{
+ dev.printf("AT+CIPSEND=1,1\r\n");
+ wait(0.1);
+ dev.printf("X");
+ wait(0.1);
+}
+
+void lights_2()
+{
+ dev.printf("AT+CIPSEND=1,1\r\n");
+ wait(0.1);
+ dev.printf("Y");
+ wait(0.1);
+}
+
+void lights_3()
+{
+ dev.printf("AT+CIPSEND=1,1\r\n");
+ wait(0.1);
+ dev.printf("W");
+ wait(0.1);
+}
+
+void fan_off()
+{
+ dev.printf("AT+CIPSEND=1,1\r\n");
+ wait(0.1);
+ dev.printf("L");
+ wait(0.1);
+}
+
+void fan_on()
+{
+ dev.printf("AT+CIPSEND=1,1\r\n");
+ wait(0.1);
+ dev.printf("K");
+ wait(0.1);
+}
+
+void autom_togg()
+{
+ dev.printf("AT+CIPSEND=1,1\r\n");
+ wait(0.1);
+ dev.printf("Q");
+ wait(0.1);
+}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%% IDs %%%%%%
@@ -272,11 +379,14 @@
bled = 1;
gled = 1;
+ alarm_off();
+ control_start();
TFT.printf("B");
wait(0.05);
TFT.printf("e");
wait(0.05);
TFT.printf("n");
+
}
void joe()
@@ -285,6 +395,8 @@
bled = 0;
gled = 1;
+ alarm_off();
+ control_start();
TFT.printf("J");
wait(0.05);
TFT.printf("o");
@@ -299,6 +411,8 @@
bled = 0;
gled = 1;
+ alarm_off();
+ control_start();
TFT.printf("A");
wait(0.05);
TFT.printf("r");
@@ -356,6 +470,33 @@
int main()
{
+//%%%%%%%%%%%%%%%% WIFI %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ pc.printf("start");
+ pc.baud(115200);
+ dev.baud(115200);
+ rst = 0;
+ wait(1);
+ rst = 1; // send the esp8266 reset
+ wait(1);
+
+ rled = 0, gled = 1; //Red LED indicates startup in progress
+
+ pc.attach(&pc_recv, Serial::RxIrq); // attach the two interrupt services
+ dev.attach(&dev_recv, Serial::RxIrq);
+ dev.printf("AT+RST\r\n");
+ wait(10);
+ dev.printf("AT+CWJAP=\"BTHub3-WXWX\",\"fdd6f7c682\"\r\n");
+ wait(10);
+ dev.printf("AT+CIPMUX=1\r\n");
+ wait(2);
+ dev.printf("AT+CIPSERVER=1,333\r\n");
+ wait(2);
+ dev.printf("AT+CIPSTO=3000\r\n");
+
+ rled = 1, gled = 0; //Green LED indicates startup complete
+
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
int display = 0;
int reading = 0;
int id = 0;
@@ -416,8 +557,15 @@
break;
}
while (display == 1) {
+ //%%%%%% RFID Override %%%%%%%%
+ reading = rfid.readable();
+ if (reading) {
+ id = rfid.read();
+ TFT.set_orientation(1);
+ break;
+ }
//%%%%% INCOMING DATA %%%%%%
- TFT.set_orientation(1);
+ /*TFT.set_orientation(1);
TFT.foreground(White);
TFT.locate(145,0);
TFT.set_font((unsigned char*) Arial12x12);
@@ -426,7 +574,7 @@
TFT.printf("Fan: On");
TFT.locate(145, 30);
TFT.printf("Lights: Low");
- TFT.foreground(Cyan);
+ TFT.foreground(Cyan); */
//%%%%% TOUCH %%%%%%
TFT.set_orientation(0);
@@ -453,14 +601,6 @@
display = 4; //jump to automatic control
TFT.set_orientation(1);
}
-
- //%%%%%% RFID Override %%%%%%%%
- reading = rfid.readable();
- if (reading) {
- id = rfid.read();
- TFT.set_orientation(1);
- break;
- }
}
break;
@@ -481,22 +621,22 @@
if (yp<120 && xp<120 && touching==1) { //button for LIGHTS OFF
- //LIGHTS OFF ACTION
+ lights_off();
}
- if (yp>230 && xp<60 && touching==1) { //button for LIGHTS 1
+ if (yp>250 && xp<60 && touching==1) { //button for LIGHTS 1
- //LIGHTS 1 ACTION
+ lights_1();
}
- if (yp>230 && 70<xp<110 && touching==1) { //button for LIGHTS 2
+ if (yp>250 && 70<xp<110 && touching==1) { //button for LIGHTS 2
- //LIGHTS 2 ACTION
+ lights_2();
}
- if (yp>230 && xp>115 && touching==1) { //button for LIGHTS 3
+ if (yp>250 && xp>115 && touching==1) { //button for LIGHTS 3
- //LIGHTS 3 ACTION
+ lights_3();
}
if (yp<30 && xp>210 && touching==1) { //RETURN TO MAIN SCREEN
@@ -533,12 +673,12 @@
if (yp<120 && xp<120 && touching==1) { //button for FAN OFF
- //FAN OFF ACTION
+ fan_off();
}
if (yp>230 && xp<120 && touching==1) { //button for FAN ON
- //FAN ON ACTION
+ fan_on();
}
if (yp<30 && xp>210 && touching==1) { //RETURN TO MAIN SCREEN
@@ -575,12 +715,12 @@
if (yp<120 && xp<120 && touching==1) { //button for AUTO OFF
- //AUTO OFF ACTION
+ autom_togg();
}
if (yp>230 && xp<120 && touching==1) { //button for AUTO ON
- //AUTO ON ACTION
+ autom_togg();
}
if (yp<30 && xp>210 && touching==1) { //RETURN TO MAIN SCREEN
