기상청 API 허브로부터 날씨정보 받아오기 (Web Request 프로토콜 활용)
기존 제공해주던 기상청 날씨누리의 RSS 서비스가 3월 중으로 종료될 예정입니다.
이에 따라 기존 RSS 방식이 아닌 기상청 API 허브를 통해 API를 활용해 가져오는 방법을 소개해드립니다.
1. 기상청 날씨 API 분석하기
1) 기상청API허브에 접속한다. (주소 : https://apihub.kma.go.kr/)
2) 왼쪽 메뉴에 있는 “예특보”메뉴 클릭 후 “3. 동네예보 통보문 조회” 항목으로 이동한 뒤 동네예보 지점목록의 [참고자료]를 다운로드한다.
3) 다운로드한 동네예보통보문조회지점목록.xlsx를 실행한 뒤 조회하고자 하는 지역의 예보구역코드를 확인한다.
· 해당 예보구역코드는 이후 X-SCADA AI에서 활용할 예정
4) [API 활용신청] 버튼을 클릭하여 API 인증키를 발급한다. (회원가입 및 로그인 필요)
· 해당 API 인증키는 이후 X-SCADA AI에서 활용할 예정
5) 단기예보 DB테이블에 접속하여 어떤 데이터를 불러와 표현할지 정의한다. (주소 : https://apihub.kma.go.kr/static/html/attach/fct_shrt_table.html)
· 정의한 데이터 테이블은 추후 X-SCADA AI에서 활용할 예정
2. X-SCADA AI에서 기상청 데이터 활용하기
1) X-SCADA AI Designer를 실행한 뒤 이미지와 텍스트, 레이블 등을 활용하여 화면을 작화한다.
2) 왼쪽 장치탐색기(Device Explorer)에서 장치를 추가(New Device)한 뒤 기타 연결 추가(New Other)를 실시한다.
3) 속성(Properties) > 일반(General) > 프로토콜(Protocol)에서 Web Request 프로토콜을 설정한다.
4) 스캔 시간(Scan Time), Http URL 등을 설정한다.
· 스캔 시간 : API에서 조회할 수 있는 횟수가 정해져있기에 제한에 맞춰서 설정
· URL : 1. 항목에서 봤던 예보구역코드와 API키를 적용하여 입력
https://apihub.kma.go.kr/api/typ02/openApi/VilageFcstMsgService/getLandFcst?pageNo=1&numOfRows=50&dataType=XML®Id=[지역명]&authKey=[API키]
5) 왼쪽 태그 탐색기(Tag Explorer)에서 가져오고자 하는 데이터에 대한 태그를 생성 및 설정한다.
· 예시. 기온(wf) 태그 속성(Properties) > 장치 : WebRequest / 장치내주소 : #response/body/items/item/ta
6) 태그 연산식(Expression)을 활용하면 Number 타입으로 값을 받아오는 데이터를 텍스트로 변환하여 표현할 수 있다.
· 예시. 풍속을 나타내는 풍속강도코드(WS_IT)는 값을 1(약간 강), 2(강), 3(매우 강)으로 표현한다.
1이라는 값이 들어왔을 때 연산식을 활용해 “약간 강”이라는 텍스트로 표현하도록 설정할 수 있다.
연산식(Expression) : #{Expression.Raw.raw_wsIt} == 1 ? "약간 강" : (#{Expression.Raw.raw_wsIt} == 2 ? "강" : "매우 강")
7) 추가/설정한 태그들을 객체에 바인딩 태그(Binding Tag)를 설정한다.
8) 설정한 프로젝트를 저장한 뒤 X-SCADA AI Viewer로 실행하여 결과를 확인한다.
9) 첨부한 프로젝트 파일(.xix)을 다운로드하여 더 자세한 설정들을 확인할 수 있다.