ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 라즈베리파이와 챗봇으로 날씨 예보를 해보자 #1
    삽질기/라즈베리파이 2019. 9. 17. 13:06

    꾸준히 포스팅한다는 것이 이렇게 힘든 일일 줄이야. 물론 개학을 하면서 많은 일들이 겹치고 포스팅이 뒷전으로 밀려난 것이지만 이 또한 핑계라고 생각하면 핑계이다. 꾸준히 포스팅을 해나가는 여러 블로거님들이 존경스러울 정도이다.

     

    학교에서 AI 스피커를 활용한 프로젝트를 진행했었는데 라즈베리파이에 서버를 구축해봤다. AWS 같은 좋은 서비스가 있지만 상용이 아닌 학교 프로젝트용으로, "환경 변수 꼬이면 OS 다시 밀지 뭐" 할 수 있는 전체 하드웨어 관리의 용이함(?) 덕분에 학습용으로는 쓸만한 성능과 조건이었다. 어떻게 활용했는지는 나중에, 다른 포스팅에서 다루도록 하겠다.

     


     

    이번 포스팅에서는 여름 방학 동안에 진행했던, 라즈베리파이를 설정한 직후에 한 삽질인 날씨 예보 챗봇을 만든 이야기를 먼저 해볼까 한다. 학교에서 가상화폐 환율 정보를 받아와 텔레그램 챗봇으로 1분마다 전송하는 과제를 진행한 적이 있었는데 이를 좀만 바꾸면 별도의 앱 제작 없이도 날씨와 같은 유용한 정보를 일정 시간마다 받아볼 수 있겠구나 했다. 그러니 만약 이를 활용하고자 하는 분이시라면 날씨 말고도 다른 정보들을 활용하여 온갖 재밌는 것들을 만들어보시면 좋겠다.

     

    오늘의 삽질을 간단히 정리하자면, 공공데이터포털에서 동네예보 데이터를 JSON으로 받아서 Python을 통해 챗봇으로 텔레그램 메시지를 발신하는 프로그램이다. 이번 포스팅에서는 공공데이터포털에서 데이터 사용 허가 신청과 miniconda를 활용한 가상환경 구축을 통해 개발에 필요한 기반을 세워보도록 하자.

     

    오늘 사용할 api인 '기상청 날씨예보 정보'이다. 활용신청을 클릭하면 된다.

     

    https://www.data.go.kr/dataset/15000099/openapi.do(공공데이터포털 해당 api 페이지)로 접속하여 데이터 사용 허가를 받는다. 신청서 작성은 복잡하지 않고 간단하며 허가 여부 결과도 빠르게 나오는 편이다. 모두가 퇴근했을 저녁시간이나 밤에 신청했는데도 허가를 내주는 것을 보면 개인적인 용도로 사용하는 경우엔 자동으로 허가가 진행되는 듯 하다.

    승인된 후 마이페이지에서 api를 찾아 클릭한 후 실행 버튼을 누르면 어떤식으로 데이터가 오는지 미리볼 수 있다.

     

    이제 위 사진에서 요구하는 변수들로 url을 완성하고 데이터를 받아오는 프로그램을 짠 후 테스트를 해보면 된다. 필자는 3.6.1 버전을 사용하며 앞으로의 모든 코드는 Python 3.x 이상의 버전에서 구동된다. 설치는 다음 명령을 통해 간편하게 할 수 있다.

    sudo apt-get install python3

     Python을 설치한 후 코드를 짜기 전에 먼저 miniconda를 설치할 것이다.

     

    미니콘다 다운로드 페이지. 라즈베리파이를 사용하므로 armv7용 버전을 받는다.

    miniconda는 Python 기반의 가상환경 관리자와 패키지 관리자를 제공하는데 anaconda의 저성능 컴퓨터 용이라고 생각하면 쉽다. 필자는 앞으로 다른 Python 프로젝트를 할 때 다른 프로젝트와 모듈을 혼동하지 않기 위해 사용하고자 한다.

     

     다운로드 페이지(https://repo.continuum.io/miniconda/)에 접속하여 [Miniconda-3.16.0-Linux-armv7l.sh] 버전을 받는다. 혹은 간단하게 wget을 이용한다.

    wget https://repo.continuum.io/miniconda/Miniconda-latest-Linux-armv7l.sh

    받았다면 bash 명령어를 통해 실행해준다.

    /bin/bash Miniconda-latest-Linux-armv7l.sh

    설치가 완료되었다면 가상환경을 생성하고 실행한다. 명령은 다음과 같다.

    conda create --name [설정할 환경 이름]
    source activate [설정한 환경 이름]

    Chatbot이란 이름의 가상환경을 실행한 모습.

     


     

    이로써 개발을 위한 기본적인 환경 설정은 끝이 났다. 다음 포스팅에서는 REST API를 활용하는 방법과 코딩을 진행할 것이다. 공공데이터포털에는 기상정보 뿐 아니라 다양한 정보를 개방하고 있으니 구경하다가 재밌는 게 있으면 응용해도 좋을 것 같다.

    댓글

Designed by Tistory.