위즈네트 아카데미

TUTORIAL

튜토리얼

Home  > 튜토리얼

Wireless WizFi250 활용, 날씨 정보 업데이트하기

elisyoon 2014.08.19 00:21 조회 수 : 66

이번 포스팅은 OpenWeatherMap 사이트에서 제공하는 Open API로 특정 도시(Seoul) 의 날씨 정보를 얻어오는 방법을 설명합니다. OpenWeatherMap에서 제공하는 JSON과 XML 예제와 무선 모듈로 위즈네트의 WizFi250을 구동하였습니다.

========================================

먼저, OpenWeatherMap에서 API 관련 내용을 확인한다.

Calls by city name. API respond with a list of results that matchs a searching word.
In JSON : api.openweathermap.org/data/2.5/weather?q=London,uk
In XML : api.openweathermap.org/data/2.5/weather?q=London&mode=xml
http://openweathermap.org/current

그리고, PC에서 위에 설명된 내용으로 JSON과 XML 형식으로 서울의 날씨 데이터를 가져오고, 이 과정에서의 Network Packet을 아래와 같이 캡쳐했다.





위에 붉은색으로 표시된 부분이 PC가 보낸 데이터인데, 불필요한 부분을 제거하고 아래아 같은 데이터를 Request Data로 사용할 예정이다.
여기에서 r(Carriage return, 0x0d), n(Line Feed, 0x0a)등의 정확한 입력과 전송하는 데이터 크기(72 Byte, 81 Byte)에 유의해야 한다. 

weather_wizfi250-1

 

이제, 사전 준비 작업은 끝났고, WizFi250을 실제 구동하여 보겠다. 먼저, AP에 Association을 한다.

weather_wizfi250-2





OpenWeatherMap API 서버의 IP 주소를 가져온다. 

weather_wizfi250-3





OpenWeatherMap API 서버에 접속한다. 

weather_wizfi250-4





OpenWeatherMap API 서버에 JSON Request Data를 보낸다. 

weather_wizfi250-5





그럼, OpenWeatherMap API 서버에서 아래와 같은 JSON Reply를 보내온다. 

weather_wizfi250-6





수신이 완료되고 Connection이 남아 있다면, OpenWeatherMap API 서버와의 연결을 종료한다.

weather_wizfi250-7





자, 이제 위에서 받은 JSON 데이터를 분석하여 원하는 날씨 데이터(서울의 온도, 습도, 바람 등)를 사용하면 된다. 

아래에는 XML로 데이터를 받을 경우의 예제인데, 근본적으로 WizFi250의 운용 형태는 JSON과 비슷하다. 

weather_wizfi250-8