Upload
yunseop-song
View
112
Download
2
Embed Size (px)
Citation preview
임베디드 시스템 설계
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) -