WizFi310_DNS_TCP_HelloWorld edited with a new Interface
Dependencies: NetworkSocketAPI WizFi310Interface mbed
Prerequisite
This example shows that Wizwiki-W7500 and WizFi310 connect to a DNS server and get a its ip address. And then, It connects to '4.ifcfg.me' that returns an ip addess as TCP client.
To implement this function, you need a Platform board and Wi-Fi board. Below are what we used.
- WIZwiki-W7500 from WIZnet (Platform board)
- WizFi310 from WIZnet (Wi-Fi board)
Hardware Configuration
WIZwiki-W7500 Pin map
- D0 is for RXD, D1 is for TXD
- D6 is for CTS, D7 is for RTS
- D9 is for RESET
WizFi310 Pin map
- J1 is for RXD, J3 is for TXD
- SW6-1 is connected to D6 for RTS, SW6-2 is connected to D7 for CTS
- SW5-3 is connected to D9 for RESET
Connect to Wi-Fi
wifi.connect(AP_SSID, AP_PASSWORD, AP_SECURITY);
Get information
const char *ip = wifi.get_ip_address(); const char *mac = wifi.get_mac_address();
Access to a 'mbed.org' website and get its ip addess
SocketAddress addr(&wifi, "mbed.org", 80); printf("mbed.org resolved to: %s\r\n", addr.get_ip_address());
Access to a '4.ifcfg.me' as a TCP client and get its ip addess
TCPSocket socket(&wifi); socket.connect("4.ifcfg.me", 23); char buffer[64]; int count = socket.recv(buffer, sizeof buffer); printf("public IP address is: %.15s\r\n", &buffer[15]);
main.cpp@3:bdd94a303289, 2017-04-11 (annotated)
- Committer:
- stkim92
- Date:
- Tue Apr 11 05:25:37 2017 +0000
- Revision:
- 3:bdd94a303289
- Parent:
- 2:ee509025234f
WizFi310_DNS_TCP_HelloWorld edited a new interface
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jehoon | 0:2039ea1d888a | 1 | /* NetworkSocketAPI Example Program |
jehoon | 0:2039ea1d888a | 2 | * Copyright (c) 2015 ARM Limited |
jehoon | 0:2039ea1d888a | 3 | * |
jehoon | 0:2039ea1d888a | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
jehoon | 0:2039ea1d888a | 5 | * you may not use this file except in compliance with the License. |
jehoon | 0:2039ea1d888a | 6 | * You may obtain a copy of the License at |
jehoon | 0:2039ea1d888a | 7 | * |
jehoon | 0:2039ea1d888a | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
jehoon | 0:2039ea1d888a | 9 | * |
jehoon | 0:2039ea1d888a | 10 | * Unless required by applicable law or agreed to in writing, software |
jehoon | 0:2039ea1d888a | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
jehoon | 0:2039ea1d888a | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
jehoon | 0:2039ea1d888a | 13 | * See the License for the specific language governing permissions and |
jehoon | 0:2039ea1d888a | 14 | * limitations under the License. |
jehoon | 0:2039ea1d888a | 15 | */ |
jehoon | 0:2039ea1d888a | 16 | |
jehoon | 0:2039ea1d888a | 17 | #include "mbed.h" |
jehoon | 0:2039ea1d888a | 18 | #include "TCPSocket.h" |
jehoon | 0:2039ea1d888a | 19 | #include "mbed.h" |
jehoon | 0:2039ea1d888a | 20 | #include "WizFi310Interface.h" |
jehoon | 0:2039ea1d888a | 21 | #include "TCPSocket.h" |
jehoon | 0:2039ea1d888a | 22 | |
jehoon | 0:2039ea1d888a | 23 | #if defined(TARGET_NUCLEO_F411RE) |
stkim92 | 1:7582323a5665 | 24 | Serial pc(USBTX, USBRX); |
stkim92 | 1:7582323a5665 | 25 | WizFi310Internet wifi(PA_11, PA_12, D6, D7, D3, NC, 115200); |
stkim92 | 1:7582323a5665 | 26 | #endif |
stkim92 | 1:7582323a5665 | 27 | |
stkim92 | 2:ee509025234f | 28 | #if defined(TARGET_WIZwiki_W7500) |
stkim92 | 1:7582323a5665 | 29 | Serial pc(USBTX, USBRX); |
stkim92 | 3:bdd94a303289 | 30 | WizFi310Interface wifi(D1, D0, D7, D6, D9, NC, 115200); |
jehoon | 0:2039ea1d888a | 31 | #endif |
jehoon | 0:2039ea1d888a | 32 | |
stkim92 | 3:bdd94a303289 | 33 | #define AP_SSID "wizms1" |
stkim92 | 3:bdd94a303289 | 34 | #define AP_PASSWORD "maker0701" |
jehoon | 0:2039ea1d888a | 35 | #define AP_SECURITY NSAPI_SECURITY_WPA2 |
jehoon | 0:2039ea1d888a | 36 | |
jehoon | 0:2039ea1d888a | 37 | int main() |
jehoon | 0:2039ea1d888a | 38 | { |
jehoon | 0:2039ea1d888a | 39 | pc.baud(115200); |
jehoon | 0:2039ea1d888a | 40 | printf("WizFi310 NetworkSocketAPI TCP Client Example\r\n"); |
jehoon | 0:2039ea1d888a | 41 | |
jehoon | 0:2039ea1d888a | 42 | wifi.connect(AP_SSID, AP_PASSWORD, AP_SECURITY); |
jehoon | 0:2039ea1d888a | 43 | |
jehoon | 0:2039ea1d888a | 44 | const char *ip = wifi.get_ip_address(); |
jehoon | 0:2039ea1d888a | 45 | const char *mac = wifi.get_mac_address(); |
jehoon | 0:2039ea1d888a | 46 | printf("IP address is: %s\r\n", ip ? ip : "No IP"); |
jehoon | 0:2039ea1d888a | 47 | printf("MAC address is: %s\r\n", mac ? mac : "No MAC"); |
jehoon | 0:2039ea1d888a | 48 | |
jehoon | 0:2039ea1d888a | 49 | SocketAddress addr(&wifi, "mbed.org", 80); |
jehoon | 0:2039ea1d888a | 50 | printf("mbed.org resolved to: %s\r\n", addr.get_ip_address()); |
jehoon | 0:2039ea1d888a | 51 | |
jehoon | 0:2039ea1d888a | 52 | TCPSocket socket(&wifi); |
jehoon | 0:2039ea1d888a | 53 | socket.connect("4.ifcfg.me", 23); |
jehoon | 0:2039ea1d888a | 54 | |
jehoon | 0:2039ea1d888a | 55 | char buffer[64]; |
jehoon | 0:2039ea1d888a | 56 | int count = socket.recv(buffer, sizeof buffer); |
jehoon | 0:2039ea1d888a | 57 | printf("public IP address is: %.15s\r\n", &buffer[15]); |
jehoon | 0:2039ea1d888a | 58 | |
jehoon | 0:2039ea1d888a | 59 | socket.close(); |
jehoon | 0:2039ea1d888a | 60 | wifi.disconnect(); |
jehoon | 0:2039ea1d888a | 61 | |
jehoon | 0:2039ea1d888a | 62 | printf("Done\r\n"); |
jehoon | 0:2039ea1d888a | 63 | |
jehoon | 0:2039ea1d888a | 64 | } |