USN HomeNet 응용 강의자료 - 01099496543.tistory.com... ·...

204
문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다. USN HomeNet 응용 2009~2010 동계강좌 교육사업부

Transcript of USN HomeNet 응용 강의자료 - 01099496543.tistory.com... ·...

Page 1: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

USN HomeNet 응용

2009~2010 동계강좌

교육사업부

Page 2: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

순서

p.2

§ 기본 개념

§ USN 핵심 기술

§ USN 적용 사례

§ ZigbeX 소개

§ HomeNet개발 환경 구축

§ TinyOS 개요

§ nesC 구문 이해

§ 기본 예제를 이용한 실습

§ TOS Message 구조

§ HomeNet 예제 실습

Page 3: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

기본 개념

Page 4: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Background

p.4

§ 유비쿼터스 컴퓨팅– 언제, 어디서 사용자가 인지하지 않더라도 필요한

정보나 서비스를 제공할 수 있는 기술

– 유선망, 무선망, 고정망, 이동망 등의 수많은 망들간의 연결이 필요

§ 유비쿼터스 사회의 기반기술 : USN– 사람의 행동패턴 및 주변 환경을 감지할 수 있는

기술• 효율적으로 실행활 및 산업에 적용하여 향상된 서비스 제공

– USN의 기본 목적• 데이터 수집, 데이터 처리, 무선 통신을 통한 네트워크 형성

Page 5: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Wireless Sensor ?

p.5

§ 제한된 자원으로 구성된 소형의 내장형 시스템을이용하여 다양한 물리량을 센싱하고, 처리하며 그결과를 이미 구축된 네트워크를 이용하여 전달

– 제한된 전력 – Battery System– 제한된 크기와 가격 – 회수 비용 무시– 제한된 BandWidth – 무선 채널의 한계– 제한된 RF 출력– 각 요소간의 Trade-Off

Page 6: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Sensor Networks ?

p.6

§ Ubiquitous Sensor Networks

– RFID와 무선 센서 노드들로 구성되는 네트워크:• RFID 태그 감지 및 주변 환경 센싱

• 무선 통신을 통한 자유로운 네트워크 형성

• 관심을 두는 현상에 대한 정보 수집, 모니터

– 구성된 네트워크의 유지• 무선 노드들끼리 무선 통신을 통해 기간망과 연결된 Sink 노드 (수집 노드)에게

수집된 데이터 전송

– Ad-Hoc Network를

이용한 자율 통신망

구축

Page 7: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Ad-hoc Wireless Networks

p.7

§ Ad-hoc 통신 기법

– 특정 AP나 Base Station과 같은 중계기가 없더라도 각 무선 노드들 간에 자유로운 네트워크를 구성하는 기술

Page 8: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Ad-hoc Wireless Networks

p.8

§ Ad-hoc Network의 구조– 유선 망이나 기존에 설치된 망이 없음– Self-Organizing Networks– 자유롭게 이동 가능.– 라우터로 동작, 단말은 제외

§ Ad-hoc Network의 특징– 쉽고 빠른 개발(유선망과 기지국이 필요 없다)– 관리 비용 감소– 제한된 자원(전력, 전송거리…)– 비 안정형 네트워크 (에러율이 높다)– 보안 취약 (전송 데이터를 쉽게 모니터링)

Page 9: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

USN의 특성

p.9

§ 응용 프로그램 지배적– 각각 응용에 따라 최적화되어야 함.

– 프로토콜 최적화.

§ 통신 환경– 응용이나 프로토콜에 따라 독특한 데이터 트래픽을 가짐

§ Duty cycle 사용– 배터리 시스템에서 저전력을 위해 사용하지 않는 RF는 Sleep 시

– Duty Cycle은 RF에서 Sleep과 Active 시간간에 비율을 의미

§ Self-Configurability (자가 구성)– Network Self Organization

Page 10: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

USN 핵심 기술

Page 11: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Enabling Technology for USN

p.11

§ IEEE 802.11 WLAN은 USN에 적합하지 않음

§ IEEE 802.15 WPAN– Bluetooth (802.15.1) ?

• Voice Applications에 적합한 QoS를 가지는 디바이스로 케이블을 대체할목적으로 설계

– High-Rate WPAN (802.15.3) ?• 높은 QoS를 요구하는 멀티미디어 응용에 적합

– Low-Rate WPAN (802.15.4) ?• Data rate나 QoS가 낮은 응용에 적합

• Wireless Sensor Networks에서 공인함

Page 12: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

IEEE 802 LAN/MAN Standards Committee802.1Higher

802.1Higher Layer LAN Protocols Working Group

802.11Wireless Local Area Network Working Group

802.15Wireless Personal Area Network Working Group

802.20MBWA Working Group

TG1 WPAN/Bluetooth Task Group

TG2 Coexistence Task Group

TG3 WPAN High Rate Task Group

TG4 WPAN Low Rate Task Group

… … … …

+ ZigBee

IEEE 802.15.4 TG4

p.12

Page 13: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 기술

p.13

§ WSN(Wireless Sensor Network)

§ P2P에서 M2M으로 변화– 모든 사물에 컴퓨팅 기술과 통신 기능 부여

§ 스탠포트 대학– 구조물의 실시간 무선 계측 시스템 개발

§ 버클리 대학– 모트(Mote) 상용화

• 소형 무선 센서 플랫폼으로 HW와 SW 공개• 무선 센서 네트워크 운영체제(TinyOS) 공개

Page 14: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 응용

p.14

• Home Networking

• Automotive Networks

• Industrial Networks

• Interactive Toys

• Remote Metering

Page 15: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 개요

p.15

§ 특정 지역이나 공간상에 다수의 소형 센서노드 설치– 주변 환경 및 사물 인식 정보 수집– 응용 서비스에 활용

§ 기존 네트워크와의 차이점– 기존 네트워크: 상호간의 정보 전달– 센서 네트워크: 자동화된 원격 정보 수집

§ 무선과 소형의 센서노드 구현 기술 필수– 배터리로 동작하는 저전력의 제한된 환경 고려

• MCU, RF, 메모리, 저장소, 스마트 센서, SW• 무선통신 소모 전력 > 센싱, 데이터 처리 소모 전력

Page 16: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 구성

p.16

§ 무선 센서 네트워크 시스템 구성– 스마트 센서노드(HW), 센서 플랫폼(SW), 무선 네트워

킹, 응용 서비스를 위한 서버 시스템

§ 버클리대학의 Mote 시리즈 유명– 공개 HW

• Mica계열: Atmel의 AVR 시리즈• Telos 계열: TI의 MSP430 시리즈

– 공개 SW• 초소형 운영체제: TinyOS• 초소형 데이터베이스: TinyDB• 병행성을 고려한 C 확장언어: NesC• 하드웨어 시뮬레이터: TOSSIM• 기타 툴

– XBow(Crossbow)에서 Mote 시리즈 상용화• 온도, 조도, 지자기 센서 등.• 센서 보드를 스택 형식으로 장착

Page 17: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 구성 (계속)

p.17

§ 센서노드 하드웨어– MCU

• Atmel, ARM, TI, Motolora 등

• 저전력을 위해 8비트 낮은 클록의 RISC CPU

– Atmel의 Atmega 시리즈가 가장 넓리 사용

– 무선 RF 모듈• IEEE 802.15.4/ZigBee

– IEE802.15.5 표준 PHY/MAC 레이어 기반

» 상위 프로토콜로 응용을 규격화한 단거리 무선통신에적합

– 802.11x, IEEE802.15.3 HR-WPAN, Bluetooth보다 구현측면에서 훨씬 간단

– 네트워크 안에 하나의 코디네이터 지정.

» 송/수신 활동을 제외한 나머지 시간은 대기 모드로 전환하여 배터리 절약

Page 18: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 구성 (계속)

p.18

§ 센서노드 하드웨어 구조

Page 19: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 구성 (계속)

p.19

§ 센서노드 하드웨어 변화– 기존: MCU와 무선 RF 독립– 변경: MCU와 무선 RF를 온-칩화(SoC)

• TI CC2430, CC2530

– CC2420 + MCU(8051) + 플래시(32/64/128K) + 램(8K)– CC2420 + MCU(MSP430) + 플래시(32/64/128K) + 램(8K)

• Ember EM250

– CC2420 + XAP2b(16bit MCU)+ 플래시(128K)

§ 센서노드 하드웨어 업체– 국내

• 레디오펄스

– 1.0 Full Stack을 만족하는 ZigBee 싱글 온칩 생산

– 외국• TI(Chipcon), Motorola(Freescale), Ember

– TI에 인수된 Chipcon의 CC2420이 대표적– Ember는 CC2420을 라이선스 받아 EM2420 생산

• Xbow(Crossbow), Bust Networks, Arch Rock

Page 20: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 구성 (계속)

p.20

§ 센서노드 SW 플랫폼: OS– 스마트 센싱, 데이터 프로세싱, 무선통신 기능

– 버클리 대학의 TinyOS, ETRI의 NanoOS, 일본의 트론 프로젝트

– TinyOS• NEST(Network Embedded Software Technology) 프로젝트에서

출발

– 저전력, 안정적인 운영, 네트워크 접속기능, 분산처리, 개발자를 위한 편리한 인터페이스 제공

– 4KB미만 실행이미지, 컴포넌트 형태로 추상화된 하드웨어 지원, 센서노드를 위한 통신 및 제어 기능 제공

• 오픈소스 프로젝트로 버클리대학에서 관장. 대부분의 미국 대학에서 개발 동참 및 교과과정에 적용

• XBow, Dust Networks, Arch Rock 등에서 많은 상용화 실적

Page 21: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 구성 (계속)

p.21

§ 센서노트 SW 플랫폼: 미들웨어– 사용자에게 통합된 서비스 정보 제공

• 수집한 센싱 데이터 필터링/통합/분석• 의미 있는 상황정보 추출/저장/관리/검색• 응용 서비스로 전달 및 서비스간 연계 통합• 싱크노드(코디네이터)에 탑재

– 센서노드 갱신, 응용 변화에 따른 프로그래밍 조정 수행

– 미들웨어 기술• IEEE 1451

– 이 기종 센서 네트워크로부터 수집된 센싱 데이터들을 응용프로그램 수정 없이 같은 방식으로 전달하기 위한 공통 인터페이스 기술

• 스마트 센서 모니터링 기술

– 센서 네트워크 구동/모니터링/제어/진단/복구• OSGi 미들웨어

– 자바기반(J2SE, J2Me) 객체지향 미들웨어 프레임워크– 통합 개발환경인 이클립스의 기본 프레임워크로 채택

Page 22: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 구성 (계속)

p.22

§ 센서노트 SW 플랫폼: DB– 기존 센싱방법

• 환경과 사물의 변화를 그대로 수집

• 문제점

– 데이터 유효성과 패킷 크기를 고려하지 않음.

– 해결책• DB활용

– 센싱된 데이터를 원하는 형태로 필터링

» 최적화된 패킷 크기로 구현함으로써 효율성 극대화

– 일반적인 파일 시스템 지향

