Using TCP Client on WIZwiki-W7500, display weather conditions on led and temperature with servo-motor
Dependencies: WIZnetInterface mbed-src
Prerequisite
This example is for PIR test using digital I/O.
To implement this function, you need a Platform board, network Interface board.
- WIZwiki-W7500 from WIZnet (Platform board and Ethernet I/F board)
Hardware Configuration
WIZwiki-W7500 Pin map

Just connect Ethernet Cable & USB Cable
Software
Init Ethernet
void initEthernet(uint8_t* mac_addr) {
int phy_link;
eth.init(mac_addr); //Use DHCP
eth.connect();
/* phy link */
do{
phy_link = eth.ethernet_link();
printf(".");
wait(2);
}while(!phy_link);
printf("\r\n");
printf("IP Address is %s\r\n", eth.getIPAddress());
}
Request to server using HTTP
void requestHTTP(void)
{
char req_buf[256];
/* TCP socket connect */
sock.connect(WEB_SERVER, 80);
/* Request to WEB Server using HTTP */
sprintf(req_buf,"GET /data/2.5/weather?q=%s,%s&appid=%s HTTP/1.1\nHost: %s\nConnection: close\n\n",
CITY,COUNTRY, API_KEY, WEB_SERVER);
sock.send_all(req_buf, strlen(req_buf));
}
Get data from server & Parsing it
void parsingGetData(void)
{
char buffer[1024];
/* get info */
int ret;
while (true) {
ret = sock.receive_all(buffer, sizeof(buffer)-1);
if (ret <= 0) break;
buffer[ret] = '\0';
pc.printf("Received %d chars from server: %s\n", ret, buffer);
}
/* parsing weather, city, tempurature */
char *weather;
char *city;
char *temp;
uint8_t i;
pc.printf("\r\n\r\n======== WeatherForecast ========\r\n");
weather = strstr(buffer, "main");
pc.printf("\t State : ");
for(i = 7; i < 20; i++)
{
if(*(weather+i) == '\"') break;
pc.printf("%c", *(weather+i));
}
city = strstr(buffer, "name");
pc.printf("\r\n\t City : ");
for(i = 7; i < 20; i++)
{
if(*(city+i) == '\"') break;
pc.printf("%c", *(city+i));
}
temp = strstr(buffer, "temp");
pc.printf("\r\n\t temp(kelvin) : ");
for(i = 6; i < 12; i++)
{
if((*(temp+i) == '\"')||(*(temp+i) == ',')) break;
pc.printf("%c", *(temp+i));
}
pc.printf("\r\n\r\n");
}
Caution
Must fix API_KEY & MAC Address
Revision 4:dfdcadcd0ff1, committed 2012-07-15
- Comitter:
- donatien
- Date:
- Sun Jul 15 19:45:47 2012 +0000
- Parent:
- 3:46a2ada58e97
- Child:
- 5:01f6c3e112af
- Commit message:
- Updated Ethernetinterface Library
Changed in this revision
| EthernetInterface.lib | Show annotated file Show diff for this revision Revisions of this file |
--- a/EthernetInterface.lib Tue Jul 03 13:20:43 2012 +0000 +++ b/EthernetInterface.lib Sun Jul 15 19:45:47 2012 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/EthernetInterface/#8d1c7a87c17b +http://mbed.org/users/mbed_official/code/EthernetInterface/#88d1f5a68c61