Crawl再現プロジェクト

Committer:
Nyakkey from Desktop
Date:
Tue Feb 12 02:37:19 2019 +0900
Revision:
1:6e1c32b423ac
Parent:
0:d730ea7f5784
Child:
2:af1c058fb7f0
Try :: Add mbed_app.json and try setting from mbed_app.json (Nyakkey from Desktop)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
miyakkey 0:d730ea7f5784 1 #include "mbed.h"
miyakkey 0:d730ea7f5784 2 #include "ESP8266Interface.h"
miyakkey 0:d730ea7f5784 3
miyakkey 0:d730ea7f5784 4 DigitalOut myled(PB_3) ;
miyakkey 0:d730ea7f5784 5 Serial pc (PA_2, PA_15, 115200) ;
miyakkey 0:d730ea7f5784 6 //Serial pc (PA_2, PA_15, 9600) ;
miyakkey 0:d730ea7f5784 7 //Serial esp (PB_6, PB_7, 115200) ;
Nyakkey from Desktop 1:6e1c32b423ac 8 //ESP8266Interface wifi(PB_6, PB_7, false); //tx,rx,debug
miyakkey 0:d730ea7f5784 9 PwmOut mt[2][2] = {{PA_3, PA_6}, {PA_9, PA_8}} ;
Nyakkey from Desktop 1:6e1c32b423ac 10 WiFiInterface *wifi ;
miyakkey 0:d730ea7f5784 11
Nyakkey from Desktop 1:6e1c32b423ac 12 //const char ip_addr_dns[4] = {192,168,137,1} ;
Nyakkey from Desktop 1:6e1c32b423ac 13 //SocketAddress dns(ip_addr_dns) ;
miyakkey 0:d730ea7f5784 14 Thread t_led(osPriorityLow) ;
miyakkey 0:d730ea7f5784 15 //Thread t_serial(osPriorityAboveNormal) ; //configure mutax lock
miyakkey 0:d730ea7f5784 16
miyakkey 0:d730ea7f5784 17 void thread_led() ;
miyakkey 0:d730ea7f5784 18 //void thread_serial() ;
miyakkey 0:d730ea7f5784 19 void move_motor(float*) ;
miyakkey 0:d730ea7f5784 20 const char *sec2str(nsapi_security_t sec) ;
miyakkey 0:d730ea7f5784 21
miyakkey 0:d730ea7f5784 22 void thread_led(){
miyakkey 0:d730ea7f5784 23 while( true ) {
miyakkey 0:d730ea7f5784 24 myled = 1 ;
miyakkey 0:d730ea7f5784 25 wait(0.1) ;
miyakkey 0:d730ea7f5784 26 myled = 0 ;
miyakkey 0:d730ea7f5784 27 wait(1.0) ;
miyakkey 0:d730ea7f5784 28 }
miyakkey 0:d730ea7f5784 29 }
miyakkey 0:d730ea7f5784 30
miyakkey 0:d730ea7f5784 31 /*
miyakkey 0:d730ea7f5784 32
miyakkey 0:d730ea7f5784 33 void thread_serial(){
miyakkey 0:d730ea7f5784 34 pc.printf("Reset\r\n") ;
miyakkey 0:d730ea7f5784 35 pc.printf("Start Moving\r\n") ;
miyakkey 0:d730ea7f5784 36 pc.printf("Command\r\n") ;
miyakkey 0:d730ea7f5784 37 pc.printf("w:Forward, s:Backward\r\n") ;
miyakkey 0:d730ea7f5784 38 pc.printf("a:Left, d:Right\r\n") ;
miyakkey 0:d730ea7f5784 39 pc.printf("x:Stop\r\n") ;
miyakkey 0:d730ea7f5784 40
miyakkey 0:d730ea7f5784 41 float motor[2] = {0.0, 0.0} ;
miyakkey 0:d730ea7f5784 42
miyakkey 0:d730ea7f5784 43 while( true ){
miyakkey 0:d730ea7f5784 44 if ( pc.readable() ){
miyakkey 0:d730ea7f5784 45 char command ;
miyakkey 0:d730ea7f5784 46 command = pc.getc() ;
miyakkey 0:d730ea7f5784 47 switch ( command ) {
miyakkey 0:d730ea7f5784 48 case 'w' :
miyakkey 0:d730ea7f5784 49 motor[0] = 0.5 ;
miyakkey 0:d730ea7f5784 50 motor[1] = 0.5 ;
miyakkey 0:d730ea7f5784 51 break ;
miyakkey 0:d730ea7f5784 52 case 's' :
miyakkey 0:d730ea7f5784 53 motor[0] = -0.5 ;
miyakkey 0:d730ea7f5784 54 motor[1] = -0.5 ;
miyakkey 0:d730ea7f5784 55 break ;
miyakkey 0:d730ea7f5784 56 case 'a' :
miyakkey 0:d730ea7f5784 57 motor[0] = 0.7 ;
miyakkey 0:d730ea7f5784 58 motor[1] = -0.7 ;
miyakkey 0:d730ea7f5784 59 break ;
miyakkey 0:d730ea7f5784 60 case 'd' :
miyakkey 0:d730ea7f5784 61 motor[0] = -0.7 ;
miyakkey 0:d730ea7f5784 62 motor[1] = 0.7 ;
miyakkey 0:d730ea7f5784 63 break ;
miyakkey 0:d730ea7f5784 64 case 'x' :
miyakkey 0:d730ea7f5784 65 motor[0] = 0.0 ;
miyakkey 0:d730ea7f5784 66 motor[1] = 0.0 ;
miyakkey 0:d730ea7f5784 67 break ;
miyakkey 0:d730ea7f5784 68 default :
miyakkey 0:d730ea7f5784 69 break ;
miyakkey 0:d730ea7f5784 70 }
miyakkey 0:d730ea7f5784 71 pc.putc(command) ;
miyakkey 0:d730ea7f5784 72 move_motor(motor) ;
miyakkey 0:d730ea7f5784 73 }
miyakkey 0:d730ea7f5784 74 wait(0.05) ;
miyakkey 0:d730ea7f5784 75 }
miyakkey 0:d730ea7f5784 76 }*/
miyakkey 0:d730ea7f5784 77
miyakkey 0:d730ea7f5784 78 void move_motor(float* _motor){
miyakkey 0:d730ea7f5784 79 int i ;
miyakkey 0:d730ea7f5784 80 for ( i = 0 ; i < 2 ; i++ ){
miyakkey 0:d730ea7f5784 81 if ( _motor[i] > 0.01f ){
miyakkey 0:d730ea7f5784 82 mt[i][0] = _motor[i] ;
miyakkey 0:d730ea7f5784 83 mt[i][1] = 0.0 ;
miyakkey 0:d730ea7f5784 84 } else if ( _motor[i] < -0.01f ) {
miyakkey 0:d730ea7f5784 85 mt[i][0] = 0.0 ;
miyakkey 0:d730ea7f5784 86 mt[i][1] = ( _motor[i] * -1.f ) ;
miyakkey 0:d730ea7f5784 87 } else {
miyakkey 0:d730ea7f5784 88 mt[i][0] = 0.0 ;
miyakkey 0:d730ea7f5784 89 mt[i][1] = 0.0 ;
miyakkey 0:d730ea7f5784 90 }
miyakkey 0:d730ea7f5784 91 }
miyakkey 0:d730ea7f5784 92 }
miyakkey 0:d730ea7f5784 93
miyakkey 0:d730ea7f5784 94 const char *sec2str(nsapi_security_t sec){
miyakkey 0:d730ea7f5784 95 switch (sec) {
miyakkey 0:d730ea7f5784 96 case NSAPI_SECURITY_NONE:
miyakkey 0:d730ea7f5784 97 return "None";
miyakkey 0:d730ea7f5784 98 case NSAPI_SECURITY_WEP:
miyakkey 0:d730ea7f5784 99 return "WEP";
miyakkey 0:d730ea7f5784 100 case NSAPI_SECURITY_WPA:
miyakkey 0:d730ea7f5784 101 return "WPA";
miyakkey 0:d730ea7f5784 102 case NSAPI_SECURITY_WPA2:
miyakkey 0:d730ea7f5784 103 return "WPA2";
miyakkey 0:d730ea7f5784 104 case NSAPI_SECURITY_WPA_WPA2:
miyakkey 0:d730ea7f5784 105 return "WPA/WPA2";
miyakkey 0:d730ea7f5784 106 case NSAPI_SECURITY_UNKNOWN:
miyakkey 0:d730ea7f5784 107 default:
miyakkey 0:d730ea7f5784 108 return "Unknown";
miyakkey 0:d730ea7f5784 109 }
miyakkey 0:d730ea7f5784 110 }
miyakkey 0:d730ea7f5784 111
Nyakkey from Desktop 1:6e1c32b423ac 112 void http_demo(NetworkInterface *net)
miyakkey 0:d730ea7f5784 113 {
miyakkey 0:d730ea7f5784 114 TCPSocket socket;
miyakkey 0:d730ea7f5784 115 nsapi_error_t response;
miyakkey 0:d730ea7f5784 116
miyakkey 0:d730ea7f5784 117 pc.printf("Sending HTTP request to www.arm.com...\n");
miyakkey 0:d730ea7f5784 118
miyakkey 0:d730ea7f5784 119 // Open a socket on the network interface, and create a TCP connection to www.arm.com
Nyakkey from Desktop 1:6e1c32b423ac 120 response = socket.open(net);
miyakkey 0:d730ea7f5784 121 if(0 != response) {
miyakkey 0:d730ea7f5784 122 pc.printf("socket.open() failed: %d\n", response);
miyakkey 0:d730ea7f5784 123 return;
miyakkey 0:d730ea7f5784 124 }
miyakkey 0:d730ea7f5784 125
miyakkey 0:d730ea7f5784 126 //response = socket.connect("api.ipify.org", 80);
miyakkey 0:d730ea7f5784 127 const char ip_addr_ipify[4] = {23,21,121,219} ;
miyakkey 0:d730ea7f5784 128 SocketAddress addr(ip_addr_ipify, 80) ;
miyakkey 0:d730ea7f5784 129 response = socket.connect(addr);
miyakkey 0:d730ea7f5784 130 if(0 != response) {
miyakkey 0:d730ea7f5784 131 pc.printf("Error connecting: %d\n", response);
miyakkey 0:d730ea7f5784 132 socket.close();
miyakkey 0:d730ea7f5784 133 return;
miyakkey 0:d730ea7f5784 134 }
miyakkey 0:d730ea7f5784 135
miyakkey 0:d730ea7f5784 136 // Send a simple http request
miyakkey 0:d730ea7f5784 137 char sbuffer[] = "GET / HTTP/1.1\r\nHost: api.ipify.org\r\nConnection: close\r\n\r\n";
miyakkey 0:d730ea7f5784 138 nsapi_size_t size = strlen(sbuffer);
miyakkey 0:d730ea7f5784 139
miyakkey 0:d730ea7f5784 140 // Loop until whole request send
miyakkey 0:d730ea7f5784 141 while(size) {
miyakkey 0:d730ea7f5784 142 response = socket.send(sbuffer+response, size);
miyakkey 0:d730ea7f5784 143 if (response < 0) {
miyakkey 0:d730ea7f5784 144 pc.printf("Error sending data: %d\n", response);
miyakkey 0:d730ea7f5784 145 socket.close();
miyakkey 0:d730ea7f5784 146 return;
miyakkey 0:d730ea7f5784 147 }
miyakkey 0:d730ea7f5784 148 size -= response;
miyakkey 0:d730ea7f5784 149 pc.printf("sent %d [%.*s]\n", response, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
miyakkey 0:d730ea7f5784 150 }
miyakkey 0:d730ea7f5784 151
miyakkey 0:d730ea7f5784 152 // Receieve a simple http response and print out the response line
miyakkey 0:d730ea7f5784 153 char rbuffer[64];
miyakkey 0:d730ea7f5784 154 response = socket.recv(rbuffer, sizeof rbuffer);
miyakkey 0:d730ea7f5784 155 if (response < 0) {
miyakkey 0:d730ea7f5784 156 pc.printf("Error receiving data: %d\n", response);
miyakkey 0:d730ea7f5784 157 } else {
miyakkey 0:d730ea7f5784 158 pc.printf("recv %d [%.*s]\n", response, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);
miyakkey 0:d730ea7f5784 159 }
miyakkey 0:d730ea7f5784 160
miyakkey 0:d730ea7f5784 161 // Close the socket to return its memory and bring down the network interface
miyakkey 0:d730ea7f5784 162 socket.close();
miyakkey 0:d730ea7f5784 163 }
miyakkey 0:d730ea7f5784 164
miyakkey 0:d730ea7f5784 165 int main() {
miyakkey 0:d730ea7f5784 166 int i, j ;
miyakkey 0:d730ea7f5784 167 for ( i = 0 ; i < 2 ; i++ ){
miyakkey 0:d730ea7f5784 168 for ( j = 0 ; j < 2 ; j++ ){
miyakkey 0:d730ea7f5784 169 mt[i][j].period(0.00002) ;
miyakkey 0:d730ea7f5784 170 }
miyakkey 0:d730ea7f5784 171 }
miyakkey 0:d730ea7f5784 172 t_led.start(thread_led) ;
miyakkey 0:d730ea7f5784 173 //t_serial.start(thread_serial) ;
miyakkey 0:d730ea7f5784 174 pc.printf("Helloworld\r\n") ;
Nyakkey from Desktop 1:6e1c32b423ac 175 pc.printf("WiFi example\r\n");
Nyakkey from Desktop 1:6e1c32b423ac 176
Nyakkey from Desktop 1:6e1c32b423ac 177 wifi = WiFiInterface::get_default_instance();
Nyakkey from Desktop 1:6e1c32b423ac 178 if (!wifi) {
Nyakkey from Desktop 1:6e1c32b423ac 179 pc.printf("ERROR: No WiFiInterface found.\r\n");
Nyakkey from Desktop 1:6e1c32b423ac 180 return -1;
Nyakkey from Desktop 1:6e1c32b423ac 181 }
miyakkey 0:d730ea7f5784 182
miyakkey 0:d730ea7f5784 183 WiFiAccessPoint *ap ;
miyakkey 0:d730ea7f5784 184 pc.printf("Scan:\r\n");
Nyakkey from Desktop 1:6e1c32b423ac 185 int count = wifi->scan(NULL,0);
miyakkey 0:d730ea7f5784 186 pc.printf("scan end, %d access point founded\r\n",count) ;
miyakkey 0:d730ea7f5784 187
miyakkey 0:d730ea7f5784 188 pc.printf("Scan:\r\n");
miyakkey 0:d730ea7f5784 189 ap = new WiFiAccessPoint[count];
Nyakkey from Desktop 1:6e1c32b423ac 190 count = wifi->scan(ap, count);
miyakkey 0:d730ea7f5784 191 for (int i = 0; i < count; i++) {
miyakkey 0:d730ea7f5784 192 pc.printf("Network: %s secured: %s BSSID: %hhX:%hhX:%hhX:%hhx:%hhx:%hhx RSSI: %hhd Ch: %hhd\r\n", ap[i].get_ssid(),
miyakkey 0:d730ea7f5784 193 sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2],
miyakkey 0:d730ea7f5784 194 ap[i].get_bssid()[3], ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel());
miyakkey 0:d730ea7f5784 195 }
miyakkey 0:d730ea7f5784 196 pc.printf("%d networks available.\r\n", count);
miyakkey 0:d730ea7f5784 197
miyakkey 0:d730ea7f5784 198 pc.printf("Connecting...") ;
Nyakkey from Desktop 1:6e1c32b423ac 199 int val = wifi->connect("Buffalo-G-C1B0", "hp43hgw57hhxe", NSAPI_SECURITY_WPA2);
Nyakkey from Desktop 1:6e1c32b423ac 200 //int val = wifi->connect("KOUSUKE-PC_6698", "67eT0013", NSAPI_SECURITY_WPA2) ;
Nyakkey from Desktop 1:6e1c32b423ac 201 if (val != 0) {
Nyakkey from Desktop 1:6e1c32b423ac 202 pc.printf("ERROR: No WiFiInterface found.\r\n");
Nyakkey from Desktop 1:6e1c32b423ac 203 return -1;
Nyakkey from Desktop 1:6e1c32b423ac 204 }
miyakkey 0:d730ea7f5784 205 pc.printf("Connection Result::%d\r\n", val) ;
Nyakkey from Desktop 1:6e1c32b423ac 206 pc.printf("MAC: %s\r\n", wifi->get_mac_address());
Nyakkey from Desktop 1:6e1c32b423ac 207 pc.printf("IP: %s\r\n", wifi->get_ip_address());
Nyakkey from Desktop 1:6e1c32b423ac 208 pc.printf("Netmask: %s\r\n", wifi->get_netmask());
Nyakkey from Desktop 1:6e1c32b423ac 209 pc.printf("Gateway: %s\r\n", wifi->get_gateway());
Nyakkey from Desktop 1:6e1c32b423ac 210 pc.printf("RSSI: %d\r\n\n", wifi->get_rssi());
miyakkey 0:d730ea7f5784 211
Nyakkey from Desktop 1:6e1c32b423ac 212 //wifi.add_dns_server(dns) ;
Nyakkey from Desktop 1:6e1c32b423ac 213 http_demo(wifi) ;
miyakkey 0:d730ea7f5784 214
miyakkey 0:d730ea7f5784 215 pc.printf("Finished\r\n");
miyakkey 0:d730ea7f5784 216
miyakkey 0:d730ea7f5784 217 wait(osWaitForever) ;
Nyakkey from Desktop 1:6e1c32b423ac 218 }