» SQL과 같은 구조적인 질의가 가능한 시스템으로 발전

» 더욱 정확하고 섬세한 센싱 데이터 모니터링• TinyDB

– 버클리 대학에서 개발. 질의 기능 포함

Page 23: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 구성 (계속)

p.23

§ 무선 센서 네트워크– LR-WPAN(Low Rate-Wireless Personal

Area Network)• 저속, 저가격, 저전력

• 소형화, 오류허용, 가변적인 네트워크 구조, 효율적인 라우팅, 고장복구

– IEEE802.15.4• 하위 2(물리(PHY), MAC) 계층만 표준화

– 보완적인 채널 매핑

– DSSS(Direct Sequence Spread Spectrum)

– FDMA(Frequency Division Multiple Access)

– CSMA-CA(Carrier Sense Multiple Access with Collision Avoidance)

– 스캐닝과 리포팅 내장

Page 24: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[참고] 무선 통신 기술 용어

p.24

§ DSSS– 양쪽 모두가 알고 있는 의사난수(pseudo random: +1 or -1)를 데이터에 곱해서 실

제 비트 보다 훨씬 길이가 길어진(높은 주파수) 확산 신호 전송. 수신측은 의사난수를다시 곱해(1x1=1, -1x-1=1) 원래 신호 복원. 확산 신호는 전송실패 확률을 낮춤.IEEE 802.15.4는 32비트로 구성 된 16개 의사난수 중 하나를 선택. 4비트 데이터 확산.

§ FDMA– IEEE802.15.4에서는 주파수를 구분한다는 의미보다, 정해진 주파수 대역폭 안에서

필요한 대역폭 단위로 잘게 나눠 사용

§ CSMA-CA– 확인신호: 송신측은 수신측에 RTS(Request to Send) 패킷 전송, 수신측은 송신측에

CTS(Clear to Send) 전송• 송신측에서 CTS를 받지 못하면 일정 회수만큼 RTS 전송. 그래도 CTS를 받지 못할 경우 일정

시간을 대기한 후 다시 RTS 전송

– 데이터전송: 송신측은 수신측에 데이터 패킷 전송, 수신측에 송신측에 ACK 전송

PN code PN code

Input

Data

Output

Datachannel

noise

Spreading Despreading

dt

pnt pnr

drtxo rxo

Page 25: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 구성 (계속)

p.25

§ ZigBee Alliance

– IEEE802.15.4에서 제외된 상위 부분 설계 목표• IEEE802.15.4/Zigbee 풀 스택 제공

• 네트워크 구조, 라우팅, 보안 등을 표준화하여 지그비 스택에 추가

• 각 업체는 이를 바탕으로 자사의 프로파일 작성, 서로 다른 업체에서 만든 디바이스 간 상호 운용성과 호환성 보장

– 무선 센서 네트워크의 표준은 아님.• 미국

– 풀 스택이 너무 무거움

– TinyOS + IEEE802.15.4 호환 무선 RF 모듈

– ZWave: 소규모 오피스나 가정을 타깃

• 국내

– 업계: 지그비 풀 스택 채택

– 정부/연구기관: IPv6기반의 IP-USN 프로토콜 연구 개발.

Page 26: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

WSN 시스템 구성 (계속)

p.26

§ TinyOS기반 WSN 플랫폼 구조

Wireless

RFStorage Processor Sensors

WSN Mote Platform

Radio

Link

Protocols

Flash

Blocks

Logs

Files

MCU, Bus,…

Scheduling

Management

ADC

Sensor I/F

Streaming

Drivers

Smart Sensor Application & Services

TinyOS

(SW)

Sensor

Note(HW)

Page 27: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

IEEE802.15.4

p.27

§ 개요– 물리(PHY)계층과 MAC 계층으로 구성

• 물리계층 프레임 최대 크기는 133바이트

– 주파수와 전송속도• 868Mhz: 1 채널(유럽), 20kbps

• 915Mhz: 2Mhz 간격 10 채널 ISM 밴드, 40kbps

• 2.4GHz: 5Mhz 간격 16 채널 ISM 밴드, 250kbps

– 노드내 최대 255개 디바이스 연결• 최대 노드간 통신 거리는 100m

PHY(Mhz)

Frequency Band(Mhz)

Spreading parameter Data parameter

Chip rate(kchip/s)

modulation Bit rateSymbol rate(ksymbol/s)

Symbols

868/915

868-868.6 300 BPSK 20 20 Bin

902~928 600 BPSK 40 40 Bin

2450 2400~2483.5 2000 O-QPST 250 62.516-ary

Orthogonal

Page 28: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

IEEE802.15.4 PHY

p.28

§ 운영되는 주파수 대역

– 868Mhz(1)/916Mhz(10) PHY: 0 ~ 10

– 2.4Ghz(16) PHY

2.4 GHz

868.3 MHz

Channel 0 Channels 1-10

Channels 11-26

2.4835 GHz

928 MHz902 MHz

5 MHz

2 MHz

Page 29: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

IEEE802.15.4 MAC

p.29

§ 전 기능 디바이스(FFD: Full function device)– 임의의 토폴로지(Topology)

– 네트워크 코디네이터 역할

– 임의의 다른 디바이스와 연결

§ 축소 기능 디바이스(RFD: Reduced function device)– 스타(Start) 토폴로지로 제한

– 네트워크 코디네이터가 될 수 없음

– 네트워크 코디네이터와만 연결

– 매우 간단히 구현

Page 30: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

IEEE802.15.4 MAC (계속)

p.30

§ 스타 토폴로지

§ 피어 투 피어(Peer to peer) 토폴로지

Full function device

Reduced function device

Communications flow

Point to point Cluster tree

Master/slave

Coordinator

Page 31: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

IEEE802.15.4 MAC (계속)

p.31

§ 결합 토폴로지

– 클러스터 스타(Clustered stars)

Full function device

Reduced function device

Communications flow

Page 32: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

USN 적용 사례

Page 33: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Environmental Applications

p.33

§ 가장 먼저 시도된 분야

§ 활용분야– 주거환경 감시

– 산불 감시

– 홍수 감시

– 농업에 관한 환경감시

– 환경 예측, 예보 시스템

§ 프로젝트– Great Duck Island (U.C Berkeley)

– PODS (University of Hawaii)

– CORIE

– ALERT

Page 34: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Smart Home Applications

p.34

§ Smart Home

– Home Information• For useful life

– Home automation • For convenient life

– Home Security• For safe life

– Home Healthcare• For well life

– Home Entertainment• For enjoyment of life

Page 35: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Healthcare Applications

p.35

§ Healthcare– 생리학적 데이터를 원격감시

– 탁상형 원격진단 시스템

– 원내의 환자와 의사의 위치 파악

– 원내의 약물통제

– 사용자의 상태를 반영한 입는

컴퓨터를 활용한 헬스케어

Page 36: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Military Applications

p.36

§ 시나리오– 아군의 장비와 무기 감시

– 전장 감시

– 반군이나 지형의 수색

– 전투 손상의 평가

– 생화학적 공격에 대한 수색

Page 37: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Great Duck Island(1/2)

p.37

§ 목적– 바다 새 둥우리의 환경과

행동을 감시

§ 주 요인– 바다 새는 주변환경에 민감.

– 반복되는 스트레스는바다 새 군락전체가 섬을떠나게 할 수도 있음.

§ 문제점– 인간의 참여를 최소화

하면서 자연상태의관찰 결과를 얻을 것인가

§ 해결방안– sensor network

Page 38: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Great Duck Island (2/2)

p.38

① 굴속에 4인치 크기의 모트 설치② 게이트웨이에서 센서 정보 수집③ 연구 기지 랩탑에서 송신④ 다른 랩탑에서 위성으로 송신⑤ 캘리포니아 인텔-버클리 랩에서 수신

Page 39: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Golden Gate Bridge

p.39

§ Hardware– 2003년 6월까지 200개의 모트(AVR 8Mhz) 배치

(Mica2(cc1000))– 가속도 센서에 의해 돌풍에 따른 움직임 측정– 게이트웨이(PXA255 200Mhz)에서 데이터 수집 및 중앙 서버로

전송

§ Software– TinyOS

0 2 4 6 8 10 12 14 16-1.5

-1

-0.5

0

0.5

1Time plot

Time (sec)

Acc

eler

atio

n (g

)

MEMSPiezo

Page 40: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Redwood Project

p.40

HardwareMica2 사양의 모트 80개 구축

맘모스 나무들(mammoth trees) 주위의 온도와 습도 측정

SoftwareTinyOS

Page 41: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Ubiquitous Home Service

p.41

§ 응용

– 압력 센서를 집 바닥에 설치

– 압력 센서가 보내는 정보를

기반으로 사람의 위치 추적

– 사람 이동 경로에 따른 video와 audio 서비스제공

Page 42: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

다양한 Ubiquitous Home Service 구현

p.42

§ 응용– Camera, microphone, pressure, infra 센서 등을 집에 설

치하여 다양한 유비쿼터스 서비스 제공

– 여러 센싱 데이터는 중앙 서버에서통합하여 상황에 맞는 서비스 판단

– 판단된 결과를 바탕으로 로봇이나가전제품, 보일러, 에어컨 등을 제어

Page 43: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

BSN(Body Sensor Network)

p.43

Page 44: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

유비쿼터스 포도원

HardwareMica2 사양의 모트 65개 구축

이른 아침에 서리가 내리면 관리자의 랩탑 컴퓨터에 소리를 내어신호

SoftwareTinyOS

Page 45: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

ZIGBEX 소개

Page 46: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Hanback ZigbeX

p.46

§ Computing– ATmel 8-bit RISC Microcontroller – 128KByte Flash program memory, 4KByte SRAM

– SPI, UART 2, Timer, ADC 10Bit 8Chenel, …

– External Flash 512KB, DS2401(Serial_ID), RTC4513

§ Radio Transceiver– Chipcon CC2420– Radio range: 100m– Data rate: 250 KBps– Frequency range: 2.4 GHz (ISM)

– PCB패턴안테나(실외 130m, 실내 30m)

§ TinyOS 1.X§ RFID Reader + RFID Tag (5)

Page 47: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Hanback ZigbeX II

p.47

§ Computing, Radio Transceiver– 기존과 동일

§ TinyOS 2.X

§ SMA형 안테나 추가

§ 케이스 제작

Page 48: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

하드웨어 구성

p.48

§ 전면– CPU, RF, PCB Antenna, SMA Antenna connector 단자,

Clock, ISP, Battery Power, External Power, Extend Connector, Cds(조도센서), LED, Temp & Humidity, Photo Diode, RTC, 전원스위치, 전원표시LED

§ 뒷면– External Flash Memory, serial ID

50pin for Extension

EXTBattery Connector

Power On/Off

ATMega128LCDS PhotoDiode

SMAConnector

CC2420

PCBAntenna

RTCTemperture & Humidity

Page 49: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Hanback Option Sensor Boards

p.49

ZigbeX ZigbeX II

움직임검출

초음파 기상 리모콘

블루투스

기상 모터 초음파

LCD 바이오블루투스

