- HTML: Web pages 작성에 필요한 Markup language
- JavaScript(JavaScript, jOuery, AJAX): Web pages 작성에 필요한 Programming language와 Library
- Linux OS: Raspberry Pi의 OS 가 Linux 이다.
- Python: Programming language. or
- Zigbee Module과 AT Comand
Node.js : Chrome V8 Javascript 엔진으로 빌드된 Javascript runtime environment
- Zigbee을 사용한 원격 제어 실험을 위한 시스템 구성 예
- Raspberry Pi는 원격지에서 접속 가능한 Web server 기능과 ZigBee 코디네이터와 Serial 통신(UART)으로 연결되어 ZigBee Network를 제어 한다.
- ZigBee Module 1은 코디네이터로 설정되어 ZigBee Module 2(End device)와 무선으로 통신 하며 ZigBee Module 2에 연결된 장치(이 예에서는 디지털 출력(LED), 디지털 입력(SW), 아나로그 입력)를 제어 한다.
- 실험을 위한 회로 구성
- Paspberry Pi 와 USB to Serial Converter 연결
- USB Cable을 사용하여 연결 한다. 이 경우 Serial Port Name은 /dev/ttyUSB0 이 된다.
- USB to Serial Converter 와 ZigBee Module 1 연결
- USB to Serial Converter TxD 와 ZigBee Module 1의 RxD를 연결 한다.
- USB to Serial Converter RxD 와 ZigBee Module 1의 TxD를 연결 한다.
- ZigBee Module의 Vcc에 전원을 연결 한다.
- ZigBee Module 1 와 ZigBee Module 2
- ZigBee Module 1 와 ZigBee Module 2은 무선이기 때문에 별도의 연결이 필요 없다.
- ZigBee Module 2 와 Device(LED, Analog input, Switch) 연결
- LED: 윗 회로을 참고하여 GPIO Port(이 예에서는 GPIO13을 사용)에 연결 한다. LED에 직렬로 연결하는 저항은 LED의 밝기을 결정하는 저항으로 보통 220옴에서 330옴 사이의 저항을 사용 한다.
- Switch: 윗 회로을 참고하여 GPIO Port(이 예에서는 GPIO14을 사용)에 연결 한다. Switch에 직렬로 연결하는 저항은 4.7K를 사용 한다.
- Analog input device: 5K에서 10K 사이의 가변저항을 사용하여 위 예와 같이 ADC Input(이 예에서는 ADC3(GPIO12)을 사용)에 연결 한다.
- Zigbee을 사용한 원격 제어 실험을 위한 Web Page
- Zigbee을 사용한 원격 제어 실험을 위한 Web Page 예
- GPIO Port 디지털 출력 장치(LED) 제어하기
- "LED On/Off COntrol" Button을 사용하여 Checkbox(LED)의 상태를 End device에 전달하여 End device의 LED를 제어 한다.
- "Get LED Status" Button을 클릭하면 End device의 LED 상태가 Checkbox(LED)에 표시 된다.
- Select box는 GPIO Port를 선택하는데 사용 된다. 이 예는 GPIO13 번을 선택한 경우 이다.
- GPIO Port 디지털 입력 장치(Switch)의 상태를 읽어 표시하기
- "Get Switch Status" Button을 클릭하면 End device의 Switch(GPIO14)상태가 Checkbox(Switch)에 표시 된다.
- Select box는 GPIO Port를 선택하는데 사용 된다. 이 예는 GPIO14 번을 선택한 경우 이다.
- Analog Input 장치의 값을 읽어 표시 하기
- "Get Analog Input Value" Button을 클릭하면 End device의 Analog Input(ADC3)상태가 Text box에 표시 된다.
- Select box는 GPIO ADC를 선택하는데 사용 된다. 이 예는 ADC3 번을 선택한 경우 이다.
- Paspberry Pi와 코디네이터 사이의 Serial 통신을 위한 Serial COM Port open 하기
- "COM Port" Select box에서 COM Port를 선택하고,
- "BuadRate" Select box에서 Buadrate를 선택한 다음,
- "COM Port Open 하기" Button을 클릭하여 COM Port를 Open 한다.
- COM Port의 사용이 종료 되면 "COM Port Close 하기" Button을 클릭하여 COM Port를 Close 한다.
- Remote ZigBee Module(ZigBee Module 2)의 Address 설정하기
- "Remote ZigBee Address" Text box에 Remote ZigBee Module(ZigBee Module 2)의 Address를 입력 한다. 이 값은 Remote ZigBee Module을 사용하는 명령을 실행하는 경우 Paspberry Pi Sewrver에 전달 된다.
- GPIO Port 동작 모드 설정 하기
- "GPIO Select" Select box에서 GPIO 번호를 선택하고,
- "Setting" Select box에서 Port동작 모드를 선택한 다음,
- "GPIO Configuration Setting" Button을 클릭하여 GPIO Port의 동작 모드를 설정 한다.
- GPIO Port 동작 모드 설정 상태 보기
- "Get GPIO Configuration Setting" Button을 클릭하면 GPIO Port의 동작 모드를 설정 상태가 Text box에 표시 된다.
- "GPIO Port Number(0 - 16)" Lable은 GPIO Port의 번호(위치)를 보기 쉽게 하기 위한 것 이다. 오른쪽 부터 0번에서 16번 까지의 위치를 표시 한다.
- Python을 이용한 Zigbee Module의 원격 제어(Server 측 프로그램)
- Node.js을 이용한 Zigbee Module의 원격 제어(Server 측 프로그램)
Raspberry Pi와 USB to Serial Converter를 이용한 Serial 통신은USB-Serial 변환 Module을 사용한 Serial 통신을 참고 바람.
주의: ZigBee Module의 Vcc는 3.3V 인 경우가 대부분이기 때문에 주의를 요함. USB to Serial Converter의 전압은 5V 인 경우가 많다.
"AT Command를 이용한 ZigBee 설정과 제어"에서 설명한 설정이 바르게되고 전원이 정상적으로 공급되면 무선으로 ZigBee Network이 구성 된다.
이 예에서는 Checkbox(LED)를 사용하여 ZigBee Module 2(End device)에 연결된(GPIO13) LED를 On/Off 제어 한다.
이 예에서는 ZigBee Module 2(End device)에 연결된 Switch(GPIO14)의 상태를 Checkbox(Switch)에 표시 한다.
이 예에서는 ZigBee Module 2(End device)에 연결된 Analog Input의 상태를 읽어 Text box에 표시 한다.
"디지털 및 아날로그 입출력" 페이지의 "GPIO(General Purpose Inputs and Outputs) Port동작 모드 설정" 부분을 참고 할 것.
Python을 이용한 Zigbee Module의 원격 제어(Server 측 프로그램): web-zigbee-cont.py
Zigbee을 사용한 원격 제어 실험을 위한 Web 프로그램(HTML): web-zigbee-cont-python.htm
Node.js을 이용한 Zigbee Module의 원격 제어(Server 측 프로그램): web-zigbee-cont.js
Zigbee을 사용한 원격 제어 실험을 위한 Web 프로그램(HTML): web-zigbee-cont-node.htm