위즈네트 아카데미

OPEN PROJECT

오픈 프로젝트

쉴드체험단 (1기) [체험단 wizfi-shield 04] 날씨정보 얻기

자랑쟁이 2014.12.01 09:01 조회 수 : 49


지난 글에 이어 네번째 글입니다.


날씨정보 얻는데 생각보다 고생을 했는데요.


재작년 초만 해도 구글 날씨정보 api가 있어서 매우 사용하기 편했습니다.
근데 재작년 여름쯤에 구글에서 정말 소리소문없이 날씨정보 제공을 중단해 버렸죠.


그래서 최근 날씨정보 api를 얻을 수 있는 곳을 검색해 봤습니다.


대략 검색해 보면


weatherbug,
accuweather
openweather
기상청
공공데이터 포털
yahoo


이렇게 볼수 있는데, 날씨정보를 상업적으로(혹은 많이) 쓰기 위해서는 일부 유료거나 심지어 oauth를 사용해서 서비스 id를 받아서 써야 하거나... 하는 경우가 많습니다. 기상청의 경우는 RSS로 제공해 주는데, 받아보면 한글로 제공해 줘서 쓰기가 애매 합니다. -_-;;


그래서 좀 검색을 해보니 개발자들이 yahoo weather api를 많이 사용하는것을 알 수 있었습니다. 관련 정보도 좀 많고요. yahoo weather api를 사용하는데 있어서 어려운점은 각 지역의 woeid라는 각 지역별의 id를 사용해야 한다는 점인데, api를 잘 찾아보니 서울의 woeid는 1132599였습니다. 서울의 일일 날씨정보 xml를 얻는 코드는 다음과 같아 집니다.


/forecastrss?w=1132599&u=c


그래서 전체 코드의


셋업에서
myClient =  WizFiClient("xml.weather.yahoo.com", 80);


루프에서
myClient.write((byte *)"GET /forecastrss?w=1132599&u=c HTTP/1.0rnrn");


을 입력해 두면 날씨 정보를 가져오게 됩니다.