혈압

릴레이 GPS 카메라 Co2

Page 50: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

ZigbeX 게이트웨이

§ Ubi-BOX I, II– ZigbeX 제품군 전용 게이트웨이– 10dBm 파워로 최대 300m 통신 거리– 임베디드 리눅스 2.6 커널 적용– 블루투스 통신 지원– LAN을 이용한 USN 서버 구축 가능– WLAN을 이용한 USN 서버 구축 가능

§ ZigbeX, UbiCoin,Ubi-MSP430,Ubi-nanoLOC 완벽 호환

p.50

Page 51: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

유비하우스 II

§ ZigbeX를 이용한 USN 기반의 홈 네트워크 모델– 임베디드 시스템 및 모바일 플랫폼을 통해 제어 가능

• EMPOS II, SM II, EMPOS III, CDMA II etc

– 홈 네트워크를 제어하기 위한 다양한 동작 명령어 제공• 문의 열기/닫기 제어• 커튼 제어• 전원 제어를 통해 Lamp 제어• 가스 차단기 제어• 침입 탐지 등

p.51

Page 52: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

유비하우스 II (계속)

p.52

Page 53: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Ubi-HomeNet

유비하우스(Ubi-House) II 기능을 전용 교육장비화 시킴

유비하우스에 적용된 모트 및 센서와 동일한 구성

실제 홈네트워크 시스템 실험 실습 환경 제공

p.53

Page 54: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

HOMENET 개발환경 구축

Page 55: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

순서

p.55

§ Cygwin 삭제

§ Cygwin 설치

§ TinyOS 2.x 설치

– Install TinyOS 2.x

– Install ZigbeX PlatForm

§ HomeNet 프로그램 설치

§ Graphviz 설치하기

§ 설치 프로그램 목록

Page 56: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Cygwin 삭제

p.56

Page 57: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

미리 설치되어 있는 Cygwin 삭제 과정

p.57

1. 제어판 -> 프로그램추가/제거 -> Cygwin이나 TinyOS삭제

2. 윈도우 “시작 -> 실행”창에서 “regedit”실행§ HKEY_CURRENT_USER ->

Software -> cygnusSolutions 폴더 삭제

§ HKEY_LOCAL_MACHINE -> Software -> cygnusSolutions 폴더 삭제

3. Cygwin 폴더 전체 삭제

Page 58: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Cygwin 설치

p.58

Page 59: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Cygwin 설치 - 목적

§ TinyOS는 리눅스 환경에서 동작 된다

§ 윈도우 상에서 리눅스 플랫폼을 에뮬레이션 할 수 있는 Cygwin을 통해 TinyOS를동작 시킨다.

Page 60: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Cygwin설치 – 설치 화면

p.60

§ 제공된 CD의 CD\cygwin 폴더 안에setup.exe 파일을 실행

§ 다음을 클릭

Page 61: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Cygwin 설치 – 설치 타입

p.61

§ “Install from Local Directory” 를 선택

§ 다음을 클릭

Page 62: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Cygwin 설치 – 설치 경로설정

p.62

§ Cygwin 설치 폴더를 설정

– 기본값인 c:\cygwin 으로 설정

§ 다음을 클릭

Page 63: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Cygwin 설치 – 설치 패키지 경로설정

p.63

§ Cygwin 설치 파일 폴더 설정

– “CD\cygwin\release” 로 설정

§ 다음을 클릭

Page 64: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Cygwin 설치 – 설치 패키지 선택

p.64

§ Cygwin 설치 패키지를 선택

– 기본값으로 설정

§ 다음을 클릭

Page 65: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Cygwin 설치 - 완료화면

p.65

§ 설치 완료 화면

– 바탕화면의 바로가기 만들기

– 시작 메뉴에 아이콘 만들기

Page 66: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 2.x 설치

p.66

Page 67: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS2X 및 ZigbeX 프로그램 설치

p.67

§ 설치파일 복사– Cygwin에서 mkdir /opt 명령을 통해 /opt 폴더 생성

– CD의 Install_TinyOS2X 폴더의 Install_TinyOS2X.sh 파일과Install_TinyOS2X.zip 파일을 Cygwin이 설치된 폴더의 /opt 폴더에 복사.

§ Cygwin 실행 후 다음 명령 수행– cd /opt

– ./Install_TinyOS2X.sh

§ Cygwin Update1. CD에 bin 폴더가 없다면 이미 업데이트 된 버전

• 업데이트 필요 없음

2. CD에 bin 폴더가 있다면 아래와 같이 업데이트 작업이 필요• 열려있는 모든 Cygwin을 종료

• CD의 bin 폴더의 파일을 Cygwin이 설치된 폴더의 /bin 에 복사(덮어쓰기)

§ 설치 완료

Page 68: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Install ZigbeX PlatForm

p.68

§ 이미 TinyOS 2.x가 설치 되어 있을 경우 ZigbeX PlatForm 설치– CD의 hanback_zigbex_TinyOS2x 폴더에 hanback_zigbex_TinyOS2x.sh

파일과 hanback_zigbex_TinyOS2x.zip 파일을 Cygwin이 설치된 폴더의/opt에 복사.

§ Cygwin 실행 후 다음 명령 수행– cd /opt

– ./hanback_zigbex_TinyOS2x.sh

§ Cygwin Update1. CD에 bin 폴더가 없다면 이미 업데이트 된 버전

• 업데이트 필요 없음

2. CD에 bin 폴더가 있다면 아래와 같이 업데이트 작업이 필요

• 열려있는 모든 Cygwin을 종료

• CD의 bin 폴더의 파일을 Cygwin이 설치된 폴더의 /bin 에 복사(덮어쓰기)

§ 설치완료

Page 69: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

HOMENET 프로그램 설치

p.69

Page 70: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Install HomeNet PlatForm

p.70

§ 이미 TinyOS 2.x가 설치되어 있을 경우 HomeNet PlatForm 설치– CD의 HomeNet_TinyOS2x 폴더에 homenet_TinyOS2x_install.sh 파일과

hanback_homenet_TinyOS2x.zip 파일을 Cygwin이 설치된 폴더의 /opt에복사.

§ Cygwin 실행 후 다음 명령 수행– cd /opt

– ./homenet_TinyOS2x_install.sh

§ Cygwin Update1. CD에 bin 폴더가 없다면 이미 업데이트 된 버전

• 업데이트 필요 없음

2. CD에 bin 폴더가 있다면 아래와 같이 업데이트 작업이 필요

• 열려있는 모든 Cygwin을 종료

• CD의 bin 폴더의 파일을 Cygwin이 설치된 폴더의 /bin 에 복사(덮어쓰기)

§ 설치완료

Page 71: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Graphviz 설치하기

p.71

Page 72: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Graphviz 설치하기

§ TinyOS의 예제 중 그래픽 기반 자바 어플리케이션을 실행하기 위해 설치

§ 설치 방법

– CD의 Tools 폴더에 있는 graphviz-2.12 파일을 실행

Page 73: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

설치 프로그램 목록

p.73

Page 74: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

설치 프로그램 목록

§ TinyOS

§ Support Tools

설치 목록 내 용

TinyOS Tools TinyOS 2.0.0

NesC 1.2.8a TinyOS의 컴포넌트 기반의 구조적인 개념들과 실행 모델 구현을 위한 C 언어 확장 프로그래밍 언어

Cygwin 윈도우 기반 리눅스 환경

설치 목록 내 용

Java 1.5 JDK 호스트 PC에서 JAVA를 이용한 시리얼통신 기능 제공

Java COMM 2.0 호스트 PC에서 JAVA를 이용한 시리얼통신 기능 제공

Graphviz ‘make docs’에 의해 만들어지는 파일을 보여주는 기능 제공

Page 75: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

설치 프로그램 목록

§ AVR Tools

§ TinyOS2.X가 설치된 디렉터리

설치 목록 내 용

avr-binutils 어셈블러, 로더, 링커, 바이너리 파일 모음

avr-libc 크로스 컴파일 구축을 위한 라이브러리

avr-gcc 크로스 컴파일용 컴파일러

avi-insight GDB를 위한 사용자 인터페이스 패키지

디렉터리 내 용

apps TinyOS용 기본 프로그램 폴더

contrib ZigbeX를 위한 예제 폴더

support 컴파일, 자바 프로그램들

tos 다양한 TinyOS 컴포넌트와 TinyOS 인터페이스, 라이브러리등이 포함된 폴더

Page 76: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

ZIGBEX 예제 빌드 및 다운로드

Page 77: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

순서

p.77

§ ZigbeX 예제 빌드

– BlinkTimer 예제

§ Programmer Tool 설치

– AVR-Studio 4 Install

– AVR-ISP USB 드라이버 설치

§ 프로그램 다운로드 실습

Page 78: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

ZigbeX와 HomeNet 예제 빌드

p.78

Page 79: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

ZigbeX 예제 빌드 - 1

p.79

§ BlinkTimer 예제를 이용해서 Testing§ 바탕화면에 를 클릭하여 Cygwin을 시작§ 다음 명령을 실행

경로이동

기존의 build 폴더 삭제

Page 80: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

ZigbeX 예제 빌드 - 2

p.80

§ Cygwin에서 “make zigbex” 입력

빌드 실행

파일생성

Page 81: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

HomeNet 예제 빌드 - 1

p.81

§ Ch2_BaseStation_0 예제를 이용해서 Testing§ 바탕화면에 를 클릭하여 Cygwin을 시작§ 다음 명령을 실행

경로이동

기존의 build 폴더 삭제

Page 82: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

HomeNet 예제 빌드 - 2

p.82

§ Cygwin에서 “make homenet” 입력

빌드 실행

파일생성

Page 83: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Programmer Tool 설치

p.83

Page 84: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AVR-Studio 4 Install - 1

p.84

§ CD\USB_ISP 폴더에 있는“aStudio4b623.exe” 실행

§ Next 버튼을 선택하여 설치

Page 85: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AVR-Studio 4 Install - 2

p.85

§ License Agreement

Page 86: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AVR-Studio 4 Install - 3

p.86

§ Destination Location

Page 87: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AVR-Studio 4 Install - 4

p.87

§ USB 업그레이드

Page 88: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AVR-Studio 4 Install - 5

p.88

설치준비화면설치준비화면

설치 중 화면설치 중 화면

설치 완료 화면설치 완료 화면

Page 89: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AVR-ISP USB 드라이버 설치

p.89

Page 90: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AVR-ISP USB 드라이버 설치 - I

p.90

§ AVR-ISP와 PC 연결하기– USB-ISP Button 설정

• PC와 연결된 USB-ISP의

버튼을 SPI쪽으로 설정한다.

– AVR-ISP Button 설정• PC와 연결된 AVR-ISP의

버튼을 ISP쪽으로 설정한다.

UART : Asynchronous Serial Communication

SPI : Program Download

UART : Asynchronous Serial Communication

ISP : Program Download

Page 91: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AVR-ISP USB 드라이버 설치 - II

p.91

§ CD\USB_ISP\CDM 2.00.00 폴더를 PC에 복사

