Kiko Ishimoto
/
mbed_esp8266
esp8266
main.cpp@1:49b2903daa5f, 2016-05-09 (annotated)
- Committer:
- kikoaac
- Date:
- Mon May 09 05:50:49 2016 +0000
- Revision:
- 1:49b2903daa5f
- Parent:
- 0:28089dd1adda
update2;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kikoaac | 0:28089dd1adda | 1 | #include "mbed.h" |
kikoaac | 0:28089dd1adda | 2 | |
kikoaac | 1:49b2903daa5f | 3 | #include <string> |
kikoaac | 0:28089dd1adda | 4 | |
kikoaac | 0:28089dd1adda | 5 | DigitalOut myled(LED1); |
kikoaac | 1:49b2903daa5f | 6 | Serial esp(p13,p14); |
kikoaac | 0:28089dd1adda | 7 | Serial pc(USBTX,USBRX); |
kikoaac | 0:28089dd1adda | 8 | #define end "\r\n" |
kikoaac | 1:49b2903daa5f | 9 | |
kikoaac | 0:28089dd1adda | 10 | class esp8266 |
kikoaac | 0:28089dd1adda | 11 | { |
kikoaac | 1:49b2903daa5f | 12 | //AP アクセスポイント |
kikoaac | 1:49b2903daa5f | 13 | //ST client |
kikoaac | 1:49b2903daa5f | 14 | //APST Server and Client |
kikoaac | 1:49b2903daa5f | 15 | private: |
kikoaac | 1:49b2903daa5f | 16 | |
kikoaac | 0:28089dd1adda | 17 | DigitalOut myled; |
kikoaac | 0:28089dd1adda | 18 | Serial *Seri; |
kikoaac | 0:28089dd1adda | 19 | char* buffer; |
kikoaac | 0:28089dd1adda | 20 | int datalen; |
kikoaac | 1:49b2903daa5f | 21 | void strChack(char data[]) { |
kikoaac | 1:49b2903daa5f | 22 | int f = 0; |
kikoaac | 1:49b2903daa5f | 23 | for (;;) { |
kikoaac | 1:49b2903daa5f | 24 | if(f == strlen(data)) |
kikoaac | 1:49b2903daa5f | 25 | { |
kikoaac | 1:49b2903daa5f | 26 | break; |
kikoaac | 1:49b2903daa5f | 27 | } |
kikoaac | 1:49b2903daa5f | 28 | char a=Seri->getc(); |
kikoaac | 1:49b2903daa5f | 29 | if(a!=data[f])f=0; |
kikoaac | 1:49b2903daa5f | 30 | else f++; |
kikoaac | 1:49b2903daa5f | 31 | |
kikoaac | 1:49b2903daa5f | 32 | } |
kikoaac | 1:49b2903daa5f | 33 | wait(0.1); |
kikoaac | 1:49b2903daa5f | 34 | } |
kikoaac | 1:49b2903daa5f | 35 | void Reception() { |
kikoaac | 1:49b2903daa5f | 36 | |
kikoaac | 1:49b2903daa5f | 37 | char inputData[100]; |
kikoaac | 1:49b2903daa5f | 38 | Seri->scanf("%s",inputData); |
kikoaac | 1:49b2903daa5f | 39 | myled=1; |
kikoaac | 0:28089dd1adda | 40 | Serial pc(USBTX,USBRX); |
kikoaac | 0:28089dd1adda | 41 | pc.baud(115200); |
kikoaac | 1:49b2903daa5f | 42 | pc.printf("%s\r\n",inputData); |
kikoaac | 1:49b2903daa5f | 43 | if(strstr(inputData,"+IPD,")==NULL) { |
kikoaac | 1:49b2903daa5f | 44 | /* |
kikoaac | 1:49b2903daa5f | 45 | if(strcmp(x,"0,CONNECT")==0)break; |
kikoaac | 1:49b2903daa5f | 46 | if(strcmp(x,"0,CLOSED")==0)break; |
kikoaac | 1:49b2903daa5f | 47 | if(strcmp(x,">")==0)break;*/ |
kikoaac | 1:49b2903daa5f | 48 | } else { |
kikoaac | 1:49b2903daa5f | 49 | strtok(inputData,","); |
kikoaac | 1:49b2903daa5f | 50 | strtok(NULL,":"); |
kikoaac | 1:49b2903daa5f | 51 | char *data = strtok(NULL,","); |
kikoaac | 1:49b2903daa5f | 52 | strtok(inputData,","); |
kikoaac | 1:49b2903daa5f | 53 | char *data_num = strtok(NULL,","); |
kikoaac | 1:49b2903daa5f | 54 | datalen = atoi(data_num); |
kikoaac | 1:49b2903daa5f | 55 | buffer=data; |
kikoaac | 1:49b2903daa5f | 56 | //data = strtok(x,""); |
kikoaac | 1:49b2903daa5f | 57 | //buffer = data; |
kikoaac | 1:49b2903daa5f | 58 | //pc.printf("%s , %s , %s\r\n",y,data_num,data); |
kikoaac | 1:49b2903daa5f | 59 | } |
kikoaac | 1:49b2903daa5f | 60 | myled=1; |
kikoaac | 0:28089dd1adda | 61 | } |
kikoaac | 1:49b2903daa5f | 62 | bool check() { |
kikoaac | 1:49b2903daa5f | 63 | |
kikoaac | 0:28089dd1adda | 64 | Serial pc(USBTX,USBRX); |
kikoaac | 0:28089dd1adda | 65 | pc.baud(115200); |
kikoaac | 0:28089dd1adda | 66 | Seri->printf(end); |
kikoaac | 0:28089dd1adda | 67 | bool f = false,ans; |
kikoaac | 1:49b2903daa5f | 68 | int i=0; |
kikoaac | 0:28089dd1adda | 69 | while(1) { |
kikoaac | 0:28089dd1adda | 70 | char x = Seri->getc(); |
kikoaac | 0:28089dd1adda | 71 | pc.putc(x); |
kikoaac | 0:28089dd1adda | 72 | if(x=='O')f=true; |
kikoaac | 1:49b2903daa5f | 73 | else if(x=='K'&&f==true) { |
kikoaac | 0:28089dd1adda | 74 | ans=true; |
kikoaac | 0:28089dd1adda | 75 | break; |
kikoaac | 1:49b2903daa5f | 76 | } else f=false; |
kikoaac | 1:49b2903daa5f | 77 | |
kikoaac | 0:28089dd1adda | 78 | if(x=='F')i=1; |
kikoaac | 0:28089dd1adda | 79 | else if(x=='A'&&i==1)i=2; |
kikoaac | 0:28089dd1adda | 80 | else if(x=='I'&&i==2)i=3; |
kikoaac | 1:49b2903daa5f | 81 | else if(x=='L'&&i==3) { |
kikoaac | 0:28089dd1adda | 82 | ans=false; |
kikoaac | 0:28089dd1adda | 83 | break; |
kikoaac | 1:49b2903daa5f | 84 | } else i=0; |
kikoaac | 1:49b2903daa5f | 85 | |
kikoaac | 0:28089dd1adda | 86 | } |
kikoaac | 0:28089dd1adda | 87 | wait(0.1); |
kikoaac | 0:28089dd1adda | 88 | return ans; |
kikoaac | 1:49b2903daa5f | 89 | } |
kikoaac | 0:28089dd1adda | 90 | bool connected; |
kikoaac | 1:49b2903daa5f | 91 | public: |
kikoaac | 1:49b2903daa5f | 92 | char* get_data(char *datax,int num) { |
kikoaac | 1:49b2903daa5f | 93 | get: |
kikoaac | 0:28089dd1adda | 94 | char x[num+2]; |
kikoaac | 0:28089dd1adda | 95 | Seri->scanf("%s",x); |
kikoaac | 0:28089dd1adda | 96 | myled=1; |
kikoaac | 0:28089dd1adda | 97 | Serial pc(USBTX,USBRX); |
kikoaac | 0:28089dd1adda | 98 | pc.baud(115200); |
kikoaac | 1:49b2903daa5f | 99 | if(strstr(x,"+IPD,")==NULL) { |
kikoaac | 1:49b2903daa5f | 100 | |
kikoaac | 0:28089dd1adda | 101 | return NULL; |
kikoaac | 0:28089dd1adda | 102 | /* |
kikoaac | 0:28089dd1adda | 103 | if(strcmp(x,"0,CONNECT")==0)break; |
kikoaac | 0:28089dd1adda | 104 | if(strcmp(x,"0,CLOSED")==0)break; |
kikoaac | 0:28089dd1adda | 105 | if(strcmp(x,">")==0)break;*/ |
kikoaac | 1:49b2903daa5f | 106 | } else { |
kikoaac | 0:28089dd1adda | 107 | |
kikoaac | 0:28089dd1adda | 108 | strtok(x,","); |
kikoaac | 0:28089dd1adda | 109 | strtok(NULL,":"); |
kikoaac | 0:28089dd1adda | 110 | datax = strtok(NULL,","); |
kikoaac | 0:28089dd1adda | 111 | strtok(x,","); |
kikoaac | 0:28089dd1adda | 112 | char *data_num = strtok(NULL,","); |
kikoaac | 0:28089dd1adda | 113 | char len = atoi(data_num); |
kikoaac | 1:49b2903daa5f | 114 | |
kikoaac | 0:28089dd1adda | 115 | if(strcmp(datax,"\r\n")==0)goto get; |
kikoaac | 0:28089dd1adda | 116 | else if(len > num)return NULL; |
kikoaac | 0:28089dd1adda | 117 | //for(int i=0;i<len;i++) |
kikoaac | 0:28089dd1adda | 118 | // *datax++=*data++; |
kikoaac | 0:28089dd1adda | 119 | //printf("%s\r\n",datax); |
kikoaac | 0:28089dd1adda | 120 | return datax; |
kikoaac | 0:28089dd1adda | 121 | //data = strtok(x,""); |
kikoaac | 0:28089dd1adda | 122 | //buffer = data; |
kikoaac | 0:28089dd1adda | 123 | //pc.printf("%s , %s , %s\r\n",y,data_num,data); |
kikoaac | 0:28089dd1adda | 124 | } |
kikoaac | 0:28089dd1adda | 125 | } |
kikoaac | 1:49b2903daa5f | 126 | bool sleep(int mode) { |
kikoaac | 0:28089dd1adda | 127 | Seri->printf("AT+SLEEP=%d",mode); |
kikoaac | 1:49b2903daa5f | 128 | return check(); |
kikoaac | 0:28089dd1adda | 129 | } |
kikoaac | 1:49b2903daa5f | 130 | bool deepsleep(int ms) { |
kikoaac | 0:28089dd1adda | 131 | Seri->printf("AT+GSLP=%d",ms); |
kikoaac | 0:28089dd1adda | 132 | return check(); |
kikoaac | 0:28089dd1adda | 133 | } |
kikoaac | 1:49b2903daa5f | 134 | bool httpAccess(char* mode,char* url,int port=80) { |
kikoaac | 0:28089dd1adda | 135 | if(connected==false)return false; |
kikoaac | 1:49b2903daa5f | 136 | Seri->printf("AT+CIPSTART=\"%s\",\"%s\",%d",mode,url,port); |
kikoaac | 1:49b2903daa5f | 137 | return check(); |
kikoaac | 1:49b2903daa5f | 138 | } |
kikoaac | 1:49b2903daa5f | 139 | bool httpAccess(char id,char* url,char* mode = "TCP",int port=80) { |
kikoaac | 1:49b2903daa5f | 140 | if(connected==false)return false; |
kikoaac | 1:49b2903daa5f | 141 | Seri->printf("AT+CIPSTART=\"%d\",\"%s\",\"%s\",%d",id,mode,url,port); |
kikoaac | 1:49b2903daa5f | 142 | return check(); |
kikoaac | 0:28089dd1adda | 143 | } |
kikoaac | 1:49b2903daa5f | 144 | bool Disconnection(int id = 0) |
kikoaac | 0:28089dd1adda | 145 | { |
kikoaac | 1:49b2903daa5f | 146 | printf("AT+CIPCLOSE==%d",id); |
kikoaac | 1:49b2903daa5f | 147 | return check(); |
kikoaac | 0:28089dd1adda | 148 | } |
kikoaac | 1:49b2903daa5f | 149 | void prompt() { |
kikoaac | 1:49b2903daa5f | 150 | Seri->attach(this,&esp8266::Reception); |
kikoaac | 0:28089dd1adda | 151 | } |
kikoaac | 0:28089dd1adda | 152 | //Seri->printf("AT+CIPSTA_CUR=\"%s\",\"%s\",\"%s\"",IP,gateway,netmask); |
kikoaac | 1:49b2903daa5f | 153 | bool setDHCP(int mode,int en) { |
kikoaac | 1:49b2903daa5f | 154 | DHCPMode = mode; |
kikoaac | 1:49b2903daa5f | 155 | DHCPenable = en; |
kikoaac | 0:28089dd1adda | 156 | printf("AT+CWDHCP_CUR=%d,%d",mode,en); |
kikoaac | 0:28089dd1adda | 157 | return check(); |
kikoaac | 0:28089dd1adda | 158 | } |
kikoaac | 1:49b2903daa5f | 159 | bool send( int num,char* data,int id) { |
kikoaac | 0:28089dd1adda | 160 | if(connected==false)return false; |
kikoaac | 1:49b2903daa5f | 161 | Seri->printf("AT+CIPSEND=%d,%d",id,num+2); |
kikoaac | 0:28089dd1adda | 162 | check(); |
kikoaac | 0:28089dd1adda | 163 | wait(0.01); |
kikoaac | 1:49b2903daa5f | 164 | while(1) { |
kikoaac | 0:28089dd1adda | 165 | char i = Seri->getc(); |
kikoaac | 0:28089dd1adda | 166 | pc.putc(i); |
kikoaac | 0:28089dd1adda | 167 | if(i=='>')break; |
kikoaac | 0:28089dd1adda | 168 | } |
kikoaac | 0:28089dd1adda | 169 | Seri->printf("%s",data); |
kikoaac | 0:28089dd1adda | 170 | Seri->printf("\r\n"); |
kikoaac | 0:28089dd1adda | 171 | return check(); |
kikoaac | 0:28089dd1adda | 172 | } |
kikoaac | 1:49b2903daa5f | 173 | |
kikoaac | 1:49b2903daa5f | 174 | bool multipull(int i) { |
kikoaac | 0:28089dd1adda | 175 | Seri->printf("AT+CIPMUX=%d",i); |
kikoaac | 0:28089dd1adda | 176 | return check(); |
kikoaac | 0:28089dd1adda | 177 | } |
kikoaac | 1:49b2903daa5f | 178 | void reset() { |
kikoaac | 0:28089dd1adda | 179 | Seri->printf("AT+RST\r\n"); |
kikoaac | 1:49b2903daa5f | 180 | strChack("ready"); |
kikoaac | 1:49b2903daa5f | 181 | wait(0.1); |
kikoaac | 1:49b2903daa5f | 182 | } |
kikoaac | 1:49b2903daa5f | 183 | void serverCreate(int mode,int port) { |
kikoaac | 0:28089dd1adda | 184 | Seri->printf("AT+CIPSERVER=%d,%d",mode,port); |
kikoaac | 0:28089dd1adda | 185 | check(); |
kikoaac | 0:28089dd1adda | 186 | wait(0.1); |
kikoaac | 1:49b2903daa5f | 187 | /*printf("\r\nwait connection\r\n"); |
kikoaac | 1:49b2903daa5f | 188 | while(1) { |
kikoaac | 0:28089dd1adda | 189 | char x[10]; |
kikoaac | 0:28089dd1adda | 190 | Seri->scanf("%s",x); |
kikoaac | 0:28089dd1adda | 191 | if(strcmp(x,"0,CONNECT")==0)break; |
kikoaac | 1:49b2903daa5f | 192 | }*/ |
kikoaac | 0:28089dd1adda | 193 | printf("\r\OK\r\n"); |
kikoaac | 0:28089dd1adda | 194 | } |
kikoaac | 1:49b2903daa5f | 195 | void serverTimeOutSet(int time = 60) |
kikoaac | 0:28089dd1adda | 196 | { |
kikoaac | 1:49b2903daa5f | 197 | Seri->printf("AT+CIPSTO=%d",time); |
kikoaac | 1:49b2903daa5f | 198 | check(); |
kikoaac | 1:49b2903daa5f | 199 | } |
kikoaac | 1:49b2903daa5f | 200 | |
kikoaac | 1:49b2903daa5f | 201 | bool accesspoint() { |
kikoaac | 1:49b2903daa5f | 202 | Seri->printf("AT+CWLAP\r\n"); |
kikoaac | 0:28089dd1adda | 203 | return check(); |
kikoaac | 0:28089dd1adda | 204 | } |
kikoaac | 1:49b2903daa5f | 205 | |
kikoaac | 1:49b2903daa5f | 206 | bool wifiSoftAPSetting(const char* ssid,const char* password,int ch,int ecn) { |
kikoaac | 1:49b2903daa5f | 207 | if(connectmode==AP||connectmode==APST) |
kikoaac | 1:49b2903daa5f | 208 | Seri->printf("AT+CWSAP_CUR=\"%s\",\"%s\",%d,%d",ssid,password,ch,ecn); |
kikoaac | 1:49b2903daa5f | 209 | else false; |
kikoaac | 1:49b2903daa5f | 210 | return check(); |
kikoaac | 1:49b2903daa5f | 211 | } |
kikoaac | 1:49b2903daa5f | 212 | bool wifiConnectionMode(int mode) { |
kikoaac | 1:49b2903daa5f | 213 | connectmode=mode; |
kikoaac | 1:49b2903daa5f | 214 | Seri->printf("AT+CWMODE_CUR=%d",mode); |
kikoaac | 1:49b2903daa5f | 215 | return check(); |
kikoaac | 1:49b2903daa5f | 216 | } |
kikoaac | 1:49b2903daa5f | 217 | bool wifiDisconnect() { |
kikoaac | 0:28089dd1adda | 218 | Seri->printf("AT+CWQAP"); |
kikoaac | 0:28089dd1adda | 219 | connected=false; |
kikoaac | 0:28089dd1adda | 220 | return check(); |
kikoaac | 0:28089dd1adda | 221 | } |
kikoaac | 1:49b2903daa5f | 222 | bool WifiFindAccesspoint(char *wifi) { |
kikoaac | 1:49b2903daa5f | 223 | Seri->printf("AT+CWLAP=\"%s\""); |
kikoaac | 1:49b2903daa5f | 224 | return check(); |
kikoaac | 1:49b2903daa5f | 225 | } |
kikoaac | 1:49b2903daa5f | 226 | bool WifiFindAccesspoint() { |
kikoaac | 1:49b2903daa5f | 227 | Seri->printf("AT+CWLAP"); |
kikoaac | 1:49b2903daa5f | 228 | return check(); |
kikoaac | 1:49b2903daa5f | 229 | } |
kikoaac | 1:49b2903daa5f | 230 | bool wifiConnect(const char* ssid,const char* password) { |
kikoaac | 1:49b2903daa5f | 231 | Seri->printf("AT+CWJAP_CUR=\"%s\",\"%s\"",ssid,password); |
kikoaac | 1:49b2903daa5f | 232 | connected|=check(); |
kikoaac | 1:49b2903daa5f | 233 | //if(connected==false)return false; |
kikoaac | 1:49b2903daa5f | 234 | //Seri->printf("AT+CIFSR"); |
kikoaac | 1:49b2903daa5f | 235 | //check(); |
kikoaac | 1:49b2903daa5f | 236 | return connected; |
kikoaac | 1:49b2903daa5f | 237 | } |
kikoaac | 1:49b2903daa5f | 238 | bool wifiSoftAPFromIP() { |
kikoaac | 1:49b2903daa5f | 239 | if(connectmode == ST) return false; |
kikoaac | 1:49b2903daa5f | 240 | Seri->printf("AT+CWLIF"); |
kikoaac | 1:49b2903daa5f | 241 | return check(); |
kikoaac | 1:49b2903daa5f | 242 | } |
kikoaac | 1:49b2903daa5f | 243 | bool setSTMACAddress(char addr[6]) |
kikoaac | 0:28089dd1adda | 244 | { |
kikoaac | 1:49b2903daa5f | 245 | Seri->printf("AT+CIPSTART_CUR=\"%2x:%2x:%2x:%2x:%2x:%2x\"",addr[0],addr[1],addr[2],addr[3],addr[4],addr[5]); |
kikoaac | 1:49b2903daa5f | 246 | return check(); |
kikoaac | 1:49b2903daa5f | 247 | } |
kikoaac | 1:49b2903daa5f | 248 | bool setAPMACAddress(char addr[6]) |
kikoaac | 1:49b2903daa5f | 249 | { |
kikoaac | 1:49b2903daa5f | 250 | Seri->printf("AT+CIPAPMAC_CUR=\"%2x:%2x:%2x:%2x:%2x:%2x\"",addr[0],addr[1],addr[2],addr[3],addr[4],addr[5]); |
kikoaac | 1:49b2903daa5f | 251 | return check(); |
kikoaac | 1:49b2903daa5f | 252 | } |
kikoaac | 1:49b2903daa5f | 253 | bool setSTIPAddress(char addr[4]) |
kikoaac | 1:49b2903daa5f | 254 | { |
kikoaac | 1:49b2903daa5f | 255 | Seri->printf("AT+CIPSTA_CUR=\"%3d:%3d:%3d:%3d\"",addr[0],addr[1],addr[2],addr[3]); |
kikoaac | 1:49b2903daa5f | 256 | return check(); |
kikoaac | 1:49b2903daa5f | 257 | } |
kikoaac | 1:49b2903daa5f | 258 | bool setAPIPAddress(char addr[4]) |
kikoaac | 1:49b2903daa5f | 259 | { |
kikoaac | 1:49b2903daa5f | 260 | Seri->printf("AT+CIPAP_CUR=\"%3d:%3d:%3d:%3d\"",addr[0],addr[1],addr[2],addr[3]); |
kikoaac | 1:49b2903daa5f | 261 | return check(); |
kikoaac | 1:49b2903daa5f | 262 | } |
kikoaac | 1:49b2903daa5f | 263 | |
kikoaac | 1:49b2903daa5f | 264 | |
kikoaac | 1:49b2903daa5f | 265 | |
kikoaac | 1:49b2903daa5f | 266 | bool ATcommand(const char* cmd) { |
kikoaac | 0:28089dd1adda | 267 | char a[20]; |
kikoaac | 0:28089dd1adda | 268 | strcat(a,"AT+"); |
kikoaac | 0:28089dd1adda | 269 | strcat(a,cmd); |
kikoaac | 0:28089dd1adda | 270 | Seri->printf(a); |
kikoaac | 1:49b2903daa5f | 271 | return check(); |
kikoaac | 1:49b2903daa5f | 272 | } |
kikoaac | 0:28089dd1adda | 273 | const char AP=2; |
kikoaac | 0:28089dd1adda | 274 | const char ST=1; |
kikoaac | 0:28089dd1adda | 275 | const char APST=3; |
kikoaac | 0:28089dd1adda | 276 | char connectmode; |
kikoaac | 1:49b2903daa5f | 277 | char DHCPMode; |
kikoaac | 1:49b2903daa5f | 278 | char DHCPenable; |
kikoaac | 1:49b2903daa5f | 279 | esp8266(Serial *ser) : myled(LED2) { |
kikoaac | 0:28089dd1adda | 280 | myled=1; |
kikoaac | 0:28089dd1adda | 281 | connected=false; |
kikoaac | 1:49b2903daa5f | 282 | |
kikoaac | 1:49b2903daa5f | 283 | DHCPMode = 0; |
kikoaac | 1:49b2903daa5f | 284 | DHCPenable = 1; |
kikoaac | 0:28089dd1adda | 285 | Seri = ser; |
kikoaac | 0:28089dd1adda | 286 | bool f = false; |
kikoaac | 1:49b2903daa5f | 287 | int i=0; |
kikoaac | 0:28089dd1adda | 288 | Seri->printf("AT\r\n"); |
kikoaac | 1:49b2903daa5f | 289 | |
kikoaac | 1:49b2903daa5f | 290 | strChack("OK"); |
kikoaac | 1:49b2903daa5f | 291 | reset(); |
kikoaac | 0:28089dd1adda | 292 | wait(0.5); |
kikoaac | 0:28089dd1adda | 293 | } |
kikoaac | 1:49b2903daa5f | 294 | |
kikoaac | 0:28089dd1adda | 295 | }; |
kikoaac | 0:28089dd1adda | 296 | /*void end() |
kikoaac | 0:28089dd1adda | 297 | { |
kikoaac | 0:28089dd1adda | 298 | esp.printf("\r\n"); |
kikoaac | 0:28089dd1adda | 299 | }*/ |
kikoaac | 0:28089dd1adda | 300 | void send_AT() |
kikoaac | 0:28089dd1adda | 301 | { |
kikoaac | 1:49b2903daa5f | 302 | esp.printf("AT\r\n"); |
kikoaac | 0:28089dd1adda | 303 | } |
kikoaac | 1:49b2903daa5f | 304 | int main() |
kikoaac | 1:49b2903daa5f | 305 | { |
kikoaac | 1:49b2903daa5f | 306 | //myled = 1; |
kikoaac | 0:28089dd1adda | 307 | pc.baud(115200); |
kikoaac | 0:28089dd1adda | 308 | esp.baud(115200); |
kikoaac | 0:28089dd1adda | 309 | printf("Start\r\n"); |
kikoaac | 0:28089dd1adda | 310 | wait(0.1); |
kikoaac | 0:28089dd1adda | 311 | esp8266 ESP(&esp); |
kikoaac | 1:49b2903daa5f | 312 | send_AT(); |
kikoaac | 1:49b2903daa5f | 313 | myled = 1; |
kikoaac | 1:49b2903daa5f | 314 | bool f = true; |
kikoaac | 1:49b2903daa5f | 315 | while(f) |
kikoaac | 1:49b2903daa5f | 316 | { |
kikoaac | 1:49b2903daa5f | 317 | /*char *x; |
kikoaac | 1:49b2903daa5f | 318 | esp.scanf("%s",x); |
kikoaac | 1:49b2903daa5f | 319 | printf("%s",x); |
kikoaac | 1:49b2903daa5f | 320 | f = !strcmp(x,"OK\r\n");*/ |
kikoaac | 1:49b2903daa5f | 321 | //esp.putc(pc.getc()); |
kikoaac | 1:49b2903daa5f | 322 | //pc.putc(esp.getc()); |
kikoaac | 1:49b2903daa5f | 323 | } |
kikoaac | 0:28089dd1adda | 324 | //end(); |
kikoaac | 0:28089dd1adda | 325 | //ESP.reset(); |
kikoaac | 1:49b2903daa5f | 326 | /*ESP.connection_mode(3); |
kikoaac | 0:28089dd1adda | 327 | ESP.multipull(1); |
kikoaac | 0:28089dd1adda | 328 | ESP.accesspoint(); |
kikoaac | 1:49b2903daa5f | 329 | |
kikoaac | 0:28089dd1adda | 330 | ESP.connect("biz","roborobo"); |
kikoaac | 0:28089dd1adda | 331 | //ESP.http_access("TCP","imaoca.webcrow.jp",80); |
kikoaac | 0:28089dd1adda | 332 | ESP.tcp_setting(1,8888); |
kikoaac | 1:49b2903daa5f | 333 | char senddata[10]; |
kikoaac | 0:28089dd1adda | 334 | pc.printf("\r\n tcp send data\r\n"); |
kikoaac | 0:28089dd1adda | 335 | for(int i=0;i<10;i++) |
kikoaac | 0:28089dd1adda | 336 | { |
kikoaac | 0:28089dd1adda | 337 | senddata[i]=pc.getc(); |
kikoaac | 1:49b2903daa5f | 338 | pc.putc(senddata[i]); |
kikoaac | 1:49b2903daa5f | 339 | } |
kikoaac | 0:28089dd1adda | 340 | //ESP.send(10,senddata); |
kikoaac | 0:28089dd1adda | 341 | //ESP.prompt(); |
kikoaac | 0:28089dd1adda | 342 | ESP.softAP("ESP8266","",10,0); |
kikoaac | 0:28089dd1adda | 343 | char *data,num=30; |
kikoaac | 0:28089dd1adda | 344 | DigitalOut LED(LED4); |
kikoaac | 1:49b2903daa5f | 345 | while(1) { |
kikoaac | 1:49b2903daa5f | 346 | // data = ESP.get_data(data,num); |
kikoaac | 1:49b2903daa5f | 347 | // if(data!=NULL) |
kikoaac | 1:49b2903daa5f | 348 | // printf("GET->%s\r\n",data); |
kikoaac | 0:28089dd1adda | 349 | myled=1; |
kikoaac | 0:28089dd1adda | 350 | wait(0.01); |
kikoaac | 0:28089dd1adda | 351 | myled=0; |
kikoaac | 0:28089dd1adda | 352 | data=ESP.get_data(data,num); |
kikoaac | 0:28089dd1adda | 353 | printf("%s\r\n",data); |
kikoaac | 0:28089dd1adda | 354 | if (strstr(data,"ON")!=NULL) |
kikoaac | 0:28089dd1adda | 355 | LED=1; |
kikoaac | 0:28089dd1adda | 356 | if (strstr(data,"OFF")!=NULL) |
kikoaac | 0:28089dd1adda | 357 | LED=0; |
kikoaac | 1:49b2903daa5f | 358 | //pc.putc( esp.getc()); |
kikoaac | 0:28089dd1adda | 359 | } |
kikoaac | 0:28089dd1adda | 360 | /*while(1) { |
kikoaac | 0:28089dd1adda | 361 | char x = esp.getc(); |
kikoaac | 0:28089dd1adda | 362 | pc.putc(x); |
kikoaac | 0:28089dd1adda | 363 | if(x=='O')f=true; |
kikoaac | 0:28089dd1adda | 364 | else if(x=='K'&&f==true)break; |
kikoaac | 0:28089dd1adda | 365 | else f=false; |
kikoaac | 0:28089dd1adda | 366 | }*/ |
kikoaac | 0:28089dd1adda | 367 | myled=0; |
kikoaac | 0:28089dd1adda | 368 | } |