라즈베리파이로 슬랙 봇 개발하기

Post on 15-Apr-2017

112 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

임베디드 시스템 설계

201002632 송윤섭

- 개인 비서 만들기 (a.k.a JARVIS) -

목차

1. 시스템 기획2. 개발 과정3. 기능4. 후기 5. Q & A

-2-

시스템 기획

+

개인 비서 만들기 (a.k.a JARVIS)

-3-

예상 시스템 구성도

라즈베리파이메신저 플랫폼온습도센서

카메라

적외선센서초음파센서

시스템 기획

-4-

시스템 기획

개발 경험선행 사례API 문서화인지도예상 개발 난이도

메신저 플랫폼 ?

있음없음 없음보통많음 적음

잘 되어 있음 ( 게다가 한글 !)매우 잘 되어있음 보통Facebook 안쓰는 사람 ?아는 사람 별로 없음 글로벌 메신저

보통쉬움 어려워 보임흥미 이미 해봐서 별로해보고 싶음 나중에

Facebook MessengerSlack LINE

-5-

온습도센서

카메라

완성된 시스템 구성도

python-rtmbot

+

-6-

시스템 기획

개발 과정Slack Bot UserBot User 생성 https://my.slack.com/services/new/bot 접속하고 이름만 적고 버튼 클릭하면 생성됨

-7-

개발 과정Slack Bot UserAPI Token 을 사용해서 Real Time Messaging API 를 사용할 수 있음Token 은 노출되지 않게 조심

더 자세한 가이드는 홈페이지 (https://api.slack.com/bot-users) 에서 -8-

개발 과정python-rtmbot

Jarvis 플러그인

A Slack bot written in Python that connects via the RTM API.Slack 의 Real Time Messaging API 를 편리하게 사용하는 Python 라이브러리자세한 사용법은 Github(https://github.com/slackhq/python-rtmbot) 페이지에 나와있음

-9-

개발중 에러가 발생하면 메세지를 보내 디버깅이 쉬워짐

개발 과정DjangoThe web framework for perfectionists with deadline.Python Full Stack 웹 프레임 워크문서는 공식 홈페이지 (https://www.djangoproject.com/) 에 잘 나와있음장고걸스 튜토리얼 (https://djangogirlsseoul.gitbooks.io/tutorial/content/) 이 한국어로 잘 되어 있음터미널에서 4 줄만 치면 웹 서버가 올라감$ pip install django$ django-admin startproject myproject$ cd myproject$ python manage.py runserver

-10-

개발 과정Django-crontabdead simple crontab powered job scheduling for django (1.8+).역시 Github(https://github.com/kraiz/django-crontab) 에 문서화가 잘 되어있음장고의 ORM 을 그대로 사용할 수 있어서 코드량이 매우 감소함온습도를 1 분 마다 측정해서 DB 에 저장하기 위해 사용

-11-

$ python manage.py crontab add

개발 과정Chart.jsSimple yet flexible JavaScript charting for designers & developersJavascript 차트 라이브러리Chart.js 역시 API 문서 (http://www.chartjs.org/docs/) 가 잘 되어 있어서 참고하면 됨

-12-

개발 과정날씨 크롤러기상청 홈페이지에서 아래 빨간 영역을 가져오는 기능http://www.kma.go.kr/weather/forecast/timeseries.jsp?searchType=INTEREST&dongCode=1159068000URL 을 보면 알수 있듯이 각 동에 해당하는 코드를 넣어서 조회를 할 수 있음동 코드는 행정표준코드관리시스템 (https://www.code.go.kr/jsp/index.jsp) 에서 다운로드하지만 법정동코드와 기상청 동코드가 시 / 구 아래로 내려가면 다른구역이 많음

-13-

개발 과정날씨 크롤러Python 라이브러리인 requests, BeautifulSoup 을 사용함requesets 는 Http 라이브러리BeautifulSoup 은 HTML parsing 라이브러리

-14-

기능기능 목록

-15-

기능온습도

-16-

기능사진 캡쳐

-17-

기능날씨 검색

-18-

기능Todo list

-19-

기능메뉴 추천

-20-

기능홈 화면

-21-

기능온습도 그래프

-22-

기능사진 갤러리

-23-

기능Todo List

-24-

후기

- 문서만 잘 봐도 이미 개발 반은 함- 자연어 처리에 능력이 있었다면 더 고급진 챗봇을 만들수 있었을텐데 그 점이 조금 아쉬움- 라즈베리파이 성능이 생각보다 좋아서 개인 블로그용 서버로 사용해도 좋을것 같음

-25-

Q & A

감사합니다

201002632 송윤섭

- 개인 비서 만들기 (a.k.a JARVIS) -

top related