§ 윈도우 “새 하드웨어 검색”에서 복사한 폴더의위치로 설정

Page 92: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

프로그램 다운로드 실습

p.92

Page 93: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AVR-Studio 4 실행과 ISP 연결

p.93

§ AVR Studio 4 실행– 바탕화면에 를 클릭하여 AVR-Studio 4를 시작– AVR Studio에서 Tools -> Program AVR -> Connect 메뉴를

선택하여 ISP에 접속한다.

– 연결 버튼을 누른 후에 업그레이드는 취소를 선택한다.

각자의 포트에맞추어서 설정

Page 94: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AVRISP 선택 및 다운로드

p.94

§ Device 선택– ATmega 128 선택

§ Flash 창에서 Hex 파일 선택– BlinkTimer 예제

• BlinkTimer 예제에서컴파일한 main.hex 파일을 연다.

• “Program” 버튼을클릭하여 다운로드한다.

• 다운로드된 모트의Red LED가 점멸하는지 확인한다.

Page 95: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TINYOS

Page 96: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(1)

p.96

§ 세계적으로 가장 많이 사용되는 USN을 위한 운영체제– 오픈 소스 개발 환경

– Hurry up and Sleep

(Sleep as often as possible to save power)

§ TinyOS의 특징– Component 객체 개념의 서비스 블록 단위로 구성

– NesC(Network Embedded System C) 언어 사용

– Task를 위해 간단한 FIFO 스케줄링 사용

– Event/Command 기반의 함수 연결 Interfaces 지원

– 높은 병행성과 인터럽트 위임(no polling)

Page 97: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(2)

p.97

§ Data Memory Model– Static Memory Allocation

• No Heap(malloc)

• No Function Pointers

– Global Variables• Available on a per-frame basis

– Local Variables• Saved on the stack

• Declared within a method

Page 98: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(3)

p.98

§ TinyOS Thread Model– 2-Level Scheduling (Events and Tasks)– Tasks

• Time flexible• Longer background processing jobs• Atomic with respect to other tasks(single

threaded)• Preempted by events

– Events• Time critical• Shorter duration (Hand off to task if need be)

– Do not confuse an event from the nesCevent keyword

Page 99: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(4)

p.99

§ Component Hierarchy– Components are wired

together by connecting users with providers

• Forms a hierarchy

– Commands• Flow downwards• Control returns to caller

– Events• Flow upwards• Control return to signaler

– Events can call• Commands but not vice

versa

Page 100: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(5)

p.100

Page 101: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(6)

p.101

§ Scheduling

Page 102: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(7) – 폴더 구조

p.102

§ /opt/tinyos-2.x

Page 103: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(8) – 폴더 구조

p.103

§ interfaces: 구현된 Interface를 모아놓은 곳§ system : CPU 중심적 컴포넌트와 스케줄러§ platform : TinyOS 를 사용하는 플랫폼을 정의§ types : TinyOS 메시지 해더를 정의

Page 104: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(9) – 빌드 환경

p.104

§ 제공된 CD를 이용하여 환경구성

§ ncc: NesC 컴파일러

§ avr-gcc: ncc컴파일 결과 파일 app.c를컴파일

§ main.hex생성

§ NesC 컴파일 과정

Page 105: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(10) – 빌드 환경

p.105

§ The make System– From within the applications’s directory

– make (re)install.<node id> <platform>• <node id> is an interger between 0 and 255

• <platform> may be zigbex

– make clean

– make docs• Generates documentation

Page 106: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(11)

p.106

§ Task:– Event가 끝난 후, FIFO 스케줄링에 의해 처리됨.

Page 107: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(12)

p.107

§ Event는 Interrupt로부터 시작된다.– RF interrupt– ADC interrupt– Timer interrupt– UART interrupt

§ Interrupt가 발생되면, 그에 대한 처리 함수가 자동으로 호출됨.

§ 해당 처리 함수는 상위 컴포넌트에게 event 형식type의 interface 함수를 사용하여 전달한다.

§ 즉, TinyOS의 모든 동작은 interrupt에 의한 event로 시작된다.

Page 108: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 개요(13)

p.108

§ Group ID– Makefile에 다음과 같이 정의하여 사용한다

(default 0x7D)• CFLAGS += -DDEFINED_TOS_AM_GROUP=0x22

§ Address– AM_BROADCAST_ADDR(0xFFFF)는 broadcast

를 의미

– TOS_NODE_ID• make zigbex reinstall.#

• #이 TOS_NODE_ID을 의미하는 mote ID 이다

Page 109: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

NESC 구문 이해

Page 110: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

nesC(1)

p.110

§ C 언어– 가장 보편적으로 사용되는 언어.

– 다른 언어들에 비해 하드웨어 제어가 용이함

– USN과 같은 초소형 프로그래밍에는 적합하지 않음

§ nesC– Extended C

– Component 를 기반으로 하기 때문에 초소형 프로그래밍 가능

• Configuration file : Component간의 연결을 기술하는 파일

• Module file : 실제 Component 의 동작 구현을 기술하는 파일

Page 111: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

nesC(2)

p.111

§ Component– 하나의 기능을 의미하는 블록

• Timer Component, RF Component, Light Component

– 하나의 컴포넌트는 Configuration 파일과 Module 파일로 구성됨

§ 특별히 취급되는 Component– Main Component

• TinyOS의 시작 코드가 기술된 컴포넌트로써 모든 예제 프로그램은 꼭 Main Component를 포함하고 있어야 한다.

– 최상위 Component• 예제 프로그램의 이름을 만들어지는 컴포넌트로써, 예제의

전반적인 동작을 제어하는 컴포넌트이다.

Page 112: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

nesC(3)

p.112

§ Interface 란?– Component 사이의 연결을 위해 존재하는 함수

들의 모임을 interface라고 말한다.

§ Interface의 선언– Uses

• 하부 Component를 사용할 때, 하부 Component의interface를 uses 한다고 선언

– Provide• 상위 Component에서 자신의 함수들을 사용하도록

interface를 제공할 때, interface를 provide 한다고 선언

Page 113: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

nesC(4)

p.113

§ Interface의 Type

– Component 사이의 연결을 위해 존재하는 함수들의 모임

– Function Types: Command and Event• Command : 상위 Component에서 하위 Component에 구현된 함

수를 만들 때 사용되는 Type.

• Event: 하위 Component에서 상위 Component에게 정보나 어떠한사실을 알려주기 위한 함수를 만들 때 사용되는 Type.

interface Timer { command result_t start (char type, uint32_t interval); command result_t stop (); event result_t fired ();

}

Page 114: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

nesC(5)

p.114

§ Wiring between Interfaces

– Interface 1 = Interface 2• Interface 1의 구현은 Interface 2에 있다.

– Interface1 -> Interface2• Interface1는 Interface 2에 링크된다.

• 상위 Component -> 하위 Component

Page 115: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

nesC(6)

p.115

§ Components:– 구성

• Module

– C로 구현

– 인터페이스 동작 기술

– 이벤트 핸들러 작성

• Configuration

– Component 선언(select)

– Component 간의 연결(wire)

– Interfaces• provides interface

• Uses interface

두 개의 “provides”를

“uses” 해서 새로운

“provides”를 제공한다.

두 개의 “provides”를

“uses” 해서 새로운

“provides”를 제공한다.

Page 116: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

nesC(7)

p.116

§ modules:module C1 {

uses interface red_triangle;

} implementation { ... }

module C2 {

provides interface red_triangle;

uses {

interface green_triangle;

interface rectangle; }

} implementation { ... }

module C3 {

provides interface green_triangle;

provides interface rectangle;

} implementation { ... }

C2

Page 117: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

기본 예제를 이용한 실습

Page 118: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Timer를 이용한 LED 제어

p.118

Page 119: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Timer를 이용한 LED 제어 개요

p.119

§ Timer 컴포넌트를 이용하여 일정시간마다LED0(적색)을 Toggle 한다.

– 예제 위치

• \opt\tinyos-2.x\contrib\zigbex\BlinkTimer

-Configuration 작성법

- Module 작성법

- Timer 설정방법

- LED 제어 방법

BlinkTimerBlinkTimer

MainMain LEDLED

TimerTimer

Page 120: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

BlinkTimer configuration 파일 설명

p.120

§ BlinkTimer.nc

configuration BlinkTimer {}implementation {

// 사용될 컴포넌트 선언components MainC, BlinkTimerM, LedsC,

new TimerMilliC();

// 인터페이스 연결BlinkTimerM.Boot -> MainC;BlinkTimerM.Leds -> LedsC;BlinkTimerM.Timer->TimerMilliC;

}

Page 121: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

BlinkTimer Module 파일 설명

p.121

§ BlinkTimerM.ncmodule BlinkTimerM {

// 사용될 인터페이스 선언uses {

interface Boot;interface Timer<TMilli>;interface Leds;

}}// 구현 부분(실질적인 프로그램)implementation {

// 프로그램의 시작부분event void Boot.booted() {// Timer의 동작과 시간을 설정call Timer.startPeriodic(1000);}

// 설정한 시간이 되었을 때의 동작을 기술

event void Timer.fired() {// LED의 동작을 설정call Leds.led0Toggle(); // red led toggle

}}

Page 122: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Timer를 이용한 LED 제어 구조BlinkTimer의 구조 - I

(MainC.nc)

p.122

Page 123: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

MainC.nc - Component

p.123

§ 컴포넌트 : MainC, BlinkTimerM, LedsC, new TimerMilliC()– /opt/tinyos-2.x/tos/system/MainC.nc

configuration MainC {// 상위 컴포넌트에 ‘Boot’라는 이름의 컴포넌트를 제공.provides interface Boot; uses interface Init as SoftwareInit;

}implementation {

components PlatformC, RealMainP, TinySchedulerC;

RealMainP.Scheduler -> TinySchedulerC; RealMainP.PlatformInit -> PlatformC;// RealMainP.SoftwareInit = SoftwareInit ;SoftwareInit = RealMainP.SoftwareInit; Boot = RealMainP;…

}

Page 124: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

MainC.nc - Wiring

p.124

§ 하부 컴포넌트 : PlatformC, RealMainP, TinySchedulerC

Page 125: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

RealMainP <-> BlinkTimerM.nc

p.125

module RealMainP {provides interface Boot;uses interface Scheduler;uses interface Init as PlatformInit;uses interface Init as SoftwareInit;

}implementation {

int main() __attribute__ ((C, spontaneous)) {//Init Schedule Queuecall Scheduler.init(); call PlatformInit.init(); //Init CPU’s Pinswhile (call Scheduler.runNextTask()); //Init Sofrware Componentscall SoftwareInit.init(); while (call Scheduler.runNextTask()); // Event Signal to Applicationsignal Boot.booted();call Scheduler.taskLoop();

}}

