SlideShare uma empresa Scribd logo
1 de 27
임베디드 시스템 설계
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 User
Bot User 생성
https://my.slack.com/services/new/bot 접속하고 이름만 적고 버튼 클릭하면 생성됨
-7-
개발 과정Slack Bot User
API 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-
개발중 에러가 발생하면 메세지를 보내 디버깅이 쉬워짐
개발 과정Django
The 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-crontab
dead 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.js
Simple yet flexible JavaScript charting for designers & developers
Javascript 차트 라이브러리
Chart.js 역시 API 문서(http://www.chartjs.org/docs/)가 잘 되어 있어서 참고하면 됨
-12-
개발 과정날씨 크롤러
기상청 홈페이지에서 아래 빨간 영역을 가져오는 기능
http://www.kma.go.kr/weather/forecast/timeseries.jsp?searchType=INTEREST&dongCode=1159068000
URL을 보면 알수 있듯이 각 동에 해당하는 코드를 넣어서 조회를 할 수 있음
동 코드는 행정표준코드관리시스템(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) -

Mais conteúdo relacionado

Mais procurados

오픈소스소프트웨어 최종프로젝트 발표자료_201716366_김연영
오픈소스소프트웨어 최종프로젝트 발표자료_201716366_김연영오픈소스소프트웨어 최종프로젝트 발표자료_201716366_김연영
오픈소스소프트웨어 최종프로젝트 발표자료_201716366_김연영
ssusera234a4
 

Mais procurados (12)

Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
 
2017 새싹교실 1교시
2017 새싹교실 1교시2017 새싹교실 1교시
2017 새싹교실 1교시
 
Log4j 사용법
Log4j 사용법Log4j 사용법
Log4j 사용법
 
[5분 따라하기] git으로 undo하기(local편)
[5분 따라하기] git으로 undo하기(local편)[5분 따라하기] git으로 undo하기(local편)
[5분 따라하기] git으로 undo하기(local편)
 
[5분 따라하기] 전화번호와 이메일 정규표현식
[5분 따라하기] 전화번호와 이메일 정규표현식[5분 따라하기] 전화번호와 이메일 정규표현식
[5분 따라하기] 전화번호와 이메일 정규표현식
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 
[부스트캠프 Tech Talk] 이정현_Github Workflow 활용하기
[부스트캠프 Tech Talk] 이정현_Github Workflow 활용하기[부스트캠프 Tech Talk] 이정현_Github Workflow 활용하기
[부스트캠프 Tech Talk] 이정현_Github Workflow 활용하기
 
[5분 따라하기] bash 타임아웃 패턴
[5분 따라하기] bash 타임아웃 패턴[5분 따라하기] bash 타임아웃 패턴
[5분 따라하기] bash 타임아웃 패턴
 
오픈소스소프트웨어 최종프로젝트 발표자료_201716366_김연영
오픈소스소프트웨어 최종프로젝트 발표자료_201716366_김연영오픈소스소프트웨어 최종프로젝트 발표자료_201716366_김연영
오픈소스소프트웨어 최종프로젝트 발표자료_201716366_김연영
 
[5분 따라하기] git 다중 사용자 신원 설정 방법
[5분 따라하기] git 다중 사용자 신원 설정 방법[5분 따라하기] git 다중 사용자 신원 설정 방법
[5분 따라하기] git 다중 사용자 신원 설정 방법
 
Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1
 
Log4j
Log4jLog4j
Log4j
 

Destaque

Destaque (20)

Getting started with AWS IoT on Raspberry Pi
Getting started with AWS IoT on Raspberry PiGetting started with AWS IoT on Raspberry Pi
Getting started with AWS IoT on Raspberry Pi
 
Intro to AWS IOT
Intro to AWS IOTIntro to AWS IOT
Intro to AWS IOT
 
Hashiconf AWS Lambda Breakout
Hashiconf AWS Lambda BreakoutHashiconf AWS Lambda Breakout
Hashiconf AWS Lambda Breakout
 
AWS AWSome Day Roadshow Intro
AWS AWSome Day Roadshow IntroAWS AWSome Day Roadshow Intro
AWS AWSome Day Roadshow Intro
 
AWS AWSome Day Roadshow
AWS AWSome Day RoadshowAWS AWSome Day Roadshow
AWS AWSome Day Roadshow
 
AWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:CapAWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:Cap
 
Getting Started with AWS Lambda & Serverless Cloud
Getting Started with AWS Lambda & Serverless CloudGetting Started with AWS Lambda & Serverless Cloud
Getting Started with AWS Lambda & Serverless Cloud
 
AWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapAWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:Cap
 
AWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:CapAWS re:Invent 2016 Day 1 Keynote re:Cap
AWS re:Invent 2016 Day 1 Keynote re:Cap
 
AWSome Day Dublin - June 2016
AWSome Day Dublin - June 2016AWSome Day Dublin - June 2016
AWSome Day Dublin - June 2016
 
AWS re:Invent 2016 : announcement, technical demos and feedbacks
AWS re:Invent 2016 : announcement, technical demos and feedbacksAWS re:Invent 2016 : announcement, technical demos and feedbacks
AWS re:Invent 2016 : announcement, technical demos and feedbacks
 
Building Better IoT Applications without Servers
Building Better IoT Applications without ServersBuilding Better IoT Applications without Servers
Building Better IoT Applications without Servers
 
Cost Optimisation with AWS
Cost Optimisation with AWSCost Optimisation with AWS
Cost Optimisation with AWS
 
AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)
 
AWS Intro & History
AWS Intro & HistoryAWS Intro & History
AWS Intro & History
 
Security Best Practices: AWS AWSome Day Management Track
Security Best Practices: AWS AWSome Day Management TrackSecurity Best Practices: AWS AWSome Day Management Track
Security Best Practices: AWS AWSome Day Management Track
 
Opening
OpeningOpening
Opening
 
Getting started on IoT with AWS and NodeMCU for less than 5€
Getting started on IoT with AWS and NodeMCU for less than 5€Getting started on IoT with AWS and NodeMCU for less than 5€
Getting started on IoT with AWS and NodeMCU for less than 5€
 
AWS re:Invent 2016 recap (part 2)
AWS re:Invent 2016 recap (part 2) AWS re:Invent 2016 recap (part 2)
AWS re:Invent 2016 recap (part 2)
 
라즈베리 파이에 휴봇 설치하기
라즈베리 파이에 휴봇 설치하기라즈베리 파이에 휴봇 설치하기
라즈베리 파이에 휴봇 설치하기
 

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

도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
Jae Sung Park
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
YoungSu Son
 

Semelhante a 라즈베리파이로 슬랙 봇 개발하기 (20)

NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
 
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
Opensource apm scouter in practice
Opensource apm scouter in practiceOpensource apm scouter in practice
Opensource apm scouter in practice
 
Opensource apm scouter in practice
Opensource apm scouter in practiceOpensource apm scouter in practice
Opensource apm scouter in practice
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
 
20160420 ROS 3차 강의 (for 아스라다 팀)
20160420 ROS 3차 강의 (for 아스라다 팀)20160420 ROS 3차 강의 (for 아스라다 팀)
20160420 ROS 3차 강의 (for 아스라다 팀)
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
Portfolio
PortfolioPortfolio
Portfolio
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
 

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