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
main.cpp@2:b63f21ff9817, 2015-04-29 (annotated)
- 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?
User | Revision | Line number | New 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 | } |