HTTP client example using W5500 ethernet kit for IoT. Get weather information of Seoul, South Korea.

Dependencies:   HTTPClient WIZnet_Library mbed

Fork of CurrentWeatherData_W5500 by W5500-Ethernet-Interface Makers

Committer:
bangbh
Date:
Wed Apr 29 23:50:41 2015 +0000
Revision:
2:b63f21ff9817
Parent:
0:a0431fb6c6e0
HTTP client example using W5500 Ethernet kit for IoT.; Get weather information of Seoul, Korea.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kaizen 0:a0431fb6c6e0 1 #include "mbed.h"
bangbh 2:b63f21ff9817 2 #include "WIZnetInterface.h"
kaizen 0:a0431fb6c6e0 3 #include "HTTPClient.h"
kaizen 0:a0431fb6c6e0 4
bangbh 2:b63f21ff9817 5 #define USE_DHCP 0
bangbh 2:b63f21ff9817 6
bangbh 2:b63f21ff9817 7 #define LOOPBACKPORT 5000
bangbh 2:b63f21ff9817 8
bangbh 2:b63f21ff9817 9 const char * IP_Addr = "222.98.173.212";
bangbh 2:b63f21ff9817 10 const char * IP_Subnet = "255.255.255.192";
bangbh 2:b63f21ff9817 11 const char * IP_Gateway = "222.98.173.254";
bangbh 2:b63f21ff9817 12 unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x12,0x34,0x56};
bangbh 2:b63f21ff9817 13
bangbh 2:b63f21ff9817 14 Serial pc(USBTX, USBRX);
bangbh 2:b63f21ff9817 15
bangbh 2:b63f21ff9817 16 #ifdef TARGET_LPC11U68
bangbh 2:b63f21ff9817 17 SPI spi(P0_9,P0_8,P1_29);
bangbh 2:b63f21ff9817 18 WIZnetInterface ethernet(&spi,P0_2,P1_13);
bangbh 2:b63f21ff9817 19 #endif
bangbh 2:b63f21ff9817 20
kaizen 0:a0431fb6c6e0 21 int main() {
kaizen 0:a0431fb6c6e0 22 // EthernetInterface eth;
kaizen 0:a0431fb6c6e0 23 // change for W5500 interface.
kaizen 0:a0431fb6c6e0 24
bangbh 2:b63f21ff9817 25 mbed_mac_address((char *)MAC_Addr); //Use mbed mac addres
kaizen 0:a0431fb6c6e0 26 pc.baud(115200);
bangbh 2:b63f21ff9817 27
bangbh 2:b63f21ff9817 28 #if USE_DHCP
bangbh 2:b63f21ff9817 29 int ret = ethernet.init(MAC_Addr);
bangbh 2:b63f21ff9817 30 #else
bangbh 2:b63f21ff9817 31 int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway);
bangbh 2:b63f21ff9817 32 #endif
bangbh 2:b63f21ff9817 33 if (!ret) {
bangbh 2:b63f21ff9817 34 pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress());
bangbh 2:b63f21ff9817 35 ret = ethernet.connect();
bangbh 2:b63f21ff9817 36 if (!ret) {
bangbh 2:b63f21ff9817 37 pc.printf("IP: %s, MASK: %s, GW: %s\r\n",
bangbh 2:b63f21ff9817 38 ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway());
bangbh 2:b63f21ff9817 39 } else {
bangbh 2:b63f21ff9817 40 pc.printf("Error ethernet.connect() - ret = %d\r\n", ret);
bangbh 2:b63f21ff9817 41 exit(0);
bangbh 2:b63f21ff9817 42 }
bangbh 2:b63f21ff9817 43 } else {
bangbh 2:b63f21ff9817 44 pc.printf("Error ethernet.init() - ret = %d\r\n", ret);
bangbh 2:b63f21ff9817 45 exit(0);
bangbh 2:b63f21ff9817 46 }
kaizen 0:a0431fb6c6e0 47
kaizen 0:a0431fb6c6e0 48 char str[512];
kaizen 0:a0431fb6c6e0 49 char get_msg[512]= "http://api.openweathermap.org/data/2.5/weather?q=Seoul";
kaizen 0:a0431fb6c6e0 50 HTTPClient http;
kaizen 0:a0431fb6c6e0 51
bangbh 2:b63f21ff9817 52 pc.printf("Send get Message to openeathermap.org\r\n");
bangbh 2:b63f21ff9817 53 pc.printf("msg : %s\r\n",get_msg);
bangbh 2:b63f21ff9817 54 ret = http.get(get_msg, str, sizeof(str));
kaizen 0:a0431fb6c6e0 55 if(!ret)
kaizen 0:a0431fb6c6e0 56 {
bangbh 2:b63f21ff9817 57 pc.printf("\r\nPage fetched successfully - read %d characters\r\n", strlen(str));
bangbh 2:b63f21ff9817 58 pc.printf("Result: %s\r\n", str);
kaizen 0:a0431fb6c6e0 59 }
kaizen 0:a0431fb6c6e0 60 else
kaizen 0:a0431fb6c6e0 61 {
bangbh 2:b63f21ff9817 62 pc.printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
kaizen 0:a0431fb6c6e0 63 }
kaizen 0:a0431fb6c6e0 64
kaizen 0:a0431fb6c6e0 65 }