ESP8266 set up for AT version 1.7.0

Dependencies:   mbed

Use this to set and test the ESP8266.

For ESP8266 firmware v1.7.0 and v1.7.1

restore.. resets the ESP8266 to factory settings with baud rate 115200 this is MBED-OS default setting.

config.. use this if you want to set ssid, password and mode in the ESP8266 flash.

setbaud.. set the ESP8266 baud rate that will stored in ESP8266 flash.

Most platforms will work up to 460800 baud, 921600 works on platforms with a MCU clock speed of 100MHz and above. MBED-OS built in ESP8266 driver only works up to 460800 at time of writing but is considerably faster than the default 115200 .

In most cases use 'restore' and 'setbaud' to reset the ESP8266 back to factory settings with your required baud rate.

Committer:
star297
Date:
Tue Feb 10 16:35:26 2015 +0000
Revision:
1:4a9cc6d8c33d
Parent:
0:5ebf44bd3694
Child:
2:c5515c7eba46
ssid & pwd updated

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);
star297 0:5ebf44bd3694 4 Serial esp(PTE0, PTE1); // tx, rx
star297 0:5ebf44bd3694 5
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
star297 1:4a9cc6d8c33d 12 char ssid[32] = "ssid"; // enter router ssid inside the quotes
star297 1:4a9cc6d8c33d 13 char pwd [32] = "password"; // enter 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
star297 0:5ebf44bd3694 18 int main() {
star297 0:5ebf44bd3694 19
star297 0:5ebf44bd3694 20 pc.baud(115200); // set what you want here depending on your terminal program speed
star297 0:5ebf44bd3694 21 esp.baud(115200); // change this to the new ESP8266 baudrate if it is changed at any time.
star297 0:5ebf44bd3694 22
star297 0:5ebf44bd3694 23 //ESPsetbaudrate(); //****************** include this routine to set a different ESP8266 baudrate ******************
star297 0:5ebf44bd3694 24
star297 0:5ebf44bd3694 25 ESPconfig(); //****************** include Config to set the ESP8266 configuration ***********************
star297 0:5ebf44bd3694 26
star297 0:5ebf44bd3694 27 }
star297 0:5ebf44bd3694 28
star297 0:5ebf44bd3694 29 // Sets new ESP8266 baurate, change the esp.baud(xxxxx) to match your new setting once this has been executed
star297 0:5ebf44bd3694 30 void ESPsetbaudrate()
star297 0:5ebf44bd3694 31 {
star297 0:5ebf44bd3694 32 strcpy(snd, "AT+CIOBAUD=115200\r\n"); // change the numeric value to the required baudrate
star297 0:5ebf44bd3694 33 SendCMD();
star297 0:5ebf44bd3694 34 }
star297 0:5ebf44bd3694 35
star297 0:5ebf44bd3694 36 // +++++++++++++++++++++++++++++++++ This is for ESP8266 config only, run this once to set up the ESP8266 +++++++++++++++
star297 0:5ebf44bd3694 37 void ESPconfig()
star297 0:5ebf44bd3694 38 {
star297 0:5ebf44bd3694 39
star297 0:5ebf44bd3694 40 pc.printf("---------- Starting ESP Config ----------\r\n\n");
star297 0:5ebf44bd3694 41 wait(2);
star297 0:5ebf44bd3694 42 pc.printf("---------- Reset & get Firmware ----------\r\n");
star297 0:5ebf44bd3694 43 strcpy(snd,"AT+RST\r\n");
star297 0:5ebf44bd3694 44 SendCMD();
star297 0:5ebf44bd3694 45 timeout=2;
star297 0:5ebf44bd3694 46 getreply();
star297 0:5ebf44bd3694 47 pc.printf(buf);
star297 0:5ebf44bd3694 48
star297 0:5ebf44bd3694 49 wait(1);
star297 0:5ebf44bd3694 50
star297 0:5ebf44bd3694 51
star297 0:5ebf44bd3694 52 pc.printf("\n---------- Get Version ----------\r\n");
star297 0:5ebf44bd3694 53 strcpy(snd,"AT+GMR\r\n");
star297 0:5ebf44bd3694 54 SendCMD();
star297 0:5ebf44bd3694 55 timeout=1;
star297 0:5ebf44bd3694 56 getreply();
star297 0:5ebf44bd3694 57 pc.printf(buf);
star297 0:5ebf44bd3694 58
star297 0:5ebf44bd3694 59
star297 0:5ebf44bd3694 60 wait(1);
star297 0:5ebf44bd3694 61 // set CWMODE to 1=Station,2=AP,3=BOTH, default mode 1 (Station)
star297 0:5ebf44bd3694 62 pc.printf("\n---------- Setting Mode ----------\r\n");
star297 0:5ebf44bd3694 63 strcpy(snd, "AT+CWMODE=1\r\n");
star297 0:5ebf44bd3694 64 SendCMD();
star297 0:5ebf44bd3694 65 timeout=1;
star297 0:5ebf44bd3694 66 getreply();
star297 0:5ebf44bd3694 67 pc.printf(buf);
star297 0:5ebf44bd3694 68
star297 0:5ebf44bd3694 69 wait(1);
star297 0:5ebf44bd3694 70
star297 0:5ebf44bd3694 71 pc.printf("\n---------- Listing Acces Points ----------\r\n");
star297 0:5ebf44bd3694 72 strcpy(snd, "AT+CWLAP\r\n");
star297 0:5ebf44bd3694 73 SendCMD();
star297 0:5ebf44bd3694 74 timeout=3;
star297 0:5ebf44bd3694 75 getreply();
star297 0:5ebf44bd3694 76 pc.printf(buf);
star297 0:5ebf44bd3694 77
star297 0:5ebf44bd3694 78 wait(1);
star297 0:5ebf44bd3694 79
star297 0:5ebf44bd3694 80 pc.printf("\n---------- Connecting to AP ----------\r\n");
star297 0:5ebf44bd3694 81 pc.printf("ssid = %s pwd = %s\r\n",ssid,pwd);
star297 0:5ebf44bd3694 82 strcpy(snd, "AT+CWJAP=\"");
star297 0:5ebf44bd3694 83 strcat(snd, ssid);
star297 0:5ebf44bd3694 84 strcat(snd, "\",\"");
star297 0:5ebf44bd3694 85 strcat(snd, pwd);
star297 0:5ebf44bd3694 86 strcat(snd, "\"\r\n");
star297 0:5ebf44bd3694 87 SendCMD();
star297 0:5ebf44bd3694 88 timeout=8;
star297 0:5ebf44bd3694 89 getreply();
star297 0:5ebf44bd3694 90 pc.printf(buf);
star297 0:5ebf44bd3694 91
star297 0:5ebf44bd3694 92 wait(5);
star297 0:5ebf44bd3694 93
star297 0:5ebf44bd3694 94 pc.printf("\n---------- Get IP's ----------\r\n");
star297 0:5ebf44bd3694 95 strcpy(snd, "AT+CIFSR\r\n");
star297 0:5ebf44bd3694 96 SendCMD();
star297 0:5ebf44bd3694 97 timeout=2;
star297 0:5ebf44bd3694 98 getreply();
star297 0:5ebf44bd3694 99 pc.printf(buf);
star297 0:5ebf44bd3694 100
star297 0:5ebf44bd3694 101 pc.printf("\n\n\n If you get a valid IP, ESP8266 has been set up.\r\n");
star297 0:5ebf44bd3694 102 pc.printf(" Run this if you want to reconfig the ESP8266 at any time.\r\n");
star297 0:5ebf44bd3694 103 }
star297 0:5ebf44bd3694 104
star297 0:5ebf44bd3694 105 void SendCMD()
star297 0:5ebf44bd3694 106 {
star297 0:5ebf44bd3694 107 esp.printf("%s", snd);
star297 0:5ebf44bd3694 108 }
star297 0:5ebf44bd3694 109
star297 0:5ebf44bd3694 110 void getreply()
star297 0:5ebf44bd3694 111 {
star297 0:5ebf44bd3694 112 memset(buf, '\0', sizeof(buf));
star297 0:5ebf44bd3694 113 t.start();
star297 0:5ebf44bd3694 114 ended=0;count=0;
star297 0:5ebf44bd3694 115 while(!ended) {
star297 0:5ebf44bd3694 116 if(esp.readable()) {
star297 0:5ebf44bd3694 117 buf[count] = esp.getc();count++;
star297 0:5ebf44bd3694 118 }
star297 0:5ebf44bd3694 119 if(t.read() > timeout) {
star297 0:5ebf44bd3694 120 ended = 1;t.stop();t.reset();
star297 0:5ebf44bd3694 121 }
star297 0:5ebf44bd3694 122 }
star297 0:5ebf44bd3694 123 }
star297 0:5ebf44bd3694 124