webOS Article/4. webOS 활용하기

webOS와 websocket을 이용하여 LED 제어하기 1 : 전체시스템 소개

jenny7938 2021. 8. 5. 23:13

이번 포스팅에서는 webOS를 활용한 LED 제어하는 과정에 대해 다뤄보겠습니다.

webOS Open Source Edition : WebSocket Communication on webOS 를 참고하여 작성하였습니다.

 

  • 전체 시스템 소개
  • ESP+LED+websocket
  • Enact webapplication
  • websocket server
  • 시스템 연동

 

Introduction


1. Interaction Objects

  1. Client (ESP8266, LED, WebSocket)
  2. Enact WebApplication (webOS 기반)
  3. WebSocket Server

 

 

2. WebSocket

  • WebSocket 이란?

▶ WebSocket 은 하나의 전송 제어 프로토콜(TCP) 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜입니다.

 

  • 프로토콜 HandShake

▶ WebSocket 을 연결하기 위해 Client 는 WebSocket HandShake 요청을 보내며, 이렇게 하면 Server 는 WebSocket HandShake 응답을 아래의 예에서 보는 바와 같이 반환합니다.

 

 

Client request :

GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Origin: http://example.com

 

Server response : 

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat

 

전체 시스템 구성도


 

 

STEP


1. WebSocket Server 만들기

  • WebSocket Client(ESP8266 + LED) 로부터 메시지를 받으면 함수의 개체가 데이터를 수신합니다.
  • WebSocket Client 는 JSON 형식의 문자열을 WebSocket Server 에 보내고 Server는 python 개체에 저장합니다.
  • Server 프로그램에서 데이터를 사용할 때, 해당 개체를 JSON 형식 데이터로 다시 변환해야합니다.

 

 

 

2. WebSocket Client 만들기 (ESP8266 + LED)

  • WebSocket Server 의 IP 주소 지정 후 IP 주소와 함께 WebSocket 개체를 만듭니다.
  • Server 에서 JSON 형식으로 받은 메시지 출력 및 분석합니다.
  • WebSocket Server 에 메시지 전송하면 메시지는 JSON 형식으로 형성된 후 문자열로 변환합니다.
    ※WebSocket 통신의 문자열에서 데이터 교환이 수행됨에 따라 JSON 개체를 전송하기 전에 JSON 형식 문자열로 변환해야 합니다.
  • WebSocket 테스트 화면을 통해 WebSocket Server에서 전송되는 결과가 화면에 출력되는 것을 확인합니다.

 

 

 

3. Enact WebApplication (Luna Service 알림 API 사용)

  • LED의 점등 상태 변화에 따라 toast 알림을 받아봅니다.
  • LED 점등 여부를 확인합니다.
  • toggle 버튼을 이용하여 LED의 점등 상태를 제어합니다. 

 

 

 

4. webOS에서 앱 설치 및 실행

필요한 것 :

Raspberry PI
CLI (webOSE SDK 도구에 포함)

 

  • WebSocket 통신을 사용하는 Web Application을 개발했습니다. webOS 에서 어떻게 작동하는지 살펴보기 위해 CLI 를 사용하여 Application 을 패키징, 장치 등록, 앱 설치 및 실행합니다.