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