module BlinkTimerM {uses {

interface Boot;interface Timer<TMilli>;interface Leds;

}}implementation {

event void Boot.booted() {call Timer.startPeriodic(1000);

}event void Timer.fired() {

call Leds.led0Toggle(); //red led toggle}

}

as: Interface나 component의 이름을 변경할때 사용

Page 126: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Boot Interface

p.126

§ Boot interface

– \opt\tinyos-2.x\tos\interfaces\Boot.nc

interface Boot {

event void booted();

}

Page 127: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Timer를 이용한 LED 제어 구조BlinkTimer의 구조 - II

(LedsC.nc)

p.127

Page 128: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

LedsC.nc - Component

p.128

§ 컴포넌트 : MainC, BlinkTimerM, LedsC, new TimerMilliC()– /opt/tinyos-2.x/tos/system/LedsC.nc

configuration LedsC {// 상위 컴포넌트에 ‘Leds’라는 이름의 컴포넌트를 제공.provides interface Leds;

}implementation {

components LedsP, PlatformLedsC;

Leds = LedsP;

LedsP.Init <- PlatformLedsC.Init;LedsP.Led0 -> PlatformLedsC.Led0; // LedsP.nc에서 사용하는 Led0에 대한 실제 구현은 PlatformLedsC.nc 파일// 에 선언되어 있다. LedsP.Led1 -> PlatformLedsC.Led1;LedsP.Led2 -> PlatformLedsC.Led2;

}

Page 129: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

LedsC.nc - Wiring

p.129

§ 하부 컴포넌트 : LedsP, PlatformLedsC

Page 130: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

module LedsP

p.130

§ \opt\tinyos-2.x\tos\system\LedsP.ncmodule LedsP {

// 상위 컴포넌트에 ‘Init’, ‘Leds’라는// 이름의 컴포넌트 제공.provides { interface Init; interface Leds; }uses { interface GeneralIO as Led0;

interface GeneralIO as Led1;interface GeneralIO as Led2; }

}implementation {

// Led port Init Functioncommand error_t Init.init() {

call Led0.makeOutput();call Led0.set();…return SUCCESS;

}async command void Leds.led0On() {

call Led0.clr();DBGLED(0);

}

async command void Leds.led0Off() {call Led0.set();DBGLED(0);

}async command void Leds.led0Toggle() {

call Led0.toggle();DBGLED(0);

}async command uint8_t Leds.get() { … }async command uint8_t Leds.set() { … }…

}

Page 131: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Leds Interface

p.131

§ Leds interface– \opt\tinyos-2.x\tos\interfaces\Leds.nc

interface Leds {async command void led0On();async command void led0Off();async command void led0Toggle();async command void led1On();async command void led1Off();async command void led1Toggle();async command void led2On();async command void led2Off();async command void led2Toggle();async command uint8_t get();async command void set(uint8_t val);

}

Page 132: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Timer를 이용한 LED 제어 구조BlinkTimer의 구조 - III

(TimerMilliC.nc)

p.132

Page 133: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

BlinkTimer 의 구조 III

p.133

§ 컴포넌트 : MainC, BlinkTimerM, LedsC, new TimerMilliC()– /opt/tinyos-2.x/tos/system/TimerMilliC.nc

– generic : 여러 컴포넌트들로부터 동시에 사용되는 컴포넌트들은generic 으로 선언되며, 사용시 new 라는 예약어를 통해선언.

#include “Timer.h” // /opt/tinyos-2.x/tos/system/TimerMilliC.nc

generic configuration TimerMilliC() {

provides interface Timer<TMilli>;

}

implementation {

components TimerMilliP;

Timer = TimerMilliP.TimerMilli[unique(UQ_TIMER_MILLI)];

}

Page 134: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TimerMilliC.nc - Wiring

p.134

§ 하부 컴포넌트 : TimerMilliP

Page 135: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TimerMilliP.nc

p.135

§ \opt\tinyos-2.x\tos\system\TimerMilliP.nc

configuration TimerMilliP {provides interface Timer<TMilli> as TimerMilli[uint8_t id];

}implementation {

components HilTimerMilliC, MainC;MainC.SoftwareInit -> HilTimerMilliC;// 실질적인 구현 코드는 HilTimerMilliC 컴포넌트에 구현.TimerMilli = HilTimerMilliC;

}

Page 136: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Timer Interface

p.136

§ Timer interface– \opt\tinyos-2.x\tos\lib\timer\Timer.nc

interface Timer<precision_tag> {command void startPeriodic(uint32_t dt); // 주기적인 event 발생

command void startOneShot(uint32_t dt); // 한번만 event 발생

command void stop();event void fired();command bool isRunning();command bool isOneShot();command void startPeriodicAt(uint32_t t0, uint32_t dt);command void startOneShotAt(uint32_t t0, uint32_t dt);command uint32_t getNow();command uint32_t gett0();command uint32_t getdt();

}

Page 137: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

3개의 Timer를 이용한LED 제어

p.137

Page 138: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 실습 [최상위 프로그램 제작]

p.138

§ 예제 만들기– 내용

• 타이머3개를 사용하여 3개의 LED를 각각 제어할 수 있도록수정하여라.

§ 폴더 및 파일 만들기– \opt\tinyos-2.x\contrib\zigbex 에

Three_BlinkTimer 폴더 생성

– 해당 폴더에서 3가지 파일 생성• Three_BlinkTimerC.nc : 최상위 컴포넌트의 Configuration

파일

• Three_BlinkTimerM.nc : 최상위 컴포넌트의 Module 파일

• Makefile : 최상위 컴포넌트 이름과 컴파일 패스 설정

Page 139: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

3개의 Timer를 이용한 LED 제어 개요

p.139

§ 3개의 Timer를 이용하여 각각 일정시간마다 정해진 LED를 Toggle 한다.

§ 예제 위치: \opt\tinyos-2.x\contrib\zigbex\Three_BlinkTimer

- Configuration 작성법

- Module 작성법

- 3개의 Timer 사용방법

- LED 제어 방법

Three_BlinkTimerThree_BlinkTimer

MainMain LEDLED

Timer 3Timer 3

Timer 2Timer 2

Timer 1Timer 1

Page 140: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Three_BlinkTimer configuration 파일 설명

p.140

§ Three_BlinkTimerC.ncconfiguration Three_BlinkTimerC{}implementation {// 사용될 컴포넌트 선언

components MainC, Three_BlinkTimerM, LedsC, new TimerMilliC() as TimerC1 , new TimerMilliC() as TimerC2 , new TimerMilliC() as TimerC3 ;

// 인터페이스 연결Three_BlinkTimerM.Boot -> MainC;Three_BlinkTimerM.Leds -> LedsC;Three_BlinkTimerM.Timer1->TimerC1;Three_BlinkTimerM.Timer2->TimerC2;Three_BlinkTimerM.Timer3->TimerC3;

}

Page 141: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Three_BlinkTimer Module 파일 설명

p.141

§ Three_BlinkTimerM.ncmodule Three_BlinkTimerM {

// 사용될 인터페이스 선언uses {

interface Boot;interface Timer<TMilli> as Timer1;interface Timer<TMilli> as Timer2;interface Timer<TMilli> as Timer3;interface Leds;

}}// 구현 부분(실질적인 프로그램)implementation {

// Timer의 동작과 시간 설정 Task 함수 선언task void runThreeTimer();// 프로그램의 시작부분event void Boot.booted() {

post runThreeTimer();}// Timer의 동작과 시간 설정 Task 함수task void runThreeTimer(){

call Timer1.startPeriodic(1000);call Timer2.startPeriodic(2000);call Timer3.startPeriodic(3000);

}

// 설정한 시간이 되었을 때의 동작을 기술event void Timer1.fired() {

// LED0의 동작을 설정call Leds.led0Toggle(); // red led toggle

}event void Timer2.fired() {

// LED1의 동작을 설정call Leds.led1Toggle(); // green led toggle

}event void Timer3.fired() {

// LED2의 동작을 설정call Leds.led2Toggle(); // yellow led toggle

}}

Page 142: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

HOMENET 프로그래밍 실습

Page 143: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

HomeNet 사용시 주의사항

p.143

§ 배선 연결 순서– 제어 보드와 전원선 분리– 전원이 없는 상태에서 배선 및 옵션보드 연결– ZigbeX 전원 공급– AVR-ISP를 이용하여 프로그램 다운로드– 다운로드 완료 후 AVR-ISP 제거

§ AVR_ISP 연결 시 방향 주의– 숫자가 적힌 스티커가 위로 향하도록 연결.

Page 144: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

장비 소개 및 프로그램 설치

p.144

Page 145: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Ubi-HomeNet

p.145

AC Input 보드(4개) Dimmer 보드(1개)

Page 146: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

AC Input Board

p.146

§ AC Input Board– Relay에 제어신호 High로 인가되면 Common과 Relay On 단자

가 서로 연결되며, 제어신호가 인가되지 않을 경우에는Common 과 Relay Off 단자가 서로 연결된다.

– Relay 1번과 2번은 각각 ZigbeX 의 PW5핀과 PW6핀에 연결되어 있다.

Page 147: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Motor Control Board

p.147

§ Motor Control Board– MC(Motor Control)보드는 DC 모터를 구동하기 위한 제어용 보드– 12V AC-DC Converter의 출력을 사용하거나 또는 더 높은 전압을 사

용하기 위한 모터구동 전압 외부 입력 단자를 가지고 있다• 내부 전압 및 외부 전압 선택은 점퍼 J4, J5에 의해서 선택된다.

– 모터를 제어하기 위한 핀은 모터 A의 경우 pw0~pw2이고 모터 B를 제어하는 핀은 pw4~pw6이다.

Page 148: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Dimmer Board

p.148

§ Dimmer Board– 내부적으로 AC 전원의 음과 양 파형의 시작위치를 검출하여,

ZigbeX에서 특정시간 마다 트라이액(Triac)에 제어신호를 보내전등의 밝기를 조절하게 된다.

– AC전압의 파형 검출은 int3핀으로 전등은 on/off 검출은 int1핀으로 입력이 들어가고, 트라이액은 pw5번 핀에 의해서 제어된다.

Page 149: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Ubi-HomeNet

p.149

Dimmer 제어 조명 디지털 도어록 콘센트

가스차단기 가스검출기 ZigbeX Mote

Home 옵션보드 DIO 보드 USB-ISP

Page 150: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Home Option Board

p.150

§ Home Option Board– Home 옵션 보드는 인체 감지를 위한 움직임 감지 센서와 자기

장에 의해 스위치 기능을 할 수 있는 Reed switch로 구성된다.– 인체 감지를 위한 PIR 센서는 적외선 센서 중 열형 센서이다. – Reed switch는 내부의 전자석이 자기장 속에서 자성을 띄게 될

경우 스위치를 당겨서 On 시키고, 자기장을 벗어나면 스위치를밀어서 Off한다.

Page 151: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

DIO Board

p.151

§ DIO Board– DIO 보드는 2개의 Digital Input과 3개의 Digital

Output을 생성할 수 있는 옵션 보드이다. • 아날로그 입력 전압은 전압분배 회로와 인버터를 거쳐서 디지털 신호로 변환된다.

– CPU에서의 디지털 출력은 TR을 거쳐서 전원을 스위칭하도록 동작한다.

• 스위치가 on되면 전압이 단자에 가해지고, off되면 단자에는 0V가 인가된다.

