Web 환경에서 Remote Control을 위한 배경 지식
Web 환경에서 Remote Control을 위한 개발 환경
- HTML(Hyper Text Markup Language)
- 웹 페이지을 기술하기 위한 규약으로 프로그래밍 언어가 아니라 마크업 언어 이다.
- 정적인 웹 페이지를(Static web page) 작성 하는데 유용 하다.
- 참고자료: w3schools.com의 HTML5 Tutorial
- JavaScript
- JavaScript는 HTML 과 Web을 위한 Programming Language 이다.
- Programming Language이기 때문에 Dynamic Web Page를 작성 하는데 유용 하다.
- JavaScript Code를 HTML 내에 삽입(포함)하여(Programming 기능이 없는 HTML Page를 Programming 기능을 포함한 Web Page로 확장) Dynamic Web Page를 작성 할 수 있다.
- JavaScript는 미리 작성된 다양한 Module를 사용 하여 용이하게 프로그램을 작성 할 수 있다.
- JavaScript 참고자료: w3schools.com의 JS Tutorial
- Web 환경에서 Remote Control을 위하여 사용 하는 JavaScript Library
- jQuery
- JS AJAX
- 참고자료: w3schools.com의 JS AJAX
- Node Serialport
- 참고자료: Node Serialport
- Node.js
- JavaScript 기반으로 구성된 서버 사이드 서비스를 JavaScript로 구현할 수 있게 하는 런타임 환경(Runtime Environment: 컴퓨터가 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신 환경) 이다.
- Node.js는 Server 측에서 JavaScript를 실행 할수 있게 한다.
- Node Package Manager(npm)를 이용하여 다양한 node.js 기반의 모듈을 설치 할 수 있고 이를 이용하여 용이하게 Server Side program을 개발 할 수 있다.
- Microcontroller의 개발 Tool과 Program Language
- 개발 Tool: Atmel Studio 또는 Android Studio
- Program Language: C 또는 C++
- Microcontroller에 대한 이해
- AVR Microcontroller에 대한 이해
Web 환경에서 Remote Control을 위한 개발 환경
- Client Side
- 개인용 컴퓨터(PC), Notebook, 휴대폰과 같이 Web Browser를 사용 할 수 있는 단말기를 사용하여 원격지에 있는 장치를 제어 한다.
- Google Chrome, Microsoft Explorer과 같은 Browser를 사용하여 제어 장치의 상태를 모니터 하고 제어 한다.
- Server Side Tool
- Web server 용 컴퓨터
- Node.js를 설치할 수 있는 컴퓨터를 Web server로 사용한다.
- Web server로 사용할 수 있는 컴퓨터 예: PC, Raspberry Pi 등
- Node.js
- Node.js 기반의 모듈을 이용 하여 Web Server 기능을 제공 하고 Serial Port 제어를 가능 하게 한다.
- Express web framework
- Express는 웹 및 모바일 애플리케이션을 위한 기능을 제공하는 Node.js 웹 애플리케이션 프레임워크(web application framework) 이다.
- jQuery
- jQuery는 Web Page 작성 시 JavaScript를 쉽게 사용 할 수 있도록 하는 JavaScript Library 이다.
- jQuery는 HTML/DOM manipulation, CSS manipulation, HTML event methods, Effects and animations, AJAX 관련 기능을 포함 하고 있다.
- 이 과제에서는 AJAX 관련 기능을 사용 하여 Client측 Web Page의 명령을 Server 측에 전송 하고 그 결과를 Server 측으로 부터 전송 받아 Client측 Web Page에 표시 하기 위하여 사용 한다.
- AJAX
- Web Page가 Load된 후에 Web server로 부터 Data를 읽고, Web server로 Data를 보낼 수 있는 기능을 제공 하는 JavaScript Library 이다.
- Node Serialport
- Node.js 환경에서 JavaScript를 이용 하여 Microcontroller와 Serial Communication을 가능하게 하는 Library 이다.
- Serial Communication Module
- Web Server의 Serial Port와 Microcontroller의 Serial Port을 연결 하는데 사용 한다.
- Server측의 Serial Port와 Microcontroller의 Serial Port를 연결하는 이용 하는 Module 예
- 가장 간단한 경우는 Server측의 Serial Port와 Microcontroller의 Serial Port를 직접 연결 하는 경우 이다.
- Bluetooth <-> Serial 변환 모듈: 근거리 무선통신을 지원 한다.
- ZigBee <-> Serial 변환 모듈: 근거리 무선통신을 지원 한다. Bluetooth 보다 통신 속도는 느리지만 같은 전력을 소비 하는 경우 더 먼거리 까지 통신이 가능 하다. 디지털 홈 구현, 빌딩 자동화, 공장 자동화 등에 적당 하다.
- 기타 필요에 따라 여러가지 변환 모듈을 사용 할 수 있다.
- Microcontroller
- 이 과제에서는 AVR Microcontroller(ATmega128 Board와 Arduino Mega Board(ATmega2560))를 사용 한다.
- AVR Microcontroller 개발 Tool은 Atmel Studio, Android Studio를 사용 할 수 있다.