wifi setup APmode

Dependencies:   mbed

Committer:
mori2020
Date:
Mon Aug 24 02:36:06 2020 +0000
Revision:
6:c3c9277c64ba
Parent:
5:9f46b8cdd469
Child:
7:8055eb42a0f0
wifisetup; APmode

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mori2020 6:c3c9277c64ba 1 //https://translate.googleusercontent.com/translate_c?anno=2&depth=1&hl=ja&prev=search&rurl=translate.google.co.jp&sl=en&sp=nmt4&tl=ja&u=https://os.mbed.com/users/4180_1/code/ESP8266-configuration-mbed-LPC1768/&usg=ALkJrhgXBJ5ngwZUdq75QAiih4mRDcyBfg
mori2020 6:c3c9277c64ba 2 //wifi接続確認
star297 0:5ebf44bd3694 3 #include "mbed.h"
star297 0:5ebf44bd3694 4
star297 0:5ebf44bd3694 5 Serial pc(USBTX, USBRX);
mori2020 6:c3c9277c64ba 6 Serial esp(p13, p14); // tx, rx
4180_1 4:f40e7eb1ba1e 7 DigitalOut reset(p26);
star297 0:5ebf44bd3694 8 Timer t;
star297 0:5ebf44bd3694 9
star297 0:5ebf44bd3694 10 int count,ended,timeout;
star297 0:5ebf44bd3694 11 char buf[1024];
star297 0:5ebf44bd3694 12 char snd[255];
star297 0:5ebf44bd3694 13
mori2020 6:c3c9277c64ba 14 //char ssid[32] = "iP-202004T0898";
mori2020 6:c3c9277c64ba 15 //char pwd [32] = "ew3a9baz9o2vk";
mori2020 6:c3c9277c64ba 16 //char ssid[32] = "802ZTa-00311F"; // enter WiFi router ssid inside the quotes
mori2020 6:c3c9277c64ba 17 //char pwd [32] = "0126954a"; // enter WiFi router password inside the quotes
mori2020 6:c3c9277c64ba 18 //char ssid[32] = "802ZTa-008AD0";
mori2020 6:c3c9277c64ba 19 //char pwd [32] = "0355967a";
mori2020 6:c3c9277c64ba 20
mori2020 6:c3c9277c64ba 21 //char ssid[32] = "802ZTa-003243";
mori2020 6:c3c9277c64ba 22 //char pwd [32] = "0129875a";
mori2020 6:c3c9277c64ba 23
mori2020 6:c3c9277c64ba 24 char ssid[32] = "mbed01";
mori2020 6:c3c9277c64ba 25 char pwd [32] = "0123456789a";
star297 0:5ebf44bd3694 26
star297 0:5ebf44bd3694 27 void SendCMD(),getreply(),ESPconfig(),ESPsetbaudrate();
star297 0:5ebf44bd3694 28
star297 0:5ebf44bd3694 29
4180_1 4:f40e7eb1ba1e 30 int main()
4180_1 4:f40e7eb1ba1e 31 {
4180_1 4:f40e7eb1ba1e 32 reset=0; //hardware reset for 8266
star297 2:c5515c7eba46 33 pc.baud(115200); // set what you want here depending on your terminal program speed
4180_1 4:f40e7eb1ba1e 34 pc.printf("\f\n\r-------------ESP8266 Hardware Reset-------------\n\r");
4180_1 4:f40e7eb1ba1e 35 wait(0.5);
4180_1 4:f40e7eb1ba1e 36 reset=1;
4180_1 4:f40e7eb1ba1e 37 timeout=2;
4180_1 4:f40e7eb1ba1e 38 getreply();
4180_1 4:f40e7eb1ba1e 39
4180_1 4:f40e7eb1ba1e 40 esp.baud(115200); // change this to the new ESP8266 baudrate if it is changed at any time.
4180_1 4:f40e7eb1ba1e 41
star297 0:5ebf44bd3694 42 //ESPsetbaudrate(); //****************** include this routine to set a different ESP8266 baudrate ******************
star297 0:5ebf44bd3694 43
star297 0:5ebf44bd3694 44 ESPconfig(); //****************** include Config to set the ESP8266 configuration ***********************
4180_1 4:f40e7eb1ba1e 45
4180_1 4:f40e7eb1ba1e 46
4180_1 4:f40e7eb1ba1e 47
4180_1 4:f40e7eb1ba1e 48 // continuosly get AP list and IP
4180_1 4:f40e7eb1ba1e 49 while(1) {
mori2020 6:c3c9277c64ba 50 // pc.printf("\n---------- Listing Acces Points ----------\r\n");
mori2020 6:c3c9277c64ba 51 // strcpy(snd, "AT+CWLAP\r\n");
mori2020 6:c3c9277c64ba 52 // SendCMD();
mori2020 6:c3c9277c64ba 53 // timeout=15;
mori2020 6:c3c9277c64ba 54 // getreply();
mori2020 6:c3c9277c64ba 55 // pc.printf(buf);
mori2020 6:c3c9277c64ba 56 // wait(2);
4180_1 4:f40e7eb1ba1e 57 pc.printf("\n---------- Get IP and MAC ----------\r\n");
star297 3:14e33fec26c3 58 strcpy(snd, "AT+CIFSR\r\n");
star297 3:14e33fec26c3 59 SendCMD();
4180_1 4:f40e7eb1ba1e 60 timeout=10;
4180_1 4:f40e7eb1ba1e 61 getreply();
star297 3:14e33fec26c3 62 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 63 wait(2);
4180_1 4:f40e7eb1ba1e 64 }
4180_1 4:f40e7eb1ba1e 65
star297 0:5ebf44bd3694 66 }
star297 0:5ebf44bd3694 67
star297 0:5ebf44bd3694 68 // Sets new ESP8266 baurate, change the esp.baud(xxxxx) to match your new setting once this has been executed
star297 0:5ebf44bd3694 69 void ESPsetbaudrate()
star297 0:5ebf44bd3694 70 {
star297 0:5ebf44bd3694 71 strcpy(snd, "AT+CIOBAUD=115200\r\n"); // change the numeric value to the required baudrate
4180_1 4:f40e7eb1ba1e 72 SendCMD();
4180_1 4:f40e7eb1ba1e 73 }
star297 0:5ebf44bd3694 74
star297 0:5ebf44bd3694 75 // +++++++++++++++++++++++++++++++++ This is for ESP8266 config only, run this once to set up the ESP8266 +++++++++++++++
star297 0:5ebf44bd3694 76 void ESPconfig()
star297 0:5ebf44bd3694 77 {
4180_1 4:f40e7eb1ba1e 78 wait(5);
4180_1 4:f40e7eb1ba1e 79 strcpy(snd,"AT\r\n");
4180_1 4:f40e7eb1ba1e 80 SendCMD();
4180_1 4:f40e7eb1ba1e 81 wait(1);
4180_1 4:f40e7eb1ba1e 82 strcpy(snd,"AT\r\n");
4180_1 4:f40e7eb1ba1e 83 SendCMD();
4180_1 4:f40e7eb1ba1e 84 wait(1);
4180_1 4:f40e7eb1ba1e 85 strcpy(snd,"AT\r\n");
4180_1 4:f40e7eb1ba1e 86 SendCMD();
4180_1 4:f40e7eb1ba1e 87 timeout=1;
4180_1 4:f40e7eb1ba1e 88 getreply();
4180_1 4:f40e7eb1ba1e 89 wait(1);
4180_1 4:f40e7eb1ba1e 90 pc.printf("\f---------- Starting ESP Config ----------\r\n\n");
star297 0:5ebf44bd3694 91
star297 0:5ebf44bd3694 92 pc.printf("---------- Reset & get Firmware ----------\r\n");
star297 0:5ebf44bd3694 93 strcpy(snd,"AT+RST\r\n");
star297 0:5ebf44bd3694 94 SendCMD();
4180_1 4:f40e7eb1ba1e 95 timeout=5;
star297 0:5ebf44bd3694 96 getreply();
star297 0:5ebf44bd3694 97 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 98
4180_1 4:f40e7eb1ba1e 99 wait(2);
4180_1 4:f40e7eb1ba1e 100
star297 0:5ebf44bd3694 101 pc.printf("\n---------- Get Version ----------\r\n");
star297 0:5ebf44bd3694 102 strcpy(snd,"AT+GMR\r\n");
star297 0:5ebf44bd3694 103 SendCMD();
4180_1 4:f40e7eb1ba1e 104 timeout=4;
star297 0:5ebf44bd3694 105 getreply();
4180_1 4:f40e7eb1ba1e 106 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 107
4180_1 4:f40e7eb1ba1e 108 wait(3);
4180_1 4:f40e7eb1ba1e 109
star297 0:5ebf44bd3694 110 // set CWMODE to 1=Station,2=AP,3=BOTH, default mode 1 (Station)
star297 0:5ebf44bd3694 111 pc.printf("\n---------- Setting Mode ----------\r\n");
mori2020 6:c3c9277c64ba 112 strcpy(snd, "AT+CWMODE=2\r\n");
star297 0:5ebf44bd3694 113 SendCMD();
4180_1 4:f40e7eb1ba1e 114 timeout=4;
star297 0:5ebf44bd3694 115 getreply();
star297 0:5ebf44bd3694 116 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 117
4180_1 4:f40e7eb1ba1e 118 wait(2);
4180_1 4:f40e7eb1ba1e 119
4180_1 4:f40e7eb1ba1e 120 // set CIPMUX to 0=Single,1=Multi
star297 2:c5515c7eba46 121 pc.printf("\n---------- Setting Connection Mode ----------\r\n");
mori2020 6:c3c9277c64ba 122 strcpy(snd, "AT+CIPMUX=0\r\n");
star297 2:c5515c7eba46 123 SendCMD();
4180_1 4:f40e7eb1ba1e 124 timeout=4;
star297 2:c5515c7eba46 125 getreply();
star297 2:c5515c7eba46 126 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 127
4180_1 4:f40e7eb1ba1e 128 wait(2);
4180_1 4:f40e7eb1ba1e 129
mori2020 6:c3c9277c64ba 130 // pc.printf("\n---------- Listing Access Points ----------\r\n");
mori2020 6:c3c9277c64ba 131 // strcpy(snd, "AT+CWLAP\r\n");
mori2020 6:c3c9277c64ba 132 // SendCMD();
mori2020 6:c3c9277c64ba 133 // timeout=15;
mori2020 6:c3c9277c64ba 134 // getreply();
mori2020 6:c3c9277c64ba 135 // pc.printf(buf);
mori2020 6:c3c9277c64ba 136 //
mori2020 6:c3c9277c64ba 137 // wait(2);
mori2020 6:c3c9277c64ba 138 //---------------------------------------------------------------------------------------------------------------------------------------------
mori2020 6:c3c9277c64ba 139 // pc.printf("\n---------- Connecting to AP ----------\r\n");
mori2020 6:c3c9277c64ba 140 // pc.printf("ssid = %s pwd = %s\r\n",ssid,pwd);
mori2020 6:c3c9277c64ba 141 // strcpy(snd, "AT+CWJAP=\"");
mori2020 6:c3c9277c64ba 142 // strcat(snd, ssid);
mori2020 6:c3c9277c64ba 143 // strcat(snd, "\",\""); // "," を入力
mori2020 6:c3c9277c64ba 144 // strcat(snd, pwd);
mori2020 6:c3c9277c64ba 145 // strcat(snd, "\"\r\n"); // "を入力し改行 //「AT+CWJAP="ssid","pwd"」
mori2020 6:c3c9277c64ba 146 // SendCMD();
mori2020 6:c3c9277c64ba 147 // timeout=10;
mori2020 6:c3c9277c64ba 148 // getreply();
mori2020 6:c3c9277c64ba 149 // pc.printf(buf);
mori2020 6:c3c9277c64ba 150 //
mori2020 6:c3c9277c64ba 151 // wait(5);
4180_1 4:f40e7eb1ba1e 152
mori2020 6:c3c9277c64ba 153
mori2020 6:c3c9277c64ba 154 pc.printf("\n---------- APmode set ----------\r\n");
4180_1 4:f40e7eb1ba1e 155
mori2020 6:c3c9277c64ba 156
mori2020 6:c3c9277c64ba 157
star297 0:5ebf44bd3694 158 pc.printf("ssid = %s pwd = %s\r\n",ssid,pwd);
mori2020 6:c3c9277c64ba 159 strcpy(snd, "AT+CWSAP_DEF=\"");
star297 0:5ebf44bd3694 160 strcat(snd, ssid);
mori2020 6:c3c9277c64ba 161 strcat(snd, "\",\""); // "," を入力
star297 0:5ebf44bd3694 162 strcat(snd, pwd);
mori2020 6:c3c9277c64ba 163 strcat(snd, "\",");
mori2020 6:c3c9277c64ba 164 strcat(snd, "5"); //<chl>: channel ID.
mori2020 6:c3c9277c64ba 165 strcat(snd, ",");
mori2020 6:c3c9277c64ba 166 strcat(snd, "4"); //<ecn>: encryption method; WEP is notsupported.(0:OPEN, 2:WPA_PSK, 3:WPA2_PSK, 4:WPA_WPA2_PSK)
mori2020 6:c3c9277c64ba 167 strcat(snd, "\r\n"); // "を入力し改行 //「AT+CWJAP="ssid","pwd",5,3」
star297 0:5ebf44bd3694 168 SendCMD();
4180_1 4:f40e7eb1ba1e 169 timeout=10;
4180_1 4:f40e7eb1ba1e 170 getreply();
star297 0:5ebf44bd3694 171 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 172
star297 0:5ebf44bd3694 173 wait(5);
4180_1 4:f40e7eb1ba1e 174
mori2020 6:c3c9277c64ba 175 //--------------------------------------------------------------------------------------------------------------------------------------
4180_1 4:f40e7eb1ba1e 176 pc.printf("\n---------- Get IP's ----------\r\n");
star297 0:5ebf44bd3694 177 strcpy(snd, "AT+CIFSR\r\n");
star297 0:5ebf44bd3694 178 SendCMD();
4180_1 4:f40e7eb1ba1e 179 timeout=3;
4180_1 4:f40e7eb1ba1e 180 getreply();
star297 0:5ebf44bd3694 181 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 182
star297 3:14e33fec26c3 183 wait(1);
4180_1 4:f40e7eb1ba1e 184
4180_1 4:f40e7eb1ba1e 185 pc.printf("\n---------- Get Connection Status ----------\r\n");
star297 3:14e33fec26c3 186 strcpy(snd, "AT+CIPSTATUS\r\n");
star297 3:14e33fec26c3 187 SendCMD();
4180_1 4:f40e7eb1ba1e 188 timeout=5;
4180_1 4:f40e7eb1ba1e 189 getreply();
4180_1 4:f40e7eb1ba1e 190 pc.printf(buf);
4180_1 4:f40e7eb1ba1e 191
4180_1 4:f40e7eb1ba1e 192 pc.printf("\n\n\n If you get a valid (non zero) IP, ESP8266 has been set up.\r\n");
star297 0:5ebf44bd3694 193 pc.printf(" Run this if you want to reconfig the ESP8266 at any time.\r\n");
4180_1 5:9f46b8cdd469 194 pc.printf(" It saves the SSID and password settings internally\r\n");
4180_1 4:f40e7eb1ba1e 195 wait(10);
4180_1 4:f40e7eb1ba1e 196 }
star297 0:5ebf44bd3694 197
star297 0:5ebf44bd3694 198 void SendCMD()
4180_1 4:f40e7eb1ba1e 199 {
4180_1 4:f40e7eb1ba1e 200 esp.printf("%s", snd);
4180_1 4:f40e7eb1ba1e 201 }
star297 0:5ebf44bd3694 202
star297 0:5ebf44bd3694 203 void getreply()
4180_1 4:f40e7eb1ba1e 204 {
star297 0:5ebf44bd3694 205 memset(buf, '\0', sizeof(buf));
star297 0:5ebf44bd3694 206 t.start();
4180_1 4:f40e7eb1ba1e 207 ended=0;
4180_1 4:f40e7eb1ba1e 208 count=0;
star297 0:5ebf44bd3694 209 while(!ended) {
star297 0:5ebf44bd3694 210 if(esp.readable()) {
4180_1 4:f40e7eb1ba1e 211 buf[count] = esp.getc();
4180_1 4:f40e7eb1ba1e 212 count++;
4180_1 4:f40e7eb1ba1e 213 }
star297 0:5ebf44bd3694 214 if(t.read() > timeout) {
4180_1 4:f40e7eb1ba1e 215 ended = 1;
4180_1 4:f40e7eb1ba1e 216 t.stop();
4180_1 4:f40e7eb1ba1e 217 t.reset();
4180_1 4:f40e7eb1ba1e 218 }
4180_1 4:f40e7eb1ba1e 219 }
4180_1 4:f40e7eb1ba1e 220 }