pengfei wu
/
ESP8266Program
For test
main.cpp@33:f721a46ef2f2, 2015-02-05 (annotated)
- Committer:
- shennongmin
- Date:
- Thu Feb 05 02:28:09 2015 +0000
- Revision:
- 33:f721a46ef2f2
- Parent:
- 30:46a560b71e61
- Child:
- 34:65cd9c6eedb8
fixed showIP bug.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shennongmin | 16:e184ebcd5896 | 1 | #include "mbed.h" |
shennongmin | 16:e184ebcd5896 | 2 | |
shennongmin | 25:9af4575d3194 | 3 | #define EXAMPLE_TCPCLIENT |
shennongmin | 25:9af4575d3194 | 4 | //#define EXAMPLE_TCPSERVER |
shennongmin | 25:9af4575d3194 | 5 | //#define EXAMPLE_UDPTEST |
shennongmin | 25:9af4575d3194 | 6 | //#define EXAMPLE_WIFITEST |
shennongmin | 25:9af4575d3194 | 7 | |
shennongmin | 26:50cbfeaa1094 | 8 | //Serial pc(USBTX, USBRX); |
shennongmin | 10:9d4ec0359a5c | 9 | extern void setup(void); |
shennongmin | 10:9d4ec0359a5c | 10 | extern void loop(void); |
shennongmin | 10:9d4ec0359a5c | 11 | |
shennongmin | 10:9d4ec0359a5c | 12 | int main () { |
shennongmin | 10:9d4ec0359a5c | 13 | setup(); |
shennongmin | 10:9d4ec0359a5c | 14 | while(1) { |
shennongmin | 10:9d4ec0359a5c | 15 | loop(); |
shennongmin | 10:9d4ec0359a5c | 16 | } |
shennongmin | 10:9d4ec0359a5c | 17 | } |
shennongmin | 25:9af4575d3194 | 18 | |
shennongmin | 25:9af4575d3194 | 19 | #ifdef EXAMPLE_TCPCLIENT |
shennongmin | 25:9af4575d3194 | 20 | |
shennongmin | 25:9af4575d3194 | 21 | #define SSID "ITEAD" |
shennongmin | 25:9af4575d3194 | 22 | #define PASSWORD "12345678" |
shennongmin | 25:9af4575d3194 | 23 | |
shennongmin | 25:9af4575d3194 | 24 | |
shennongmin | 25:9af4575d3194 | 25 | #include "ESP8266.h" |
shennongmin | 25:9af4575d3194 | 26 | void httpRequest(); |
shennongmin | 25:9af4575d3194 | 27 | ESP8266 wifi(p28, p27); |
shennongmin | 25:9af4575d3194 | 28 | |
shennongmin | 25:9af4575d3194 | 29 | const char *server = "www.163.com"; |
shennongmin | 25:9af4575d3194 | 30 | char message[4096]; |
shennongmin | 25:9af4575d3194 | 31 | |
shennongmin | 25:9af4575d3194 | 32 | void setup() |
shennongmin | 25:9af4575d3194 | 33 | { |
shennongmin | 25:9af4575d3194 | 34 | printf("setup begin\r\n"); |
shennongmin | 33:f721a46ef2f2 | 35 | if(wifi.reset()) { |
shennongmin | 33:f721a46ef2f2 | 36 | printf("reset ok\r\n"); |
shennongmin | 33:f721a46ef2f2 | 37 | } else { |
shennongmin | 33:f721a46ef2f2 | 38 | printf("reset err\r\n"); |
shennongmin | 25:9af4575d3194 | 39 | } |
shennongmin | 33:f721a46ef2f2 | 40 | |
shennongmin | 33:f721a46ef2f2 | 41 | if(wifi.setStationMode(SSID, PASSWORD)) { |
shennongmin | 33:f721a46ef2f2 | 42 | printf("setStationMode ok\r\n"); |
shennongmin | 33:f721a46ef2f2 | 43 | } else { |
shennongmin | 33:f721a46ef2f2 | 44 | printf("setStationMode err\r\n"); |
shennongmin | 33:f721a46ef2f2 | 45 | } |
shennongmin | 33:f721a46ef2f2 | 46 | |
shennongmin | 33:f721a46ef2f2 | 47 | printf("IP:%s\r\n", wifi.showIP().c_str()); |
shennongmin | 33:f721a46ef2f2 | 48 | printf("AP:%s\r\n", wifi.showJAP().c_str()); |
shennongmin | 25:9af4575d3194 | 49 | printf("setup end\r\n"); |
shennongmin | 25:9af4575d3194 | 50 | } |
shennongmin | 25:9af4575d3194 | 51 | |
shennongmin | 25:9af4575d3194 | 52 | void loop() |
shennongmin | 25:9af4575d3194 | 53 | { |
shennongmin | 25:9af4575d3194 | 54 | httpRequest(); |
shennongmin | 25:9af4575d3194 | 55 | while(1); |
shennongmin | 25:9af4575d3194 | 56 | } |
shennongmin | 25:9af4575d3194 | 57 | |
shennongmin | 25:9af4575d3194 | 58 | // this method makes a HTTP connection to the server: |
shennongmin | 25:9af4575d3194 | 59 | void httpRequest() { |
shennongmin | 25:9af4575d3194 | 60 | unsigned long t; |
shennongmin | 25:9af4575d3194 | 61 | // if there's a successful connection: |
shennongmin | 25:9af4575d3194 | 62 | if (wifi.ipConfig(ESP8266_COMM_TCP, server, 80)) { |
shennongmin | 25:9af4575d3194 | 63 | printf("connecting...\r\n"); |
shennongmin | 25:9af4575d3194 | 64 | wifi.send("GET / HTTP/1.1\r\n\r\n"); |
shennongmin | 25:9af4575d3194 | 65 | |
shennongmin | 25:9af4575d3194 | 66 | t = millis(); |
shennongmin | 25:9af4575d3194 | 67 | printf("Recv:\r\n["); |
shennongmin | 25:9af4575d3194 | 68 | while(millis() - t <= 10000) { |
shennongmin | 25:9af4575d3194 | 69 | if(wifi.recvData(message)) { |
shennongmin | 25:9af4575d3194 | 70 | printf("%s", message); |
shennongmin | 25:9af4575d3194 | 71 | message[0] = 0; |
shennongmin | 25:9af4575d3194 | 72 | } |
shennongmin | 25:9af4575d3194 | 73 | } |
shennongmin | 25:9af4575d3194 | 74 | printf("]\r\n"); |
shennongmin | 25:9af4575d3194 | 75 | |
shennongmin | 25:9af4575d3194 | 76 | } else { |
shennongmin | 25:9af4575d3194 | 77 | // if you couldn't make a connection: |
shennongmin | 25:9af4575d3194 | 78 | printf("connection failed\r\n"); |
shennongmin | 25:9af4575d3194 | 79 | printf("disconnecting.\r\n"); |
shennongmin | 25:9af4575d3194 | 80 | wifi.closeMux(); |
shennongmin | 25:9af4575d3194 | 81 | } |
shennongmin | 25:9af4575d3194 | 82 | } |
shennongmin | 25:9af4575d3194 | 83 | #endif |
shennongmin | 25:9af4575d3194 | 84 | |
shennongmin | 25:9af4575d3194 | 85 | #ifdef EXAMPLE_TCPSERVER |
shennongmin | 25:9af4575d3194 | 86 | #define SSID "ITEAD" |
shennongmin | 25:9af4575d3194 | 87 | #define PASSWORD "12345678" |
shennongmin | 25:9af4575d3194 | 88 | |
shennongmin | 25:9af4575d3194 | 89 | #include "ESP8266.h" |
shennongmin | 25:9af4575d3194 | 90 | |
shennongmin | 25:9af4575d3194 | 91 | |
shennongmin | 25:9af4575d3194 | 92 | ESP8266 wifi(p28, p27); |
shennongmin | 25:9af4575d3194 | 93 | |
shennongmin | 25:9af4575d3194 | 94 | |
shennongmin | 25:9af4575d3194 | 95 | void setup() |
shennongmin | 25:9af4575d3194 | 96 | { |
shennongmin | 29:75185b05d6a4 | 97 | wifi.reset(); |
shennongmin | 30:46a560b71e61 | 98 | if(!wifi.setStationMode(SSID, PASSWORD)) { |
shennongmin | 25:9af4575d3194 | 99 | printf("init error\r\n"); |
shennongmin | 25:9af4575d3194 | 100 | } |
shennongmin | 25:9af4575d3194 | 101 | delay(8000); |
shennongmin | 25:9af4575d3194 | 102 | printf("IP address:%s\r\n", wifi.showIP().c_str()); |
shennongmin | 25:9af4575d3194 | 103 | printf("Access Point:%s\r\n", wifi.showJAP().c_str()); |
shennongmin | 25:9af4575d3194 | 104 | |
shennongmin | 25:9af4575d3194 | 105 | delay(1000); |
shennongmin | 25:9af4575d3194 | 106 | wifi.confMux(1); |
shennongmin | 25:9af4575d3194 | 107 | delay(100); |
shennongmin | 25:9af4575d3194 | 108 | if(wifi.confServer(1, 80)) { |
shennongmin | 25:9af4575d3194 | 109 | printf("Server is set up\r\n"); |
shennongmin | 25:9af4575d3194 | 110 | } |
shennongmin | 25:9af4575d3194 | 111 | } |
shennongmin | 25:9af4575d3194 | 112 | |
shennongmin | 25:9af4575d3194 | 113 | void loop() |
shennongmin | 25:9af4575d3194 | 114 | { |
shennongmin | 25:9af4575d3194 | 115 | char buf[500]; |
shennongmin | 25:9af4575d3194 | 116 | int iLen = wifi.recvData(buf); |
shennongmin | 25:9af4575d3194 | 117 | if(iLen > 0) { |
shennongmin | 25:9af4575d3194 | 118 | |
shennongmin | 25:9af4575d3194 | 119 | printf("Recv:[%s]\r\n", buf); |
shennongmin | 25:9af4575d3194 | 120 | delay(100); |
shennongmin | 25:9af4575d3194 | 121 | |
shennongmin | 25:9af4575d3194 | 122 | String cmd; |
shennongmin | 25:9af4575d3194 | 123 | cmd = "HTTP/1.1 200 OK\r\n"; |
shennongmin | 25:9af4575d3194 | 124 | cmd += "Content-Type: text/html\r\n"; |
shennongmin | 25:9af4575d3194 | 125 | cmd += "Connection: close\r\n"; |
shennongmin | 25:9af4575d3194 | 126 | cmd += "\r\n"; |
shennongmin | 25:9af4575d3194 | 127 | cmd += "This is a test server."; |
shennongmin | 25:9af4575d3194 | 128 | |
shennongmin | 29:75185b05d6a4 | 129 | wifi.send(wifi.getMuxID(),cmd); |
shennongmin | 25:9af4575d3194 | 130 | delay(300); |
shennongmin | 29:75185b05d6a4 | 131 | wifi.closeMux(wifi.getMuxID()); |
shennongmin | 25:9af4575d3194 | 132 | delay(1000); |
shennongmin | 25:9af4575d3194 | 133 | } |
shennongmin | 25:9af4575d3194 | 134 | } |
shennongmin | 25:9af4575d3194 | 135 | |
shennongmin | 25:9af4575d3194 | 136 | #endif |
shennongmin | 25:9af4575d3194 | 137 | |
shennongmin | 25:9af4575d3194 | 138 | #ifdef EXAMPLE_UDPTEST |
shennongmin | 25:9af4575d3194 | 139 | #define SSID "ITEAD" |
shennongmin | 25:9af4575d3194 | 140 | #define PASSWORD "12345678" |
shennongmin | 25:9af4575d3194 | 141 | |
shennongmin | 25:9af4575d3194 | 142 | |
shennongmin | 25:9af4575d3194 | 143 | #include "ESP8266.h" |
shennongmin | 25:9af4575d3194 | 144 | |
shennongmin | 25:9af4575d3194 | 145 | ESP8266 wifi(p28, p27); |
shennongmin | 25:9af4575d3194 | 146 | DigitalOut led1(LED1); |
shennongmin | 25:9af4575d3194 | 147 | |
shennongmin | 25:9af4575d3194 | 148 | void setup() |
shennongmin | 25:9af4575d3194 | 149 | { |
shennongmin | 29:75185b05d6a4 | 150 | wifi.reset(); |
shennongmin | 30:46a560b71e61 | 151 | if(!wifi.setStationMode(SSID, PASSWORD)) { |
shennongmin | 25:9af4575d3194 | 152 | printf("init error\r\n"); |
shennongmin | 25:9af4575d3194 | 153 | } |
shennongmin | 25:9af4575d3194 | 154 | delay(8000); |
shennongmin | 25:9af4575d3194 | 155 | printf("IP address:%s\r\n", wifi.showIP().c_str()); |
shennongmin | 25:9af4575d3194 | 156 | printf("Access Point:%s\r\n", wifi.showJAP().c_str()); |
shennongmin | 25:9af4575d3194 | 157 | |
shennongmin | 25:9af4575d3194 | 158 | if (wifi.ipConfig(ESP8266_UDP, "172.16.5.12", 5416)) { //Connect to your server |
shennongmin | 25:9af4575d3194 | 159 | printf("Register UDP ok\r\n"); |
shennongmin | 25:9af4575d3194 | 160 | } else { |
shennongmin | 25:9af4575d3194 | 161 | printf("Register UDP err\r\n"); |
shennongmin | 25:9af4575d3194 | 162 | } |
shennongmin | 25:9af4575d3194 | 163 | wifi.send("setup done\r\n"); |
shennongmin | 25:9af4575d3194 | 164 | printf("setup done\r\n"); |
shennongmin | 25:9af4575d3194 | 165 | } |
shennongmin | 25:9af4575d3194 | 166 | |
shennongmin | 25:9af4575d3194 | 167 | |
shennongmin | 25:9af4575d3194 | 168 | |
shennongmin | 25:9af4575d3194 | 169 | void loop() { |
shennongmin | 25:9af4575d3194 | 170 | char buf[10]; |
shennongmin | 25:9af4575d3194 | 171 | int iLen = 0; |
shennongmin | 25:9af4575d3194 | 172 | iLen = wifi.recvData(buf); |
shennongmin | 25:9af4575d3194 | 173 | if(iLen > 0) { |
shennongmin | 25:9af4575d3194 | 174 | //if you receive "HIGH" message, set the D13 to high voltage; and vice versa |
shennongmin | 25:9af4575d3194 | 175 | if (strcmp(buf, "HIGH") == 0) { |
shennongmin | 25:9af4575d3194 | 176 | printf("Set HIGH\r\n"); |
shennongmin | 25:9af4575d3194 | 177 | led1 = 1; |
shennongmin | 25:9af4575d3194 | 178 | } |
shennongmin | 25:9af4575d3194 | 179 | else if (strcmp(buf, "LOW") == 0) { |
shennongmin | 25:9af4575d3194 | 180 | printf("Set LOW\r\n"); |
shennongmin | 25:9af4575d3194 | 181 | led1 = 0; |
shennongmin | 25:9af4575d3194 | 182 | } |
shennongmin | 25:9af4575d3194 | 183 | } |
shennongmin | 25:9af4575d3194 | 184 | } |
shennongmin | 25:9af4575d3194 | 185 | |
shennongmin | 25:9af4575d3194 | 186 | #endif |
shennongmin | 25:9af4575d3194 | 187 | |
shennongmin | 25:9af4575d3194 | 188 | #ifdef EXAMPLE_WIFITEST |
shennongmin | 25:9af4575d3194 | 189 | #include "ESP8266.h" |
shennongmin | 25:9af4575d3194 | 190 | |
shennongmin | 25:9af4575d3194 | 191 | #define SSID "ITEAD" |
shennongmin | 25:9af4575d3194 | 192 | #define PASSWORD "12345678" |
shennongmin | 25:9af4575d3194 | 193 | |
shennongmin | 25:9af4575d3194 | 194 | ESP8266 wifi(p28, p27); |
shennongmin | 25:9af4575d3194 | 195 | |
shennongmin | 25:9af4575d3194 | 196 | void setup(void) { |
shennongmin | 29:75185b05d6a4 | 197 | wifi.reset(); |
shennongmin | 30:46a560b71e61 | 198 | if(!wifi.setStationMode(SSID, PASSWORD)) { |
shennongmin | 25:9af4575d3194 | 199 | printf("init error\r\n"); |
shennongmin | 25:9af4575d3194 | 200 | } |
shennongmin | 25:9af4575d3194 | 201 | delay(8000); |
shennongmin | 25:9af4575d3194 | 202 | printf("IP address:%s\r\n", wifi.showIP().c_str()); |
shennongmin | 25:9af4575d3194 | 203 | printf("Access Point:%s\r\n", wifi.showJAP().c_str()); |
shennongmin | 25:9af4575d3194 | 204 | } |
shennongmin | 25:9af4575d3194 | 205 | |
shennongmin | 25:9af4575d3194 | 206 | void loop(void) { |
shennongmin | 25:9af4575d3194 | 207 | } |
shennongmin | 25:9af4575d3194 | 208 | |
shennongmin | 25:9af4575d3194 | 209 | #endif |