Page 152: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TinyOS 용 홈넷 예제 설치

p.152

§ 설치 파일 경로– CD/HomeNet_TinyOS2 폴더

• hanback_homenet_TinyOS2x.zip• homenet_TinyOS2x_install.sh • 두개의 파일을 VMware 이미지의 /opt 폴더에 복사한

다.

§ 터미널을 실행시켜 다음 명령을 실행한다.– cd /opt– chmod 777 homenet_TinyOS2x_install.sh– chmod 777 hanback_homenet_TinyOS2x.sh– ./homenet_TinyOS2x_install.sh

Page 153: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

HOMENET의 RF통신 구조와아이디 설정법

p.153

Page 154: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

HomeNet 의 RF 통신 구조

p.154

BaseStation 프로그램 다운로드BaseStation 프로그램 다운로드

Page 155: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

HomeNet에서 사용되는 MSG 포멧

p.155

§ HomeNet.h– HomeNet의 예제 폴더에는 USN 통신에서 사용할 메시지

포멧 및 여러 정보들이 정의된 HomeNet.h 파일이 들어있다.

– HomeNet.h 파일의 마지막 부분에서는 메시지 포멧을 정의하는 구조체가 존재한다.

• user_header_t 구조체

id : user_packet_t - 수신노드의주소를의미.sens_data_t - 송신노드의주소를의미.

cmd : COMM_GET = 1(센서정보요청메세지)COMM_SET = 2(동작제어관련메세지)COMM_INT = 3(경보메세지)

sub :홈장치에따라세무적인동작을기술.

length :데이터들의길이정보.

// HomeNet.h파일의끝부분에정의된다.

…1: typedef struct _user_header{2: uint8_t id;3: uint8_t cmd;4: uint8_t sub;5: uint8_t length;6: }user_header_t;

Page 156: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

HomeNet에서 사용되는 MSG 포멧

p.156

• user_packet_t, sens_data_t 구조체7: typedef struct _user_packet{8: user_header_t uh;9: uint8_t data;10: }user_packet_t;

11: typedef struct _sens_data{12: user_header_t uh;13: uint16_t photo;14: uint16_t temp;15: uint16_t humi;16: uint16_t infrared;17: uint16_t battery;18: }sens_data_t;

Page 157: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

무선 통신에서의 노드 아이디

p.157

§ 노드 이아디는 ZigbeX 노드간의 구분을 위해 사용.– 설정 방법 reinstall 명령을 이용해서 설정– cygwin에서 설정할 예제로 이동한다. – “make homenet”를 이용하여 컴파일– “make homenet reinstall.X”를 이용하여 재 컴파일

홈 장비 노드 아이디 Cygwin에서 reinstall 명령

BaseStation 0 make homenet reinstall.0

BasicExample 7 make homenet reinstall.7

Door Lock 31 make homenet reinstall.31

Outlet (콘센트) 61 make homenet reinstall.61

Motion Detector 1 make homenet reinstall.1

Gas Detector 101 make homenet reinstall.101

Gas Shutter 51 make homenet reinstall.51

Dimmer Lamp 181 make homenet reinstall.181

Page 158: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

무선 통신에서의 그룹 아이디

p.158

§ 장비를 사용하는 사용자간의 구분을 위해 사용.– 각 예제의 “Makefile”수정

COMPONENT=Ch2_BaseStation_0C

CFLAGS += -DDEFINED_TOS_AM_GROUP = 0x39

include $(MAKERULES)

Page 159: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TOS MESSAGE 구조

p.159

Page 160: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TOS Message의 구조 -II

p.160

§ Oscilloscope.htypedef nx_struct oscilloscope {

nx_uint16_t version; /* Version of the interval. */nx_uint16_t interval; /* Samping period. */nx_uint16_t id; /* Mote id of sending mote. */nx_uint16_t count; /* The readings are samples count * NREADINGS onwards */nx_uint16_t readings[NREADINGS];

} oscilloscope_t;

Page 161: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

Sync Byte의 문제와 해결방안

p.161

§ Payload Data에 Sync Byte가 포함된 경우– 탈출 문자(0x7E)를 지정하여 Sync Byte가 아님을 표시

§ 탈출문자가 Payload Data에 포함된 경우– 0x7D 다음데이터를 0x20과 exclusive or해서 표시

• 0x7E -> 0x7D 0x5E• 0x7D -> 0x7D 0x5D

– Point-to-Point Protocol - RFC1662참조– Example

• 보내고 싶은 데이터:

– FF FF 20 27 0A xx 7E 7D xx• 실제 전송되는 데이터 :

– 7E 45 00 FF FF 20 27 0A xx 7D 5E 7D 5D xx CRC1 CRC2 7E

Page 162: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TOS Message 확인 - I

p.162

Java Listen 프로그램 실행환경변수 설정 명령어

“export MOTECOM=serial@COMX:57600”프로그램 실행 명령어 (대소문자 주의)

“java net.tinyos.tools.Listen”Sync Byte와 Packet Type 필드 삭제0x7D 0x5E와 0x7D 0x5D의 값을 0x7E 및 0x7D로 치환

Page 163: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

TOS Message 확인 - II

p.163

§ 시리얼 파싱 프로그램으로 확인 가능– CD\Program\SerialTest.exe

• 실제 시리얼로 들어오는 데이터를 출력한다.

Page 164: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

RAW Data Packet

p.164

§ 실행결과 (TinyOS에서 전송)– 7E 45 00 FF FF 00 00 1C 00 93 00 00 01 00 00 01 00

0A 05 0D 05 0E 05 08 05 08 05 1C 05 0A 05 14 05 1A 05 10 05 22 9F 45 7E

• 1 Sync Byte 0x7E (패킷의 시작)• 2 Packet Type 0x45• 3 DispatchID 0x00 (시리얼은 0x00)• 4~N Payload Data 0xFFFF (Dest)

0x0000 (Src)0x1C (Length)0x00 (Group)0x93 (Type)0x00 ~ 0x22 (Data)

CRC16(2Byte) 0x9F, 0x45Sync Byte 0x7E (패킷의 끝)

Page 165: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

움직임 검출

p.165

Page 166: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출

p.166

§ 배선 연결 순서– 제어 보드와 전원선 분리– 전원이 없는 상태에서 배선 및 옵션보드 연결– ZigbeX 전원 공급– AVR-ISP를 이용하여 프로그램 다운로드– 다운로드 완료 후 AVR-ISP 제거

§ AVR_ISP 연결 시 방향 주의– 숫자가 적힌 스티커가 위로 향하도록 연결.

Page 167: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출

p.167

§ 움직임 검출 예제를 위해 필요한 장비들

Page 168: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출 - 배선하기

p.168

§ AC 보드와 ZigbeX 노드와 Home 옵션 보드간의 연결

Page 169: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출

p.169

§ 움직임 검출 예제는 다음 폴더에 존재한다.– /opt/tinyos-2.x/contrib/homenet/Ch3_MotionDetector_1– 폴더 이름의 마지막 숫자는 노드 아이디를 의미한다.– 즉, “make homenet” 후, “make homenet reinstall.1” 명

령을 수행해야 한다.

§ 움직임 검출 예제에 존재하는 파일들– HomeNet.h : HomeNet의 MSG 포멧 및 여러 define 문이 정의

된 해더 파일– Ch3_MotionDetector_1C.nc, Ch3_MotionDetector_1M.nc :

최상위 컴포넌트– PirC.nc, PirDeviceP.nc, PirP.nc, PirSensorC.nc : 옵션 보드를

제어하기 위한 하부 컴포넌트– Makefile : 컴파일 옵션이 정의된 파일

Page 170: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

includes HomeNet;

configuration Ch3_MotionDetector_1C { }implementation { components MainC, Ch3_MotionDetector_1M, LedsC, new TimerMilliC(); // 기본적인 컴포넌트

Ch3_MotionDetector_1M.Boot -> MainC;Ch3_MotionDetector_1M.Timer -> TimerMilliC;Ch3_MotionDetector_1M.Leds -> LedsC;

// 센서 컴포넌트components new SensirionSht11C(), new PhotoSensorC(), new UltraredSensorC(), new VoltageC();

Ch3_MotionDetector_1M.Read_Humi -> SensirionSht11C.Humidity; Ch3_MotionDetector_1M.Read_Temp -> SensirionSht11C.Temperature; Ch3_MotionDetector_1M.Read_Photo -> PhotoSensorC; Ch3_MotionDetector_1M.Read_Ultrared -> UltraredSensorC; Ch3_MotionDetector_1M.Read_Voltage -> VoltageC;

// RF 컴포넌트components ActiveMessageC, new AMSenderC(AM_HOMENET), new AMReceiverC(AM_HOMENET);

Ch3_MotionDetector_1M.CommControl -> ActiveMessageC; Ch3_MotionDetector_1M.AMSend -> AMSenderC; Ch3_MotionDetector_1M.Receive -> AMReceiverC;

// Pir 컴포넌트components new PirSensorC(), ZigbexBusC, new TimerMilliC() as PirTimerC;

Ch3_MotionDetector_1M.Pir -> PirSensorC;Ch3_MotionDetector_1M.PirPw -> ZigbexBusC.PW3;Ch3_MotionDetector_1M.PirTimer -> PirTimerC;

}

[실습 1] 움직임 검출 - Configuration

p.170

Page 171: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출– Module I

p.171

