IUPUI ESP8266 config code for IU Device net, make sure you first run this , get the MAC address of you module, register the device with IU Device net. after that there is no need for a password, just run this program once on your module, it will save password

Dependencies:   mbed

Fork of ESP8266-configuration-mbed-LPC1768 by jim hamblen

Committer:
imomoh
Date:
Mon Apr 30 07:11:33 2018 +0000
Revision:
6:282abce8e842
Parent:
5:9f46b8cdd469
NO

Who changed what in which revision?

UserRevisionLine numberNew contents of line
star297 0:5ebf44bd3694 1 #include "mbed.h"
star297 0:5ebf44bd3694 2
star297 0:5ebf44bd3694 3 Serial pc(USBTX, USBRX);
imomoh 6:282abce8e842 4 Serial esp(D1, D0); // tx, rx
imomoh 6:282abce8e842 5 DigitalOut reset(D3);
star297 0:5ebf44bd3694 6 Timer t;
star297 0:5ebf44bd3694 7
star297 0:5ebf44bd3694 8 int count,ended,timeout;
star297 0:5ebf44bd3694 9 char buf[1024];
star297 0:5ebf44bd3694 10 char snd[255];
star297 0:5ebf44bd3694 11
imomoh 6:282abce8e842 12 char ssid[32] = "IU DeviceNet"; // enter WiFi router ssid inside the quotes
imomoh 6:282abce8e842 13 char pwd [32] = ""; // enter WiFi router password inside the quotes
star297 0:5ebf44bd3694 14
star297 0:5ebf44bd3694 15 void SendCMD(),getreply(),ESPconfig(),ESPsetbaudrate();
star297 0:5ebf44bd3694 16
star297 0:5ebf44bd3694 17
4180_1 4:f40e7eb1ba1e 18 int main()
4180_1 4:f40e7eb1ba1e 19 {
4180_1 4:f40e7eb1ba1e 20 reset=0; //hardware reset for 8266
star297 2:c5515c7eba46 21 pc.baud(115200); // set what you want here depending on your terminal program speed
4180_1 4:f40e7eb1ba1e 22 pc.printf("\f\n\r-------------ESP8266 Hardware Reset-------------\n\r");
4180_1 4:f40e7eb1ba1e 23 wait(0.5);
4180_1 4:f40e7eb1ba1e 24 reset=1;
4180_1 4:f40e7eb1ba1e 25 timeout=2;
4180_1 4:f40e7eb1ba1e 26 getreply();
4180_1 4:f40e7eb1ba1e 27
4180_1 4:f40e7eb1ba1e 28 esp.baud(115200); // change this to the new ESP8266 baudrate if it is changed at any time.
4180_1 4:f40e7eb1ba1e 29
star297 0:5ebf44bd3694 30 //ESPsetbaudrate(); //****************** include this routine to set a different ESP8266 baudrate ******************
star297 0:5ebf44bd3694 31
star297 0:5ebf44bd3694 32 ESPconfig(); //****************** include Config to set the ESP8266 configuration ***********************
4180_1 4:f40e7eb1ba1e 33
4180_1 4:f40e7eb1ba1e 34
4180_1 4:f40e7eb1ba1e 35
4180_1 4:f40e7eb1ba1e 36 // continuosly get AP list and IP
4180_1 4:f40e7eb1ba1e 37 while(1) {
star297 3:14e33fec26c3 38 pc.printf("\n---------- Listing Acces Points ----------\r\n");
imomoh 6:282abce8e842 39 // strcpy(snd, "AT+CWLAP\r\n");
imomoh 6:282abce8e842 40 pc.printf("\n---------- skip listing access points ----------\r\n");
star297 3:14e33fec26c3 41 SendCMD();
4180_1 4:f40e7eb1ba1e 42 timeout=15;
4180_1 4:f40e7eb1ba1e 43 getreply();
star297 3:14e33fec26c3 44 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 45 wait(2);
4180_1 4:f40e7eb1ba1e 46 pc.printf("\n---------- Get IP and MAC ----------\r\n");
star297 3:14e33fec26c3 47 strcpy(snd, "AT+CIFSR\r\n");
star297 3:14e33fec26c3 48 SendCMD();
4180_1 4:f40e7eb1ba1e 49 timeout=10;
4180_1 4:f40e7eb1ba1e 50 getreply();
star297 3:14e33fec26c3 51 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 52 wait(2);
4180_1 4:f40e7eb1ba1e 53 }
4180_1 4:f40e7eb1ba1e 54
star297 0:5ebf44bd3694 55 }
star297 0:5ebf44bd3694 56
star297 0:5ebf44bd3694 57 // Sets new ESP8266 baurate, change the esp.baud(xxxxx) to match your new setting once this has been executed
star297 0:5ebf44bd3694 58 void ESPsetbaudrate()
star297 0:5ebf44bd3694 59 {
star297 0:5ebf44bd3694 60 strcpy(snd, "AT+CIOBAUD=115200\r\n"); // change the numeric value to the required baudrate
4180_1 4:f40e7eb1ba1e 61 SendCMD();
4180_1 4:f40e7eb1ba1e 62 }
star297 0:5ebf44bd3694 63
star297 0:5ebf44bd3694 64 // +++++++++++++++++++++++++++++++++ This is for ESP8266 config only, run this once to set up the ESP8266 +++++++++++++++
star297 0:5ebf44bd3694 65 void ESPconfig()
star297 0:5ebf44bd3694 66 {
4180_1 4:f40e7eb1ba1e 67 wait(5);
4180_1 4:f40e7eb1ba1e 68 strcpy(snd,"AT\r\n");
4180_1 4:f40e7eb1ba1e 69 SendCMD();
4180_1 4:f40e7eb1ba1e 70 wait(1);
4180_1 4:f40e7eb1ba1e 71 strcpy(snd,"AT\r\n");
4180_1 4:f40e7eb1ba1e 72 SendCMD();
4180_1 4:f40e7eb1ba1e 73 wait(1);
4180_1 4:f40e7eb1ba1e 74 strcpy(snd,"AT\r\n");
4180_1 4:f40e7eb1ba1e 75 SendCMD();
4180_1 4:f40e7eb1ba1e 76 timeout=1;
4180_1 4:f40e7eb1ba1e 77 getreply();
4180_1 4:f40e7eb1ba1e 78 wait(1);
4180_1 4:f40e7eb1ba1e 79 pc.printf("\f---------- Starting ESP Config ----------\r\n\n");
star297 0:5ebf44bd3694 80
star297 0:5ebf44bd3694 81 pc.printf("---------- Reset & get Firmware ----------\r\n");
star297 0:5ebf44bd3694 82 strcpy(snd,"AT+RST\r\n");
star297 0:5ebf44bd3694 83 SendCMD();
4180_1 4:f40e7eb1ba1e 84 timeout=5;
star297 0:5ebf44bd3694 85 getreply();
star297 0:5ebf44bd3694 86 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 87
4180_1 4:f40e7eb1ba1e 88 wait(2);
4180_1 4:f40e7eb1ba1e 89
star297 0:5ebf44bd3694 90 pc.printf("\n---------- Get Version ----------\r\n");
star297 0:5ebf44bd3694 91 strcpy(snd,"AT+GMR\r\n");
star297 0:5ebf44bd3694 92 SendCMD();
4180_1 4:f40e7eb1ba1e 93 timeout=4;
star297 0:5ebf44bd3694 94 getreply();
4180_1 4:f40e7eb1ba1e 95 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 96
4180_1 4:f40e7eb1ba1e 97 wait(3);
4180_1 4:f40e7eb1ba1e 98
star297 0:5ebf44bd3694 99 // set CWMODE to 1=Station,2=AP,3=BOTH, default mode 1 (Station)
star297 0:5ebf44bd3694 100 pc.printf("\n---------- Setting Mode ----------\r\n");
star297 0:5ebf44bd3694 101 strcpy(snd, "AT+CWMODE=1\r\n");
star297 0:5ebf44bd3694 102 SendCMD();
4180_1 4:f40e7eb1ba1e 103 timeout=4;
star297 0:5ebf44bd3694 104 getreply();
star297 0:5ebf44bd3694 105 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 106
4180_1 4:f40e7eb1ba1e 107 wait(2);
4180_1 4:f40e7eb1ba1e 108
4180_1 4:f40e7eb1ba1e 109 // set CIPMUX to 0=Single,1=Multi
star297 2:c5515c7eba46 110 pc.printf("\n---------- Setting Connection Mode ----------\r\n");
4180_1 4:f40e7eb1ba1e 111 strcpy(snd, "AT+CIPMUX=1\r\n");
star297 2:c5515c7eba46 112 SendCMD();
4180_1 4:f40e7eb1ba1e 113 timeout=4;
star297 2:c5515c7eba46 114 getreply();
star297 2:c5515c7eba46 115 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 116
4180_1 4:f40e7eb1ba1e 117 wait(2);
4180_1 4:f40e7eb1ba1e 118
4180_1 4:f40e7eb1ba1e 119 pc.printf("\n---------- Listing Access Points ----------\r\n");
imomoh 6:282abce8e842 120 // strcpy(snd, "AT+CWLAP\r\n");
imomoh 6:282abce8e842 121 pc.printf("\n---------- skip listing access points ----------\r\n");
star297 0:5ebf44bd3694 122 SendCMD();
4180_1 4:f40e7eb1ba1e 123 timeout=15;
4180_1 4:f40e7eb1ba1e 124 getreply();
star297 0:5ebf44bd3694 125 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 126
4180_1 4:f40e7eb1ba1e 127 wait(2);
4180_1 4:f40e7eb1ba1e 128
star297 0:5ebf44bd3694 129 pc.printf("\n---------- Connecting to AP ----------\r\n");
star297 0:5ebf44bd3694 130 pc.printf("ssid = %s pwd = %s\r\n",ssid,pwd);
star297 0:5ebf44bd3694 131 strcpy(snd, "AT+CWJAP=\"");
star297 0:5ebf44bd3694 132 strcat(snd, ssid);
star297 0:5ebf44bd3694 133 strcat(snd, "\",\"");
star297 0:5ebf44bd3694 134 strcat(snd, pwd);
4180_1 4:f40e7eb1ba1e 135 strcat(snd, "\"\r\n");
star297 0:5ebf44bd3694 136 SendCMD();
4180_1 4:f40e7eb1ba1e 137 timeout=10;
4180_1 4:f40e7eb1ba1e 138 getreply();
star297 0:5ebf44bd3694 139 pc.printf(buf);
imomoh 6:282abce8e842 140 pc.printf("ap connection");
4180_1 4:f40e7eb1ba1e 141
star297 0:5ebf44bd3694 142 wait(5);
4180_1 4:f40e7eb1ba1e 143
4180_1 4:f40e7eb1ba1e 144 pc.printf("\n---------- Get IP's ----------\r\n");
star297 0:5ebf44bd3694 145 strcpy(snd, "AT+CIFSR\r\n");
star297 0:5ebf44bd3694 146 SendCMD();
4180_1 4:f40e7eb1ba1e 147 timeout=3;
4180_1 4:f40e7eb1ba1e 148 getreply();
star297 0:5ebf44bd3694 149 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 150
star297 3:14e33fec26c3 151 wait(1);
4180_1 4:f40e7eb1ba1e 152
4180_1 4:f40e7eb1ba1e 153 pc.printf("\n---------- Get Connection Status ----------\r\n");
star297 3:14e33fec26c3 154 strcpy(snd, "AT+CIPSTATUS\r\n");
star297 3:14e33fec26c3 155 SendCMD();
4180_1 4:f40e7eb1ba1e 156 timeout=5;
4180_1 4:f40e7eb1ba1e 157 getreply();
4180_1 4:f40e7eb1ba1e 158 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 159
4180_1 4:f40e7eb1ba1e 160 pc.printf("\n\n\n If you get a valid (non zero) IP, ESP8266 has been set up.\r\n");
star297 0:5ebf44bd3694 161 pc.printf(" Run this if you want to reconfig the ESP8266 at any time.\r\n");
4180_1 5:9f46b8cdd469 162 pc.printf(" It saves the SSID and password settings internally\r\n");
4180_1 4:f40e7eb1ba1e 163 wait(10);
4180_1 4:f40e7eb1ba1e 164 }
star297 0:5ebf44bd3694 165
star297 0:5ebf44bd3694 166 void SendCMD()
4180_1 4:f40e7eb1ba1e 167 {
4180_1 4:f40e7eb1ba1e 168 esp.printf("%s", snd);
4180_1 4:f40e7eb1ba1e 169 }
star297 0:5ebf44bd3694 170
star297 0:5ebf44bd3694 171 void getreply()
4180_1 4:f40e7eb1ba1e 172 {
star297 0:5ebf44bd3694 173 memset(buf, '\0', sizeof(buf));
star297 0:5ebf44bd3694 174 t.start();
4180_1 4:f40e7eb1ba1e 175 ended=0;
4180_1 4:f40e7eb1ba1e 176 count=0;
star297 0:5ebf44bd3694 177 while(!ended) {
star297 0:5ebf44bd3694 178 if(esp.readable()) {
4180_1 4:f40e7eb1ba1e 179 buf[count] = esp.getc();
4180_1 4:f40e7eb1ba1e 180 count++;
4180_1 4:f40e7eb1ba1e 181 }
star297 0:5ebf44bd3694 182 if(t.read() > timeout) {
4180_1 4:f40e7eb1ba1e 183 ended = 1;
4180_1 4:f40e7eb1ba1e 184 t.stop();
4180_1 4:f40e7eb1ba1e 185 t.reset();
4180_1 4:f40e7eb1ba1e 186 }
4180_1 4:f40e7eb1ba1e 187 }
4180_1 4:f40e7eb1ba1e 188 }