음성으로 명령하는 서버리스 홈 오토메이션 개발하기  

자연어 인터페이스 기반의 서버리스 홈오토메이션 개발하기

Last updated

공상 과학에 등장하던 홈 오토메이션은 불과 몇 년 사이에 현실이 되었습니다. 이 코드 패턴에서는 자연어 서비스 및 OpenWhisk 서버리스 기술을 사용하여 홈 오토메이션 허브를 빌드하는 것이 얼마나 쉬운지 소개합니다.


‘코드 보기’ 버튼을 클릭하면 GitHub에서 한글 README 파일을, ‘동영상 데모 보기’ 버튼을 클릭하면 Youtube에서 한글자막을 선택하여 보실 수 있습니다.

By Kalonji Bankole, Prashant Khanal

Overview

지난 몇 년 동안 Apple Siri, Amazon Alexa 및 Google Assistant 등의 지능형 개인 비서의 인기가 크게 증가했습니다. 이러한 앱들은 초창기에는 신기한 장난감 정도로 보였지만, 이제는 편리하고 유용해지기 위해, 그리고 점점 늘어나는 열성적 사용자들에게는 필수품이 되기 위해 발전해왔습니다.

이러한 앱들은 사용자에게 서비스 API 및 IoT 연결 장치와 아주 손쉽게 상호 작용할 수 있도록 자연어 인터페이스를 제공합니다. 자연어로 하는 상호작용이 다음 단계로 진화하였으므로 대부분의 개발자는 음성에 기반한 상호작용을 통해 완벽한 홈 오토메이션을 제공하고자 합니다.

이 코드 패턴은 대화형 홈 오토메이션의 세계로 안내합니다. 우리가 사는 집은 음성 명령으로 연결하여 제어할 수있는 디바이스가 점점 더 많아짐에 따라 진정으로 “스마트”해지고 있습니다. 여러분은 Raspberry Pi를 사용하여 전원 콘센트를 껐다가 켜서 자체 홈 허브를 설정하는 방법을 배우게 됩니다. 회로 및 종속된 소프트웨어들이 올바르게 설치되고 구성되면 IBM Watson의 언어 서비스를 사용하여 음성 또는 텍스트 명령으로 전원 콘센트를 제어할 수 있게 됩니다.

그런 다음에는 서버리스에 대해 알아봅니다. 이 과정에서는 OpenWhisk 서버리스 기능을 사용하여 예정된 스케줄, 기상 변화, 동작 센서 활성화 및 기타 입력을 기반으로 동일한 콘센트를 트리거하는 방법을 보여줍니다. Watson 서비스를 사용하여 사용자의 입력을 해석하는 방법과 Bluemix 서비스가 HTTP, SMS, MQTT 및 기타 프로토콜을 사용하여 시스템에 아주 손쉽게 ​​액세스할 수 있는 방법을 알아보십시오. Watson IoT 플랫폼을 확장하여 분석을 처리하여 특정 디바이스의 지속 시간을 결정하고 OpenWhisk 시퀀스를 조정하여 스케줄되거나 트리거된 센서를 기반으로 디바이스를 제어할 수 있습니다.

그러니 이제는 홈 오토메이션 앱은 장난감이라는 지난 인식은 버리십시오. 제작할 앱이 수요가 있는지 확인하려면 개발 기술을 최신 상태로 유지해야합니다. 사람들은 스마트홈, 연결된 디바이스 및 음성으로 작동하는 디바이스를 원합니다. 이 코드 패턴은 정확히 그 내용에 관한 것입니다.

Flow

  1. 사용자는 마이크에 대고 명령을 말하거나 Twilio SMS 번호로 텍스트를 보냅니다.
  2. 해당 명령이 캡처되어 OpenWhisk 시퀀스를 트리거하는 HTTP POST 요청에 임베드됩니다.
  3. OpenWhisk 액션 1은 오디오를 Bluemix Speech to Text 서비스로 전달하고 응답을 기다립니다.
  4. 텍스트화된 입력은 OpenWhisk 액션 2로 전달됩니다.
  5. OpenWhisk 액션 2는 Conversation 서비스를 호출하여 사용자의 텍스트 입력을 분석한 다음 응답을 기다립니다..
  6. Conversation 서비스 결과는 최종 OpenWhisk 액션으로 전달됩니다.
  7. Openwhisk 액션은 IoT MQTT 브로커에 개체(entity)/인텐트 페어(예 : “fan / turnon”)를 게시합니다.
  8. MQTT 브로커에 등록된 Raspberry Pi는 결과를 수신합니다.
  9. Raspberry Pi는 RF 신호를 전송하여 콘센트를 켜거나 끕니다.

Components

IBM Cloud Functions

확장성이 뛰어난 서버리스 환경이며, 온디맨드 방식으로 코드를 실행합니다. (FaaS - Function as a service로도 불림)

Watson Speech to Text

사람의 음성 언어를 텍스트로 변환하는 서비스입니다

Watson Assistant

모바일 디바이스와 메신저 플랫폼, 심지어 물리적 로봇 상에서의 대화 봇 또는 가상 에이전트를 빌드, 테스트하고 디플로이합니다.

Twilio

음성, 메시징 및 VoIP를 웹 및 모바일 앱에 통합시킵니다

Internet of Things Platform

디바이스를 연결하고, 데이터를 클라우드로 보내고, 디바이스를 설정 및 관리하고, API를 사용하여 앱을 디바이스의 데이터에 연결합니다.

Technologies

애널리틱스

정보를 도출하기 위해 데이터에서 패턴을 찾습니다.

인공 지능

인간처럼 이해, 추론, 학습, 상호작용이 가능한 인지 기술

사물 인터넷 (IoT)

많은 수의 장치 간의 통신을 통한 데이터 수집과 교환

Mobile

모바일 사용자를 위해 특별히 디자인된 애플리케이션을 개발하고 참여를 가능하게 하는 환경

Node.js

서버사이드 JavaScript 코드를 실행하기 위한 오픈 소스 JavaScript 런타임 환경입니다.

Platform as a Service

클라우드 서비스를 위한 플랫폼으로, 이러한 활동을 수행하는데 필요한 인프라를 유지 관리하는 복잡성을 추상화함으로써 애플리케이션을 쉽게 개발, 배포 및 관리 할 수 ​​있습니다.

Serverless Computing

이벤트에 대응해 코드를 실행하도록 하는 이벤트-액션 플랫폼(FaaS, Function as a service로도 불림)입니다.

Related Blogs

귀하가 입력한 쇼트코드 검색조건에 매치되는 포스팅이 존재하지 않습니다.

Related Links

Wiring Pi(영문)

Raspberry Pi에서 사용되는 BCM2835 용 C로 작성된 PIN 기반 GPIO 액세스 라이브러리.

Privacy Preference Center

Close your account?

Your account will be closed and all data will be permanently deleted and cannot be recovered. Are you sure?