1: module Ch3_MotionDetector_1M {2: uses {3: interface Boot;4: interface Timer<TMilli>;5: interface Leds;6: interface Read<uint16_t> as Read_Humi;7: interface Read<uint16_t> as Read_Temp;

…8: }9 } implementation {

//본예제에서사용되는변수들이선언된곳10: message_t TXData, uartmsg, SensorData, CMDmsg;11: uint16_t myTemp;

…// TinyOS의초기화가끝나면MainC컴포넌트에서처음호출해주는함수

12 : event void Boot.booted() {13: atomic {14: myTemp = 0xFFFF;15: myHumi=0xFFFF;

…16: }

//MotionDetector예제를위해추가된부분17: call PirPw.set(); //Pir Power On18: call PirTimer.startOneShot(50);19: call Timer.startPeriodic(1000);20: call CommControl.start();21: }

// RF통신컴포넌트가완료되었을때호출되는함수22: event void CommControl.startDone(error_t error) {}

// RF통신컴포넌트가종료되었을때호출되는함수23: event void CommControl.stopDone(error_t error) {}

// Timer.startPeriodic 함수에서 설정한 시간이 지났을 때 호출되는 함수

24: event void Timer.fired() {25: call Read_Photo.read();26: }

//조도값을읽어들였을때호출되는함수27: event void Read_Photo.readDone(error_t err, uint16_t val) {28: if (err == SUCCESS)29: myPhoto = val;30: call Read_Temp.read();31: }

//온도값을읽어들였을때호출되는함수32: event void Read_Temp.readDone(error_t err, uint16_t val) {33: if (err == SUCCESS)34: Raw_Temp = val;35: call Read_Humi.read();36: }

//습도값을읽어들였을때호출되는함수37: event void Read_Humi.readDone(error_t err, uint16_t val) {38: if (err == SUCCESS && Raw_Temp!=0xFFFF){39: Raw_Humi = val;40: calc_SHT_(Raw_Humi, Raw_Temp);41: }42: call Read_Voltage.read();43: }

Page 172: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출– Module II

p.172

// 배터리 전압 레벨을 읽어 들였을 때 호출되는 함수44: event void Read_Voltage.readDone(error_t err, uint16_t val) { 45: if (err == SUCCESS) 46: myBattery = val; 47: call Read_Ultrared.read(); 48: }

// 적외선값을 읽어 들였을 때 호출되는 함수49: event void Read_Ultrared.readDone(error_t err, uint16_t val) { 50: if (err == SUCCESS) 51: myUltrared = val; 52: }

// 자신이 측정한 센서값을 sens_data_t 구조체에 넣어 RF로 전송하는 함수

53: task void SendSensorData() { 54: sens_data_t sensorData; 55: atomic { 56: sensorData.uh.id = TOS_NODE_ID; 57: sensorData.uh.cmd = COMM_GET; 58 sensorData.uh.sub = COMM_GET_ALL; 59: sensorData.uh.length = SensorDataLen; 60: sensorData.photo = myPhoto; 61: sensorData.temp = Raw_Temp; 62: sensorData.humi = Raw_Humi; 63: sensorData.infrared = myUltrared; 64: sensorData.battery = myBattery; 65: } 66: memcpy (call AMSend.getPayload(&SensorData),

&sensorData, sizeof(sensorData)); 67: call AMSend.send(AM_BROADCAST_ADDR,

&SensorData, sizeof(sensorData));68: }

// RF 송신이 완료되었을 때 호출되는 함수69: event void AMSend.sendDone(message_t* msg, error_t error) { 70: call Leds.led1Toggle(); 71: }

// RF로부터 패킷을 받게되었을 때 호출되는 함수72: event message_t* Receive.receive(message_t* msg,

void* payload, uint8_t len) { 73: user_header_t *pUH; 74: pUH = (user_header_t *)payload; 75: if(pUH->id != TOS_NODE_ID) 76: return msg; 77: switch(pUH->cmd){ 78: case COMM_GET: 79: if(pUH->sub == COMM_GET_ALL){ 80: post SendSensorData(); 81: } 82: break; 83: default: break; 84: } 85: call Leds.led2Toggle(); 86: return msg;87: }

//본 예제에서 추가된 부분88: event void PirTimer.fired(){ 90: call Pir.read(); 91: }

//본 예제에서 추가된 부분92: event void Pir.readDone(error_t result, uint16_t data) { 93: if(result != SUCCESS) return; 94: if((data>>6) > 300){ 95: user_header_t uh;

Page 173: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출– Module III

p.173

96: uh.id = TOS_NODE_ID; 97: uh.cmd = COMM_INT; 98: uh.sub = COMM_INT_MOTION_DETECT; 99: uh.length = 0; 100: memcpy (call AMSend.getPayload(&CMDmsg),

&uh, sizeof(user_header_t)); 101: if(call AMSend.send ( … )==SUCCESS){102: call PirTimer.stop();103: call PirTimer.startOneShot(1000);104: }else{105: call PirTimer.startOneShot(50);106: }107: }else{108: call PirTimer.startOneShot(50);109: }110: }

Page 174: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출 – 컴파일(1)

p.174

§ 예제 폴더로 경로 이동 후 컴파일

경로이동

기존의 build 폴더 삭제

컴파일 실행

Page 175: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출 – 컴파일(2)

p.175

§ reinstall 을 통해 노드아이디 1번을 부여한다

노드아이디 부여

실행파일 생성 확인

Page 176: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출 - 실습결과

p.176

§ Window Application 실행(UbiHomeNet)– “CD/Program/Win_HomeNet_App/UbiHomeNet.exe”

1.“설정” 버튼을 누른다.1.“설정” 버튼을 누른다.

2.“제어 포트 설정”각자 포트에 맞춰 설정2.“제어 포트 설정”각자 포트에 맞춰 설정

3.“연결” 버튼을 누른다.3.“연결” 버튼을 누른다.

Page 177: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출 - 실습결과

p.177

§ 센서 정보 - ID확인

1.“센서 정보” 버튼을누른다.1.“센서 정보” 버튼을누른다.

3.“Sensor 정보 출력” ID, 프로그램, 온도 조도, 습도

3.“Sensor 정보 출력” ID, 프로그램, 온도 조도, 습도

2.“Refresh” 버튼을누른다.2.“Refresh” 버튼을누른다.

Page 178: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 1] 움직임 검출 - 실습결과

p.178

§ 움직임 검출

– AC 보드에 부착된 Home 옵션 모듈 앞에서 손을 움직여서 아래와 같은 경고 창이 뜨는 것을확인한다.

Page 179: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

DOOR LOCK 제어

p.179

Page 180: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어

p.180

§ 배선 연결 순서– 제어 보드와 전원선 분리– 전원이 없는 상태에서 배선 및 옵션보드 연결– ZigbeX 전원 공급– AVR-ISP를 이용하여 프로그램 다운로드– 다운로드 완료 후 AVR-ISP 제거

§ AVR_ISP 연결 시 방향 주의– 숫자가 적힌 스티커가 위로 향하도록 연결.

Page 181: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어

p.181

§ Door Lock 제어 예제를 위해 필요한 장비들

Page 182: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어 - 배선하기

p.182

§ Door Lock 제어 연결도

Page 183: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어

p.183

§ Door Lock 제어 예제는 다음 폴더에 존재한다.– /opt/tinyos-2.x/contrib/homenet/Ch4_DoorLock_31– 폴더 이름의 마지막 숫자는 노드 아이디를 의미한다.– 즉, “make homenet” 후, “make homenet reinstall.31”

명령을 수행해야 한다.

§ Door Lock 제어 예제에 존재하는 파일들– HomeNet.h : HomeNet의 MSG 포멧 및 여러 define 문이 정의

된 해더 파일– Ch4_DoorLock_31C.nc, Ch4_DoorLock_31M.nc : 최상위 컴포

넌트– RelayC.nc, RelayP.nc, Relay.nc : AC 보드를 제어하기 위한 하

부 컴포넌트– Makefile : 컴파일 옵션이 정의된 파일

Page 184: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어 – 구조체

p.184

§ cmd 필드

enum{//SET DATA//Relay Cotrl//C=Connect D=Disconnect

COMM_SET_RELAY_1D = 0xd, // 1번 비트 0번 Relay OffCOMM_SET_RELAY_1C = 0xe, // 1번 비트 0번 Relay OnCOMM_SET_RELAY_0D = 0xf, // 0번 비트 0번 Relay OffCOMM_SET_RELAY_0C = 0x10, // 0번 비트 0번 Relay On

COMM_SET_RELAY_1D0D = 0x11, // 0번과 1번 모두 Relay OffCOMM_SET_RELAY_1D0C = 0x12, // 0번 Relay Off, 1번 Relay OnCOMM_SET_RELAY_1C0D = 0x13, // 0번 Relay On, 1번 Relay OffCOMM_SET_RELAY_1C0C = 0x14, // 0번 Relay On, 1번 Relay On

};

Page 185: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어 - Configuration

p.185

includes HomeNet;

configuration Ch4_DoorLock_31C { }implementation {

components MainC, Ch4_DoorLock_31M, LedsC, new TimerMilliC(); // 기본적인 컴포넌트Ch4_DoorLock_31M.Boot -> MainC;Ch4_DoorLock_31M.Timer -> TimerMilliC;Ch4_DoorLock_31M.Leds -> LedsC;

// 센서 컴포넌트components new SensirionSht11C(), new PhotoSensorC(), new UltraredSensorC(), new VoltageC();

Ch4_DoorLock_31M.Read_Humi -> SensirionSht11C.Humidity; Ch4_DoorLock_31M.Read_Temp -> SensirionSht11C.Temperature; Ch4_DoorLock_31M.Read_Photo -> PhotoSensorC; Ch4_DoorLock_31M.Read_Ultrared -> UltraredSensorC; Ch4_DoorLock_31M.Read_Voltage -> VoltageC;

// RF 컴포넌트components ActiveMessageC, new AMSenderC(AM_HOMENET), new AMReceiverC(AM_HOMENET);

Ch4_DoorLock_31M.CommControl -> ActiveMessageC; Ch4_DoorLock_31M.AMSend -> AMSenderC; Ch4_DoorLock_31M.Receive -> AMReceiverC;

// Relay 컴포넌트components RelayC, new TimerMilliC() as RelayTimerC;

Ch4_DoorLock_31M.Relay -> RelayC;Ch4_DoorLock_31M.RelayTimer -> RelayTimerC;

}

Page 186: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어 – Module I

p.186

