frrrr
Dependencies: Adafruit_GFX WIZnetInterface mbed
Revision 0:31d9b8b81e7f, committed 2018-04-30
- Comitter:
- wiznetw7500
- Date:
- Mon Apr 30 04:55:26 2018 +0000
- Commit message:
- f
Changed in this revision
diff -r 000000000000 -r 31d9b8b81e7f Adafruit_GFX.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Adafruit_GFX.lib Mon Apr 30 04:55:26 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/nkhorman/code/Adafruit_GFX/#7fb1d4d3525d
diff -r 000000000000 -r 31d9b8b81e7f WIZnetInterface.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIZnetInterface.lib Mon Apr 30 04:55:26 2018 +0000 @@ -0,0 +1,1 @@ +http://os.mbed.com/teams/WIZnet/code/WIZnetInterface/#c91884bd2713
diff -r 000000000000 -r 31d9b8b81e7f main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Apr 30 04:55:26 2018 +0000 @@ -0,0 +1,142 @@ +#include "mbed.h" +#include "EthernetInterface.h" +#include "Adafruit_SSD1306.h" + + + +#if defined(TARGET_WIZWIKI_W7500)||defined(TARGET_WIZWIKI_W7500P) + uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x53, 0xAE, 0x90}; +#endif +// W7500 onboard LED & Init +DigitalOut rled(LED1,1); +DigitalOut gled(LED2,0); +DigitalOut bled(LED3,1); + +// I2C Class +I2C i2c(PA_10,PA_9); + +// OLED Class +Adafruit_SSD1306_I2c gOled(i2c,NC,0x78,64,128); + + +EthernetInterface eth; + +// Declare TCP Connection Class +TCPSocketConnection sock; + +DigitalOut myled(D1); + + + +int main() { + + + + int phy_link; + printf("Wait a second...\r\n"); + + eth.init(mac_addr); //Use DHCP + +printf("Check Ethernet Link\r\n"); + /*while(1) //Wait link up + { + if(eth.link() == true) + break; + }*/ + printf("Link up\r\n"); + + eth.connect(); + + printf("IP Address is %s\r\n\r\n", eth.getIPAddress()); + printf("MASK Address is %s\r\n\r\n", eth.getNetworkMask()); + printf("GATEWAY Address is %s\r\n\r\n", eth.getGateway()); + printf("MAC Address is %s\r\n\r\n", eth.getMACAddress()); + while(1){ + // TCP socket connect to openweather server + //TCPSocketConnection sock; + sock.connect("api.openweathermap.org", 80); + + + // GET method, to request weather forecast + char http_cmd[] = "GET /data/2.5/weather?q=Seoul,kr&appid=a0ca47dd7f6066404629b3e1ad728981 HTTP/1.0\n\n"; + + + sock.send_all(http_cmd, sizeof(http_cmd)-1); + + // get data into buffer + char buffer[2048]; + int ret; + while (true) { + ret = sock.receive(buffer, sizeof(buffer)-1); + if (ret <= 0) + break; + buffer[ret] = '\0'; + printf("Received %d chars from server: %s\n", ret, buffer); + } + printf("\r\n\r\n"); + + // parsing current date, weather, city, tempurature + char *date; + char *weather; + char *city; + char *temper; + + char cur_date[17] = {0}; + char weather_con[15] = {0}; + char city_name[10] = {0}; + char temper_data[3] = {0}; + + int temp; + int num100, num10, num1; + + //parding date + date = strstr(buffer, "Date"); + for(int x=0;x<17;x++){ + cur_date[x] = date[x+6]; + } + + // parsing weather condition + weather = strstr(buffer, "main"); + for(int i=0; i<15;i++){ + weather_con[i] = weather[i+7]; + if(weather_con[i] == 34){ + weather_con[i] = 0; + break; + } + } + + + + // parsing city name + city = strstr(buffer, "name"); + for(int j=0; j<10;j++){ + city_name[j] = city[j+7]; + if(city_name[j] == 34){ + city_name[j] = 0; + break; + } + } + + //parsing current tempurature + temper = strstr(buffer, "temp"); + for(int k=0; k<3;k++){ + temper_data[k] = temper[k+6]; + } + + //kelvin to celius converter + num100 = temper_data[0]- 48; + num10 = temper_data[1] - 48; + num1 = temper_data[2]- 48; + temp = (num100*100 + num10*10 + num1) - 273; + + // Debug message + printf("city name : %s\r\n", city_name); + printf("weather : %s\r\n", weather_con); + printf("temperature : %d\r\n\r\n", temp); + + + } + + + +}
diff -r 000000000000 -r 31d9b8b81e7f mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Apr 30 04:55:26 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/994bdf8177cb \ No newline at end of file