상세 컨텐츠

본문 제목

미세먼지 자동 확인 시스템: 내 캘린더에 표시되는 똑똑한 생활 정보

공공데이터

by contributor-news1 2025. 7. 2. 08:10

본문

현대인의 일상에서 '공기 질'은 건강을 좌우하는 중요한 요소가 되었습니다. 특히 미세먼지 수치가 높아지는 계절에는 외출 여부나 운동 시간, 창문 여닫는 시간까지 미세먼지 상태에 따라 결정되는 일이 많습니다. 그러나 매번 별도의 앱을 열고 수치를 확인하거나 알림을 기다리는 과정은 번거롭습니다.

 

미세먼지 자동 확인 시스템
빅데이터를 활용한 미세먼지 자동확인 시스템

 

필자는 이러한 문제를 해결하기 위해 공공데이터포털에서 제공하는 미세먼지 API를 활용하여, 매일의 미세먼지 정보를 자동으로 수집하고 구글 캘린더에 자동 등록하는 시스템을 만들었습니다. 이 글은 미세먼지 확인 과정을 완전히 자동화하는 실용적 방법을 소개하며, 누구나 따라할 수 있는 형태로 구성되어 있습니다.

사용된 공공데이터 정보

**공공데이터포털(data.go.kr)**에서는 ‘에어코리아’와 연계된 실시간 대기오염 정보 API를 무료로 제공합니다. 이 API는 다음과 같은 요소를 제공합니다:

  • 미세먼지(PM10), 초미세먼지(PM2.5) 수치
  • 통합대기환경지수(CAI)
  • 측정 시간 및 지역 정보
  • 공공 API KEY 발급 후 REST 방식으로 호출 가능

목표 시스템 구조

이 자동화 시스템은 다음과 같은 구조로 동작합니다:

  1. 매일 아침 6시: 대기오염 정보 API를 호출하여 오늘의 PM10 수치를 확인
  2. 수치가 ‘나쁨’ 이상일 경우, 구글 캘린더에 “🔴 미세먼지 주의”라는 제목으로 일정을 자동 등록
  3. 수치가 ‘보통’ 이하일 경우, “🟢 공기질 양호 – 야외 활동 적합” 일정 등록

 

코드 구현 예시 (Python + Google Calendar API 사용)

 

1단계: 미세먼지 API 호출 (지역: 서울시 강남구 예시)

 

import requests

service_key = '발급받은_API_키'
url = 'http://apis.data.go.kr/B552584/ArpltnInforInqireSvc/getCtprvnRltmMesureDnsty'

params = {
    'serviceKey': service_key,
    'returnType': 'json',
    'sidoName': '서울',
    'ver': '1.0'
}

res = requests.get(url, params=params)
data = res.json()
items = data['response']['body']['items']

# 강남구 데이터만 필터링
dust_info = next((item for item in items if item['stationName'] == '강남구'), None)
pm10 = int(dust_info['pm10Value'])

 

2단계: 구글 캘린더 일정 자동 등록

from google.oauth2 import service_account
from googleapiclient.discovery import build
import datetime

SCOPES = ['https://www.googleapis.com/auth/calendar']
SERVICE_ACCOUNT_FILE = 'credentials.json'

credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('calendar', 'v3', credentials=credentials)

today = datetime.date.today().isoformat()
summary = "🟢 공기질 양호 – 야외 활동 적합" if pm10 <= 50 else "🔴 미세먼지 주의 – 실내 활동 권장"

event = {
    'summary': summary,
    'start': {'date': today, 'timeZone': 'Asia/Seoul'},
    'end': {'date': today, 'timeZone': 'Asia/Seoul'},
}

service.events().insert(calendarId='primary', body=event).execute()

 

실제 활용 효과

이 시스템을 활용하면 매일 아침 스마트폰의 캘린더 앱을 열기만 해도 오늘 공기질 상태를 확인할 수 있습니다.
알림 대신 일정으로 등록되므로 앱 알림을 꺼놓은 사용자에게도 자연스럽게 전달됩니다.

또한, 아이나 반려동물이 있는 가정에서는 외출을 하거나 야외 활동 계획을 세울 때 큰 도움이 될 수 있을것입니다.

추가 확장 아이디어

  • 위치 기반 자동화: 현재 위치의 GPS 좌표를 기반으로 자동 측정소 선택
  • 주간 트렌드 그래프: 7일간의 PM10 수치를 자동 시각화해서 메일 발송
  • SMS 알림 연동: 가족 구성원에게 문자로 전달 (Twilio API 등 사용)

 

 

공공데이터는 일상생활을 편리하게 만드는 중요한 자원입니다.

특히 미세먼지 정보처럼 건강과 직결되는 데이터를 자동으로 수집하고 시각적으로 정리해주는 시스템은 정보의 유용성, 기술적 실현 가능성, 실생활 밀착성이라는 세 요소를 고루 갖추고 있습니다.

당신도 오늘부터 직접 활용 가능한 공공데이터 자동화 시스템을 만들어보세요.

관련글 더보기