1: module Ch4_DoorLock_31M {2: uses {3: interface Boot;4: interface Timer<TMilli>;5: interface Leds;6: interface Read<uint16_t> as Read_Humi;7: interface Read<uint16_t> as Read_Temp;

…8: }9 } implementation {

//본예제에서사용되는변수들이선언된곳10: message_t TXData, uartmsg, SensorData, CMDmsg;11: uint16_t myTemp;

…// TinyOS의초기화가끝나면MainC컴포넌트에서처음호출해주는함수

12 : event void Boot.booted() {13: atomic {14: myTemp = 0xFFFF;15: myHumi=0xFFFF;

…17: }

//본예제를위해새로추가된부분18: call Relay.relay_init(); //Relay 컴포넌트초기화

19: call Timer.startPeriodic(1000); 20: call CommControl.start(); 21: }

// RF통신컴포넌트가완료되었을때호출되는함수22: event void CommControl.startDone(error_t error) {}

// RF통신컴포넌트가종료되었을때호출되는함수23: event void CommControl.stopDone(error_t error) {}

// Timer.startPeriodic 함수에서 설정한 시간이 지났을 때 호출되는 함수

24: event void Timer.fired() {25: call Read_Photo.read();26: }

//조도값을읽어들였을때호출되는함수27: event void Read_Photo.readDone(error_t err, uint16_t val) {28: if (err == SUCCESS)29: myPhoto = val;30: call Read_Temp.read();31: }

//온도값을읽어들였을때호출되는함수32: event void Read_Temp.readDone(error_t err, uint16_t val) {33: if (err == SUCCESS)34: Raw_Temp = val;35: call Read_Humi.read();36: }

//습도값을읽어들였을때호출되는함수37: event void Read_Humi.readDone(error_t err, uint16_t val) {38: if (err == SUCCESS && Raw_Temp!=0xFFFF){39: Raw_Humi = val;40: calc_SHT_(Raw_Humi, Raw_Temp);41: }42: call Read_Voltage.read();43: }

Page 187: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

// 배터리 전압 레벨을 읽어 들였을 때 호출되는 함수44: event void Read_Voltage.readDone(error_t err, uint16_t val) { 45: if (err == SUCCESS) 46: myBattery = val; 47: call Read_Ultrared.read(); 48: }

// 적외선값을 읽어 들였을 때 호출되는 함수49: event void Read_Ultrared.readDone(error_t err, uint16_t val) { 50: if (err == SUCCESS) 51: myUltrared = val; 52: }

// 자신이 측정한 센서값을 sens_data_t 구조체에 넣어 RF로 전송하는 함수

53: task void SendSensorData() { 54: sens_data_t sensorData; 55: atomic { 56: sensorData.uh.id = TOS_NODE_ID; 57: sensorData.uh.cmd = COMM_GET; 58 sensorData.uh.sub = COMM_GET_ALL; 59: sensorData.uh.length = SensorDataLen; 60: sensorData.photo = myPhoto; 61: sensorData.temp = Raw_Temp; 62: sensorData.humi = Raw_Humi; 63: sensorData.infrared = myUltrared; 64: sensorData.battery = myBattery; 65: } 66: memcpy (call AMSend.getPayload(&SensorData),

&sensorData, sizeof(sensorData)); 67: call AMSend.send(AM_BROADCAST_ADDR,

&SensorData, sizeof(sensorData));68: }

[실습 2] Door Lock 제어 – Module II

p.187

// RF 송신이 완료되었을 때 호출되는 함수69: event void AMSend.sendDone(message_t* msg, error_t error) { 70: call Leds.led1Toggle(); 71: }

// RF로부터 패킷을 받게되었을 때 호출되는 함수72: event message_t* Receive.receive(message_t* msg, void* payload, uint8_t len) { 73: uint16_t Relay_time = 0xffff; 74: user_header_t *pUH; 75: pUH = (user_header_t *)payload; 76: if(pUH->id != TOS_NODE_ID) 77: return msg; 78: switch(pUH->cmd){ 79: case COMM_GET: 80: if(pUH->sub == COMM_GET_ALL){ 81: post SendSensorData(); 82: } 83: break;

//[추가된 부분]84: case COMM_SET : 85: Relay_time = 0xffff; 86: if(len >sizeof(user_header_t)){ 87: uint16_t *ptime=(uint16_t*)(payload +

sizeof(user_header_t));88: Relay_time = *ptime; 89: } 90: if(pUH->sub == COMM_SET_RELAY_1D){ 91: RelayChange(NOT_CONTROL,RELAY_OFF,

Relay_time); 92: } 93: else if(pUH->sub==COMM_SET_RELAY_1C){ 94: RelayChange(NOT_CONTROL,RELAY_ON,

Relay_time); 95: }

Page 188: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어 – Module II

p.188

96: else if(pUH->sub==COMM_SET_RELAY_0D){ 97: RelayChange(RELAY_OFF,NOT_CONTROL,

Relay_time); 98: } 99: else if(pUH->sub==COMM_SET_RELAY_0C){ 100: RelayChange(RELAY_ON,NOT_CONTROL,

Relay_time); 101: } 102: else if(pUH->sub==COMM_SET_RELAY_1D0D){ 103: RelayChange(RELAY_OFF,RELAY_OFF,

Relay_time); 104: } 105: else if(pUH->sub==COMM_SET_RELAY_1D0C){ 106: RelayChange(RELAY_ON,RELAY_OFF,

Relay_time); 107: } 108: else if(pUH->sub == COMM_SET_RELAY_1C0D){ 109: RelayChange(RELAY_OFF,RELAY_ON,

Relay_time); 110: } 111: else if(pUH->sub==COMM_SET_RELAY_1C0C){ 112: RelayChange(RELAY_ON,RELAY_ON,

Relay_time); 113: } 114: break; 115: default: break; 116: } 117: call Leds.led2Toggle(); 118: return msg;119: }

120: void RelayChange (uint8_t relay0, uint8_t relay1, uint16_t time){ 121: if(relay1==1) 122: call Relay.relay_set1(); 123: else if(relay1 ==0) 124: call Relay.relay_clear1(); 125: if(relay0==1) 126: call Relay.relay_set0(); 127: else if(relay0==0) 128: call Relay.relay_clear0(); 129: if(time != 0xFFFF) 130: call RelayTimer.startOneShot(time); 131: }

132: event void RelayTimer.fired(){ 133: call Relay.relay_clear0(); 134: call Relay.relay_clear1(); 135: }

Page 189: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어 – 컴파일(1)

p.189

§ 예제 폴더로 경로 이동 후 컴파일

경로이동

기존의 build 폴더 삭제

컴파일 실행

Page 190: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어 – 컴파일(2)

p.190

§ reinstall 을 통해 노드아이디 31번을 부여한다

노드아이디 부여

실행파일 생성 확인

Page 191: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어 - 실습결과

p.191

§ Window Application 실행(UbiHomeNet)– “CD/Program/Win_HomeNet_App/UbiHomeNet.exe”

1.“설정” 버튼을 누른다.1.“설정” 버튼을 누른다.

2.“제어 포트 설정”각자 포트에 맞춰 설정2.“제어 포트 설정”각자 포트에 맞춰 설정

3.“연결” 버튼을 누른다.3.“연결” 버튼을 누른다.

Page 192: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어 - 실습결과

p.192

§ 센서 정보 - ID확인

1.“센서 정보” 버튼을누른다.1.“센서 정보” 버튼을누른다.

3.“Sensor 정보 출력” ID, 프로그램, 온도 조도, 습도

3.“Sensor 정보 출력” ID, 프로그램, 온도 조도, 습도

2.“Refresh” 버튼을누른다.2.“Refresh” 버튼을누른다.

Page 193: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 2] Door Lock 제어 - 실습결과

p.193

§ Door Lock 버튼을 누르면 Door Lock 이열기와 닫기를 반복한다.

1.“제어” 버튼을누른다.1.“제어” 버튼을누른다.

2.“Door Lock” 버튼을누른다.2.“Door Lock” 버튼을누른다.

Page 194: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

움직임 검출 기반의DOOR LOCK 제어

p.194

Page 195: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 3] 움직임 검출 기반의 Door Lock 제어

p.195

§ 배선 연결 순서– 제어 보드와 전원선 분리– 전원이 없는 상태에서 배선 및 옵션보드 연결– ZigbeX 전원 공급– AVR-ISP를 이용하여 프로그램 다운로드– 다운로드 완료 후 AVR-ISP 제거

§ AVR_ISP 연결 시 방향 주의– 숫자가 적힌 스티커가 위로 향하도록 연결.

Page 196: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 3] 움직임 검출 기반의 Door Lock 제어

p.196

§ 움직임 검출기반의 Door Lock 제어 예제를 위해필요한 장비들

Page 197: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 3] 움직임 검출 기반의 Door Lock 제어

p.197

§ AC 보드와 ZigbeX 노드와Home 옵션 보드간의 연결

§ Door Lock 제어 연결도

Page 198: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 3] 움직임 검출 기반의 Door Lock 제어

p.198

§ 움직임 검출 기반의 Door Lock 제어 예제는 다음 폴더에 존재한다.– /opt/tinyos-2.x/contrib/homenet/Ch9_MotionDetector_DoorLock

• Ch3_MotionDetector_1, Ch4_DoorLock_31

– 각각의 모트에 각각의 아이디를 부여해서 프로그램한다.

§ 움직임 검출 기반의 Door Lock 제어 예제에 존재하는 파일들– HomeNet.h: HomeNet의 MSG 포멧 및 여러 define 문이 정의된 해더

파일– Ch3_MotionDetector_1 폴더

– Ch3_MotionDetector_1C.nc, Ch3_MotionDetector_1M.nc : 최상위 컴포넌트– PirC.nc, PirDeviceP.nc, PirP.nc, PirSensorC.nc : 옵션 보드를 제어하기 위한 하부 컴

포넌트

– Ch4_DoorLock_31 폴더– Ch4_DoorLock_31C.nc, Ch4_DoorLock_31M.nc : 최상위 컴포넌트– RelayC.nc, RelayP.nc, Relay.nc : AC 보드를 제어하기 위한 하부 컴포넌트

Page 199: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 3] 움직임 검출 기반의 Door Lock 제어

p.199

§ 움직임 검출시 Home 옵션 보드에서 만들어지는 패킷의 형태

– ID : 자신의 아이디를 넣는다.(1번)– CMD : command 타입을 넣는다.(인터럽트)– SUB : 인터럽트의 종류를 넣는다.(움직임 감지)– Length : 데이터의 길이를 넣는다.( 0 Byte)

§ Door Lock 보드에서 노드 아이디가 1번인 패킷이 들어오면 처리해주는 부분을 추가한다. – Ch4_DoorLock_31M.nc 파일을 수정

ID CMD SUB Length

1 COMM_INT COMM_INTMOTION_DETECT

0

Page 200: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 3] 움직임 검출 기반의 Door Lock 제어

p.200

Ch4_DoorLock_31M.nc 수정

// RF로부터 패킷을 받게되었을 때 호출되는 함수10: event message_t* Receive.receive(message_t* msg, void* payload, uint8_t len) { 11: uint16_t Relay_time = 0xffff; 12: user_header_t *pUH; 13: pUH = (user_header_t *)payload;

<이번 실습을 위해 추가되는 부분>14: if(pUH->id == 1){15: switch(pUH->cmd){16: case COMM_INT: 17: if(pUH->sub == COMM_INT_MOTION_DETECT) { 18: RelayChange(NOT_CONTROL,RELAY_ON, 500); 19: } 20: break; 21: }22: return msg; 23: }

24: if(pUH->id != TOS_NODE_ID) 25: return msg;

Page 201: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 3] 움직임 검출 기반의 Door Lock 제어

p.201

§ Window Application 실행(UbiHomeNet)– “CD/Program/Win_HomeNet_App/UbiHomeNet.exe”

1.“설정” 버튼을 누른다.1.“설정” 버튼을 누른다.

2.“제어 포트 설정”각자 포트에 맞춰 설정2.“제어 포트 설정”각자 포트에 맞춰 설정

3.“연결” 버튼을 누른다.3.“연결” 버튼을 누른다.

Page 202: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

§ 센서 정보 - ID확인

[실습 3] 움직임 검출 기반의 Door Lock 제어

p.202

1.“센서 정보” 버튼을누른다.1.“센서 정보” 버튼을누른다.

3.“Sensor 정보 출력” ID, 프로그램, 온도 조도, 습도

3.“Sensor 정보 출력” ID, 프로그램, 온도 조도, 습도

2.“Refresh” 버튼을누른다.2.“Refresh” 버튼을누른다.

Page 203: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

[실습 3] 움직임 검출 기반의 Door Lock 제어

p.203

§ AC 보드에 부착돤 Home 옵션 모듈 앞에서손을 움직여서 아래와 같은 경고 창이 뜨는것을 확인.

§ Door Lock이 열고 닫힘을 확인.

Page 204: USN HomeNet 응용 강의자료 - 01099496543.tistory.com... · 본문서의저작권은한백전자에있으며, 허락없이무단복제및전제를불허합니다. USN HomeNet응용

본 문서의 저작권은 한백전자에 있으며, 허락 없이 무단 복제 및 전제를 불허합니다.

End

[Q & A]

p.204