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@0:2039ea1d888a, 2016-11-14 (annotated)
- Committer:
- jehoon
- Date:
- Mon Nov 14 23:28:49 2016 +0000
- Revision:
- 0:2039ea1d888a
- Child:
- 1:7582323a5665
WizFi310 HelloWorld. This is a TCP Client Example.
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) |
jehoon | 0:2039ea1d888a | 24 | Serial pc(USBTX,USBRX); |
jehoon | 0:2039ea1d888a | 25 | WizFi310Interface wifi(PA_11, PA_12, D6, D7, D3, NC, 115200); |
jehoon | 0:2039ea1d888a | 26 | #endif |
jehoon | 0:2039ea1d888a | 27 | |
jehoon | 0:2039ea1d888a | 28 | #define AP_SSID "<AP SSID>" |
jehoon | 0:2039ea1d888a | 29 | #define AP_PASSWORD "<AP Password>" |
jehoon | 0:2039ea1d888a | 30 | #define AP_SECURITY NSAPI_SECURITY_WPA2 |
jehoon | 0:2039ea1d888a | 31 | |
jehoon | 0:2039ea1d888a | 32 | int main() |
jehoon | 0:2039ea1d888a | 33 | { |
jehoon | 0:2039ea1d888a | 34 | pc.baud(115200); |
jehoon | 0:2039ea1d888a | 35 | printf("WizFi310 NetworkSocketAPI TCP Client Example\r\n"); |
jehoon | 0:2039ea1d888a | 36 | |
jehoon | 0:2039ea1d888a | 37 | wifi.connect(AP_SSID, AP_PASSWORD, AP_SECURITY); |
jehoon | 0:2039ea1d888a | 38 | |
jehoon | 0:2039ea1d888a | 39 | const char *ip = wifi.get_ip_address(); |
jehoon | 0:2039ea1d888a | 40 | const char *mac = wifi.get_mac_address(); |
jehoon | 0:2039ea1d888a | 41 | printf("IP address is: %s\r\n", ip ? ip : "No IP"); |
jehoon | 0:2039ea1d888a | 42 | printf("MAC address is: %s\r\n", mac ? mac : "No MAC"); |
jehoon | 0:2039ea1d888a | 43 | |
jehoon | 0:2039ea1d888a | 44 | SocketAddress addr(&wifi, "mbed.org", 80); |
jehoon | 0:2039ea1d888a | 45 | printf("mbed.org resolved to: %s\r\n", addr.get_ip_address()); |
jehoon | 0:2039ea1d888a | 46 | |
jehoon | 0:2039ea1d888a | 47 | TCPSocket socket(&wifi); |
jehoon | 0:2039ea1d888a | 48 | socket.connect("4.ifcfg.me", 23); |
jehoon | 0:2039ea1d888a | 49 | |
jehoon | 0:2039ea1d888a | 50 | char buffer[64]; |
jehoon | 0:2039ea1d888a | 51 | int count = socket.recv(buffer, sizeof buffer); |
jehoon | 0:2039ea1d888a | 52 | printf("public IP address is: %.15s\r\n", &buffer[15]); |
jehoon | 0:2039ea1d888a | 53 | |
jehoon | 0:2039ea1d888a | 54 | socket.close(); |
jehoon | 0:2039ea1d888a | 55 | wifi.disconnect(); |
jehoon | 0:2039ea1d888a | 56 | |
jehoon | 0:2039ea1d888a | 57 | printf("Done\r\n"); |
jehoon | 0:2039ea1d888a | 58 | |
jehoon | 0:2039ea1d888a | 59 | } |