DIY - 2019/Grow UP(Smart LED)

공공 API를 활용한 날씨, 온도 그리고 대기질 정보 가져오기 - 중

알렉스윤 2019. 2. 28. 00:23
  • 대기오염정보 가져오기

airkorea_openapi_guide-v1_6_1.docx 문서를 참고하면, 아래 4가지의 정보를 얻을 수 있다.

각가의 정보는 API + 지원 서비스 + 위치 + 서비스 키를 이용해서 얻을 수 있다.

대기오염정보는 아래 2번 항목에 해당한다.

1.  서비스 목록

순번

서비스 ID

서비스명(국문)

서비스명(영문)

1

SC-OA-09-01

측정소정보 조회 서비스

MsrstnInfoInqireSvc

2

SC-OA-09-02

대기오염정보 조회 서비스

ArpltnInforInqireSvc

3

SC-OA-09-03

대기오염통계 서비스

ArpltnStatsSvc

4

SC-OA-09-04

오존황사 발생정보조회 서비스

OzYlwsndOccrrncInforInqireSvc


대기오염정보중 세부항목을 선택해서 정보를 얻을 수 있다. 내가 필요한 정보는 미세먼지와 초미세먼지임으로 1번 측정소별 실시간 측정정보를 조회하도록 하겠다.

나. 오퍼레이션 목록

일련번호

서비스명(국문)

오퍼레이션명(영문)

오퍼레이션명(국문)

메시지명(영문)

1

대기오염 정보조회 서비스

getMsrstnAcctoRltmMesureDnsty

측정소별 실시간 측정정보 조회

N/A

2

getUnityAirEnvrnIdexSnstiveAboveMsrstnList

통합대기환경지수 나쁨 이상 측정소 목록조회

N/A

3

getCtprvnRltmMesureDnsty

시도별 실시간 측정정보 조회

N/A

4

getMinuDustFrcstDspth

미세먼지/오존 예보통보 조회

N/A

5

getCtprvnMesureLIst

시도별 실시간 평균정보 조회

N/A

6

getCtprvnMesureSidoLIst

시군구별 실시간 평균정보 조회

N/A











예제



내가 살고 있는 곳과 가장 가까운 동구동 측정소의 대기오염정보는 다음과 같다.

이중 미세먼지(PM10-보통)와 초미세먼지(PM25-나쁨) 값과 등급을 알 수 있다.

<response>

<header>
<resultCode>00</resultCode>
<resultMsg>NORMAL SERVICE.</resultMsg>
</header>
<body>
<items>
<item>
<dataTime>2019-02-27 23:00</dataTime>
<mangName>도시대기</mangName>
<so2Value>0.005</so2Value>
<coValue>0.6</coValue>
<o3Value>0.007</o3Value>
<no2Value>0.058</no2Value>
<pm10Value>78</pm10Value> ==> 미세먼지
<pm10Value24>64</pm10Value24>
<pm25Value>57</pm25Value> ==> 초미세먼지
<pm25Value24>43</pm25Value24>
<khaiValue>128</khaiValue>
<khaiGrade>3</khaiGrade>
<so2Grade>1</so2Grade>
<coGrade>1</coGrade>
<o3Grade>1</o3Grade>
<no2Grade>2</no2Grade>
<pm10Grade>2</pm10Grade> ==> 보통
<pm25Grade>3</pm25Grade> ==> 나쁨
<pm10Grade1h>2</pm10Grade1h>
<pm25Grade1h>3</pm25Grade1h>
</item>
</items>
<numOfRows>1</numOfRows>
<pageNo>1</pageNo>
<totalCount>22</totalCount>
</body>
</response>


API를 통해서 얻은 값과 날씨퐁 어플에서 값이 일치함을 확인 할 수 있다.



응답 메시지 명세

항목명(영문)

항목명(국문)

항목크기

항목구분

샘플데이터

항목설명

resultCode

결과코드

2

1

00

결과코드

resultMsg

결과메세지

50

1

Normal service

결과메세지

numOfRows

한 페이지 결과 수

4

1

10

한 페이지 결과 수

pageNo

페이지 번호

4

1

1

페이지 번호

totalCount

전체 결과 수

4

1

60

전체 결과 수

items

목록

-

0..n

-

목록

 

dataTime

측정일

20

1

2016-04-20 14:00

오염도 측정 연--

시간:

 

mangName

측정망 정보

10

1

도시대기

측정망 정보

(국가배경, 교외대기, 도시대기, 도로변대기)

 

so2Value

아황산가스 농도

10

1

0.007

아황산가스 농도

(단위 : ppm)

 

coValue

일산화탄소 농도

10

1

0.4

일산화탄소 농도

(단위 : ppm)

 

o3Value

오존 농도

10

1

0.043

오존 농도

(단위 : ppm)

 

no2Value

이산화질소 농도

10

1

0.024

이산화질소 농도

(단위 : ppm)

 

pm10Value

미세먼지(PM10) 농도

10

1

73

미세먼지(PM10) 농도 (단위 : /)

 

pm10Value24

미세먼지(PM10)

24시간예측이동농도

10

1

55

미세먼지(PM10)

24시간예측이동농도

(단위 : /)

 

pm25Value

미세먼지(PM2.5) 농도

10

1

44

미세먼지(PM2.5)  농도

(단위 : /)

 

pm25Value24

미세먼지(PM2.5)

24시간예측이동농도

10

1

31

미세먼지(PM2.5)  

24시간예측이동농도

(단위 : /)

 

khaiValue

통합대기환경수치

10

1

75

통합대기환경수치

 

khaiGrade

통합대기환경지수

10

1

2

통합대기환경지수

 

so2Grade

아황산가스 지수

10

1

1

아황산가스 지수

 

coGrade

일산화탄소 지수

10

1

1

일산화탄소 지수

 

o3Grade

오존 지수

10

1

2

오존 지수

 

no2Grade

이산화질소 지수

10

1

1

이산화질소 지수

 

pm10Grade

미세먼지(PM10)

24시간 등급

10

1

2

미세먼지(PM10)

24시간 등급자료

 

pm25Grade

미세먼지(PM2.5)

24시간 등급

10

1

2

미세먼지(PM2.5)

24시간 등급자료

 

pm10Grade1h

미세먼지(PM10)

1시간 등급

10

1

2

미세먼지(PM10)

1시간 등급자료

 

pm25Grade1h

미세먼지(PM2.5)

1시간 등급

10

1

2

미세먼지(PM2.5)

1시간 등급자료


등급

좋음

보통

나쁨

매우나쁨

Grade

1

2

3

4



일단, Nodemcu를 통해서 값을 얻어오는데 성공했고, 그 값중 PM10과 PM25를 파싱하는 것까지 성공했다.

작성하는 중 발표 시간이 변경되어 값이 일치하진 않는다. ^^



데이터 갱신주기

- 실시간 정보 : 10(매 시간 시간자료 갱신은 20분 전후로 반영됨)

- 대기질 예보 정보 : 매 시간 22, 57


다음에는 동네 온도, 습도, 날씨, 날씨 예보등의 정보를 가져와보도록 하겠다.

'DIY - 2019 > Grow UP(Smart LED)' 카테고리의 다른 글

GUI 구성  (3) 2019.03.15
Icon과 날씨 정보 얻기  (0) 2019.03.10
공공 API를 활용한 날씨, 온도 그리고 대기질 정보 가져오기 - 상  (0) 2019.02.25
설치  (0) 2019.02.16
가조립 완료  (0) 2019.02.16