Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
ADIIoT(Arduino Do It IoT) KIT
Arduino Library Manual[ ADIIoT_Master.zip ]
[ ADIIoT_Master 라이브러리 예제 목록 ]
E01.ADIIoT_TempHumi : 스마트홈 쉴드 온습도센서 예제
E02.ADIIoT_Light : 스마트홈 쉴드 조도센서 예제
E03.ADIIoT_Sound : 스마트홈 쉴드 소리감지센서 예제
E04.ADIIoT_Hall : 스마트홈 쉴드 자석/자기감지센서 예제
E05.ADIIoT_LEDButton : 스마트홈 쉴드 LED 버튼 예제
E06.ADIIoT_WiFi_AP : IoT 쉴드의 WiFi 모듈 AP장치 연결 예제
E07.ADIIoT_WiFi_MQTT : IoT 쉴드의 WiFi 모듈 MIK 플랫폼 연결 예제
E08.ADIIoT_WiFi_TCPClient : IoT 쉴드의 WiFi 모듈 TCP 클라이언트 예제
E09.ADIIoT_WiFi_UDPClient : IoT 쉴드의 WiFi 모듈 UDP 클라이언트 예제
E10.ADIIoT_WiFi_WebServer : IoT 쉴드의 WiFi 모듈 Web 서버 예제
E11.ADIIoT_WiFi_WebClient : IoT 쉴드의 WiFi 모듈 Web 클라이언트 HTTP Request 예제
E12.ADIIoT_WiFi_BLE : IoT 쉴드의 블루투스 모듈 동작 테스트 예제
E13.ADIIoT_WiFi_Beacon : IoT 쉴드의 블루투스 모듈 iBeacon 모드 예제
E14.ADIIoT_TempHumi_Light_MQTT : 온/습도, 조도 센서 데이터 MIK 플랫폼 전송 예제
E15.ADIIoT_Sound_Hall_MQTT : 소리감지, 자석 감지 데이터 MIK 플랫폼 전송 예제
E16.ADIIoT_LEDButton_MQTT : LED 제어 및 버튼 이벤트 데이터 MIK 플랫폼 전송 예제
E17.ADIIoT_TempHumi_WebServer : IoT 쉴드의 WiFi 모듈을 웹서버로 웹 브라우저를 통해 온/습도 데이터를 확인하는 예제
E18.ADIIoT_Sound_Hall_TCPClient : C# TCP 서버 예제와 연결하여 소리감지, 자석 감지 데이터를 전송하는 예제
E19.ADIIoT_TempHumi_Light_UDPClient : C# UDP 서버 예제와 연결하여 온/습도, 조도 센서 데이터를 전송하는 예제
E20.ADIIoT_LEDButton_BLE : 안드로이드 BLE 예제와 연결하여 LED on/off 신호를 송수신하는 예제
E21.ADIIoT_TempHumi_Beacon : IoT 쉴드의 블루투스 모듈 iBeacon 모드로 설정하여 온/습도 비콘 데이터를 전송하는 예제
2018 Copyright PHYSICOMTECH Inc. All rights reserved. 피지컴텍
1. ADIIoT 아두이노 라이브러리 API
1-1. 블루투스 API
Ÿ 라이브러리 헤더파일 : ADIIoTBLE.h
구분 함수 설명
1 Begin() 아두이노 우노와 Bluetooth 모듈을 연결하기 위한 매소드
2 Version() Bluetooth 모듈의 펨워어 버전을 가져오기 위한 매소드
3 Reset() Bluetooth 모듈의 설정값을 저장하고 재시작하는 매소드
4 Renew() Bluetooth 모듈을 공장초기화 하기 위한 매소드
5 getAddress() Bluetooth 모듈의 MAC Address를 가져오기 위한 매소드
6 getUUID() Bluetooth 모듈의 UUID를 가져오기 위한 매소드
7 setUUID(String _name)Bluetooth 모듈의 UUID를 설정하기 위한 매소드
_name 지정할 디바이스 Name(ex. setUUID(“ADIIoT”) )
8 getName() Bluetooth 모듈의 이름을 가져오기 위한 매소드
9 setName(String _name) Bluetooth 모듈의 이름을 설정하기 위한 매소드
10 setAdvertisingType(String _para)
Bluetooth 모듈의 광고 유형을 설정하기 위한 매소드
_para
0 : Advertising, ScanResponse, 연결 가능, 1 : 1.28sec 안에 마지막 연결장
치만 연결 허용 2 : Advertising, ScanResponse 만 허용, 3 : Advertising 만
허용
11 setDeployMode(String _para)Bluetooth 모듈이 iBeacon으로 동작시
_para 1 : 브로드캐스트 및 스캔 허용, 2 : 브로드 캐스트만 허용
12 iBeacon() Bluetooth 모듈을 iBeacon으로 동작하고 있는 확인하기 위한 매소드
13 iBeacon(String _mode)Bluetooth 모듈이 iBeacon으로 설정하거나 해지하기 위한 매소드
_mode 0 : iBeacon 켜기, 1 : iBeacon 끄기
14 iBeaconUUID0(char* _uuid0)Bluetooth 모듈의 iBeacon 첫번째 UUID를 설정하기 위한 매소드
_uuid0 (00000001 ~ FFFFFFFE)
15 iBeaconUUID1(char* _uuid1)Bluetooth 모듈의 iBeacon 두번째 UUID를 설정하기 위한 매소드
_uuid1 (00000001 ~ FFFFFFFE)
16 iBeaconUUID2(char* _uuid2)Bluetooth 모듈의 iBeacon 세번째 UUID를 설정하기 위한 매소드
_uuid2 (00000001 ~ FFFFFFFE)
17 iBeaconUUID3(char* _uuid3)Bluetooth 모듈의 iBeacon 네번째 UUID를 설정하기 위한 매소드
_uuid3 (00000001 ~ FFFFFFFE)
18 iBeaconMajor(char* _major)Bluetooth 모듈의 iBeacon Major 값을 설정하기 위한 매소드
_major (0001 ~ FFFE)
19 iBeaconMinor(char* _minor)Bluetooth 모듈의 iBeacon Minor 값을 설정하기 위한 매소드
_minor (0001 ~ FFFE)
20 interval(String _para)Bluetooth 모듈이 iBeacon으로 동작할 경우 광고 간격을 설정하기 위한 매소드
_para (0(100ms) ~ F(7000ms))
21 BLECommand(String _ATCommand)아두이노 스케치에서 AT 명령어를 Bluetooth 모듈로 전달하거나 Bluetooth와 커넥팅된 디바
이스로 메시지를 전송하기 위한 매소드
22 BLEReply()AT 명령어 전달 후 Bluetooth 모듈로부터 응답 메시지를 수신하기 위한 매소드
return 응답 메시지를 시리얼 모니터로 출력
23 BLEReturn(char* reply, int _bufferSize)AT 명령어 전달 후 Bluetooth 모듈로부터 받는 응답 메시지를 String 값으로 반환해주는 매
소드(char 배열과 배열 사이즈를 매개변수로 전달)
[ 1/42 ]
1-2. 와이파이 API
Ÿ 라이브러리 헤더파일 : ADIIoTWiFi.h
구분 함수 설명
Set up
setAP(String _ssid, String _pass) WiFi 모듈로 AP 정보 설정 매소드
wifiState()WiFi 모듈의 AP 연결 상태를 가져오는 매소드
return true : 연결됨, false : 연결 끊김
getIPAddress()WiFi 모듈이 AP에 연결된 Local IP를 호출하는 매소드
return String
MQTT
setMQTTInfo() ADIIoT 플랫폼 정보를 WiFi 모듈에 설정하기 위한 매소드
MQTTConnect(String _mqttID)WiFi 모듈을 ADIIoT 플랫폼에 접속하는 매소드
_mqttID ADIIoT 플랫폼 사이트에서 생성한 사용자 ID
setMQTTSubscribe(String _subTopic)ADIIoT 플랫폼으로부터 데이터를 수신하고자 하는 특정 토픽을 동록하는 매소드
_subTopic 데이터를 수신하고자 하는 특정 토픽의 이름
MQTTPublish(String _pubTopic, String
_deviceID, String _data)
ADIIoT 플랫폼의 특정 토픽으로 데이터를 송신하기 위한 매소드
_pubTopic 데이터를 송신하고자 하는 측정 토픽의 이름
_deviceID 데이터를 송신하고자 하는 디바이스의 이름
_data _pubTopic 토픽으로 송신하고자 하는 데이터 값
makeTopic(String _userID, String
_project, String _topic)
사용자 정보를 조합하여 MQTT 표준 프로토콜의 토픽 구조를 생성하기 위한 매소드
MQTT Topic
구조_userID/_project/_topic
AdiioTRecv()ADIIoT 플랫폼으로부터 데이터를 수신하기 위한 매소드
return true : 데이터 수신, false : 데이터 미수신
getDevice()수신한 데이터에 대한 디바이스 이름을 호출하는 매소드
Return String
getData()수신한 데이터를 호출하는 매소드
Return String
TCP
Client
TCPConnect(String _serverIP, String
_ServerPort
WiFi 모듈을 TCP Client로 TCP Server에 연결시키기 위한 매소드
_serverIP 연결하고자 하는 TCP Server의 IP
_ServerPort 연결하고자 하는 TCP Server의 Port
TCPSend(String _data)연결된 TCP Server로 데이터를 송신하기 위한 매소드
_data 전송하고자 하는 데이터 문자열
UDP
Client
udpSend(String _ip, String _port, String
_data)WiFi 모듈을 UDP Client로 설정하여 UDP Server로 데이터를 송신하는 위한 매소드
setUDPReceiver(String _port) UDP Server로 부터 데이터를 수신하기 위한 Port를 지정하는 매소드
Web
Server
webServerBegin() WiFi 모듈을 웹서버로 동작시키기 위한 매소드
webServerAvailable() 웹브라우저를 통해 WiFi 모듈로 접속이 이루어지는지 체크하는 매소드
webServerContent(String _data) 웹페이지를 구성하는 HTML 코드를 WiFi 모듈로 전달하기 위한 매소드endContent() 웹페이지를 구성하는 HTML 코드를 전부 전송하였음을 WiFi 모듈로 전달하기 위한 매소드
Web
Client
setRequestInfo(String _ip, String _port)웹서버로부터 데이터를 리퀘스트 하기 위한 웹서버 정보를 설정하기 위한 매소드
(매개변수 없이 사용할 경우 ADIIoT 플랫폼 정보 설정)
webRequest(String _url) 웹서버로부터 데이터를 리퀘스트 하기 위한 URL을 지정하는 매소드
RequestTimeOutCheck() 데이터 수신을 위한 5초간 응답 대기를 설정하기 위한 매소드
WiFiRecvTCP, UDP 통신을 통해 수신되는 데이터를 수신하기위한 매소드
Return String
SubStr(String * _arry, char _token, String _data) 수신된 데이터를 구분자(token)에 따라 파싱하기 위한 매소드
[ 2/42 ]
2. ADIIoT 아두이노 라이브러리 예제
E01.ADIIoT_TempHumi
Ÿ ‘스마트홈 센서 쉴드’와 ‘온습도센서’를 활용하여 시리얼 모니터를 통해 온도와 습도 데이터를 출력하는 예제
가. 준비사항
Ÿ 온습도센서(DHT-11), 아두이노 우노, 스마트홈 센서 쉴드
나. 연결 방법
① ‘스마트홈 센서 쉴드’를 ‘아두이노 우노’에 결합한다.(‘스마트홈 센서 쉴드’ 없이 센서를 점프선으로 아두이노 우노에
직접 연결하여 사용할 수 있음)
② ‘스마트홈 센서 쉴드’의 ‘DHT-11’ 커넥터에 ‘온습도센서’를 연결한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E01.ADIIoT_TempHumi 예제를 실행한다.
다. 실행 결과
[ 3/42 ]
라. 예제 설명
Ÿ DHT11 온도센서를 사용하기 위해 1행과 같이 DHT11 라이브러리를 스케치에 포함 시켜준다.
Ÿ 온도센서를 스마트 홈 쉴드에 연결하고 연결한 디지털 핀 번호를 3행과 같이 상수로 설정한다.
Ÿ 5행은 DHT11 라이브러리를 사용하기 위해 DHT11 객체를 생성한다. 2.에서 지정한 디지털 핀의 정보를 매개변수로
넘겨준다.
Ÿ 8행은 아두이노를 통해 읽어 들인 온습도 센서의 데이터를 시리얼 모니터를 통해 보기 위해 begin함수를 통해 시리
얼 통신을 사용하겠다고 선언한다. 9600은 baudRate로 통신 속도를 의미한다. 스케치에 지정한 통신속도와 시리얼
통신을 하는 기기의 통신속도가 일치해야 통신이 가능하다.
Ÿ 12~13행은 온습도를 담을 변수와 온습도를 읽어 들이지 못할 경우 에러 코드를 담기 위한 변수를 선언한다.
Ÿ 15행의 read 매소드는 온도와 습도 데이터를 읽어 들이는 소드로 정상적으로 데이터를 읽어 들일 경우 return 값으
로 0을 반환하고 정상적으로 읽어 들이지 못한 경우 에러에 대한 정수 데이터를 반환한다.
Ÿ 16~20, 22~23행은 읽어 들인 데이터를 print, println 매소드를 통해 시리얼 모니터로 출력한다. print, println은 배열
을 제외한 모든 변수의 데이터를 출력하고 println은 데이터를 출력한 후 다음줄로 개행 해준다.
Ÿ delay 매소드는 아두이노의 동작을 잠시 멈추게 하는 매소드로 1/1000초 단위로 멈추게 한다. 26행과 같이
delay(1000)을 지정할 경우 루프 동작이 약 1초에 한번씩 반복하게 된다. (delay를 1초 이하로 설정할 경우 온습도
데이터를 제대로 읽어 들이지 못할 수 있음)
[ 4/42 ]
E02.ADIIoT_Light
Ÿ ‘스마트홈 센서 쉴드’와 ‘조도센서’를 활용하여 시리얼 모니터를 통해 조도 데이터를 출력하는 예제
가. 준비사항
Ÿ 조도센서(BH1750), 아두이노 우노, 스마트홈 센서 쉴드
나. 연결 방법
① ‘스마트홈 센서 쉴드’를 ‘아두이노 우노’에 결합한다.(‘스마트홈 센서 쉴드’ 없이 센서를 점프선으로 아두이노 우노에
직접 연결하여 사용할 수 있음)
② ‘스마트홈 센서 쉴드’의 ‘BH1750’ 커넥터에 ‘조도센서’를 연결한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E02.ADIIoT_Light 예제를 실행한다.
다. 실행 결과
[ 5/42 ]
라. 예제 설명
Ÿ I2C 인터페이스를 사용하는 BH1750 조도 센서를 사용하기 위해 1~2행과 같이 Wire(I2C 라이브러리), BH1750 라이
브러리를 스케치에 포함시켜준다.
Ÿ 4행은 조도 센서를 사용하기 위해 BH1750 라이브러리에 대한 객체를 생성해준다.
Ÿ 8행은 begin함수를 통해 I2C통신을 초기화하고, 활성화 한다.
Ÿ 14행은 조도 데이터를 담기 위해 변수를 선언하고 readLightLevel 매소드를 이용해 측정되는 조도 데이터를 읽어 들
인다.
Ÿ 15~17행은 읽어 들인 조도 데이터를 시리얼모니터에 출력해준다.
[ 6/42 ]
E03.ADIIoT_Sound
Ÿ ‘스마트홈 센서 쉴드’와 ‘소리감지센서’를 활용하여 소리가 감지되면 시리얼 모니터를 통해 “Sound Detected”라는 문
자열을 출력하는 예제
가. 준비사항
Ÿ 소리감지센서(LM386), 아두이노 우노, 스마트홈 센서 쉴드
나. 연결 방법
① ‘스마트홈 센서 쉴드’를 ‘아두이노 우노’에 결합한다.(‘스마트홈 센서 쉴드’ 없이 센서를 점프선으로 아두이노 우노에
직접 연결하여 사용할 수 있음)
② ‘스마트홈 센서 쉴드’의 ‘LM386’ 커넥터에 ‘소리감지센서’를 연결한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E03.ADIIoT_Sound 예제를 실행한다.
다. 실행 결과
※ 소리 감지가 제대로 이루어지지 않을 경우 센서의 가변저항을 조절하여 감지 감도를 조절하세요.
[ 7/42 ]
라. 예제 설명
Ÿ 소리감지센서를 스마트 홈 쉴드에 연결하고 연결한 디지털 핀 번호를 1행과 같이 상수로 설정한다.
Ÿ 소리감지센서의 소리 감지 여부를 저장할 변수를 3행과 같이 선언한다.
Ÿ 8행은 소리감지 센서에 연결한 디지털 핀을 통해 데이터를 입력받기위해 디지털 핀 번호와 INPUT(읽기) 모드로 입
력한다. 출력 모드로 사용할 INPUT 자리에 OUTPUT을 넣으면 된다.
Ÿ digitalRead 매소드는 디지털 데이터를 읽어 들이기 위한 매소드로 매개변수로 디지털 핀 번호를 넘겨준다. 11행과
같이 digitalRead 매소드에 소리감지센서를 연결한 디지털 핀을 설정하여 디지털 데이터를 읽어 들인다.
Ÿ 15~17행은 읽어 들인 데이터가 HIGH일 경우 시리얼에 모니터에 “Sound Detected”를 출력한다.
[ 8/42 ]
E04.ADIIoT_Hall
Ÿ ‘스마트홈 센서 쉴드’와 ‘자석/자기감지센서’를 활용하여 자석이 접촉되면 시리얼 모니터를 통해 “Magnetic Detected”
라는 문자열을 출력하는 예제
가. 준비사항
Ÿ 자석/자기감지센서(KY-003), 아두이노 우노, 스마트홈 센서 쉴드
나. 연결 방법
① ‘스마트홈 센서 쉴드’를 ‘아두이노 우노’에 결합한다.(‘스마트홈 센서 쉴드’ 없이 센서를 점프선으로 아두이노 우노에
직접 연결하여 사용할 수 있음)
② ‘스마트홈 센서 쉴드’의 ‘KY-003’ 커넥터에 ‘자석/자기감지센서’를 연결한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E04.ADIIoT_Hall 예제를 실행한다.
다. 실행 결과
[ 9/42 ]
라. 예제 설명
Ÿ 자석/자기감지센서를 스마트 홈 쉴드에 연결하고 연결한 디지털 핀 번호를 1행과 같이 상수로 설정한다.
Ÿ 3행에서는 자석/자기감지센서에 자기 감지 여부를 저장할 변수를 선언한다.
Ÿ 7행은 자석/자기감지센서의 데이터를 읽어 들이기 위해 pinMode를 INPUT으로 설정한다.
Ÿ 11행은 digitalRead 매소드에 자석/자기감지센서를 연결한 디지털 핀 번호를 설정하고 읽어 들인 데이터를 변수에
저장한다.
Ÿ 13~15행은 HallState 변수의 데이터 값이 LOW일 경우 시리얼 모니터를 통해 Magnetic Detected를 출력한다.
[ 10/42 ]
E05.ADIIoT_LEDButton
Ÿ ‘스마트홈 센서 쉴드’와 ‘LED버튼모듈’을 활용하여 버튼 입력 시 LED가 켜지는 예제
가. 준비사항
Ÿ LED버튼모듈, 아두이노 우노, 스마트홈 센서 쉴드, GROVE 케이블
나. 연결 방법
① ‘스마트홈 센서 쉴드’를 ‘아두이노 우노’에 결합한다.(‘스마트홈 센서 쉴드’ 없이 센서를 점프선으로 아두이노 우노에
직접 연결하여 사용할 수 있음)
② ‘스마트홈 센서 쉴드’의 ‘LED Push Button’ 커넥터에 ‘LED버튼모듈’을 ‘Grove 케이블’로 연결한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E05.ADIIoT_LEDButton 예제를 실행한다.
다. 실행 결과
[ 11/42 ]
라. 예제 설명
Ÿ LEDButton을 스마트 홈 쉴드에 연결하고 연결한 디지털 핀 번호를 1~2행과 같이 상수로 설정한다.
Ÿ 5,6행은 LEDButton의 LED와 Button을 제어하기 위해 입출력에 따라 INPUT, OUTPUT으로 설정해준다.
Ÿ 10행은 INPUT 모드로 동작하는 버튼의 입력값을 읽어 변수에 저장한다.
Ÿ digitalWrite 함수는 디지털 핀으로 출력을 전달하며 매개 변수로는 핀 번호와 HIGH, LOW 신호를 전달한다.
Ÿ 12~16행은 버튼의 입력값이 HIGH이면 LED를 켜고, 입력값이 LOW이면 LED를 끄는 기능을 한다.
[ 12/42 ]
E06.ADIIoT_WiFi_AP
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신을 활용하여 WiFi 모듈을 AP(Access Point)장치에 연결하고, 연결된 WiFi 모듈의
‘Local IP’를 확인하는 예제
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E06.ADIIoT_WiFi_AP 예제를 실행한다.
※ 주의 : 연장핀을 연결하지 않고 바로 아두이노 우노에 결합할 경우
우노의 USN 커넥터 부분에 쉴드 뒷면이 접촉되어 쇼트가 발생합니다. 주의하세요.
다. 실행 결과
[ 13/42 ]
라. 예제 설명
[ 2Page ADIIoT WiFi API(ADIIoTWiFi.h) 참조 ]
Ÿ ADIIoT 사물인터넷 쉴드의 WiFi 모듈을 사용하기 위해 1행과 같이 ADIIoTWiFi 헤더 파일을 스케치에 포함 시켜준다.
Ÿ ADIIoTWiFi 라이브러리를 사용하기 위해 ADIIoTWiFi의 객체를 생성 해준다.
Ÿ 5~6행은 AP 장치의 접속에 필요한 SSID, Password를 입력해준다.
Ÿ setAP 매소드는 WiFi 모듈로 접속할 AP의 정보를 전달하는 매소드로 12행과 같이 AP장치의 정보를 전달해준다.
Ÿ wifiState 매소드는 WiFi 모듈이 AP 장치에 연결되었는지 확인하는 매소드로 WiFi 모듈이 AP장치에 연결된 경우
ture를 반환하고 그렇지 않은 경우 false를 반환한다. 17~20행은 WiFi 모듈이 AP 장치에 접속할 때 까지 대기하는
것을 의미한다.
Ÿ 25행의 getIPAddress 매소드는 AP장치에 연결된 WiFi 모듈의 Local IP를 문자열로 반환해준다.
[ 14/42 ]
E07.ADIIoT_WiFi_MQTT
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신을 활용하여 ADIIoT 플랫폼에 연결하고, ADIIoT 플랫폼의 ‘MQTT Socket’를 통해
지정된 MQTT 토픽으로 메시지를 송수신하는 예제
※ ADIIoT 플랫폼의 가입과 정보생성 및 ‘MQTT Socket’ 사용법은 ADIIoT 플랫폼 사용 매뉴얼 참고
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E07.ADIIoT_WiFi_MQTT 예제를 실행한다.
다. 실행 결과
[ 15/42 ]
라. 예제 설명
[ 2Page ADIIoT WiFi API(ADIIoTWiFi.h) 참조 ]
Ÿ 5~11행에 AP 접속을 위한 정보(SSID, Password)와 MIK 플랫폼 접속을 위한 정보(userID) 메시지 송수신을 위한
Project, Subscribe Topic(수신), Publish Topic(송신), deviceID(장치간 구분)를 작성한다.
Ÿ 13~14행은 makeTopic 매소드를 이용해 ADIIoT 플랫폼으로 송수신하는 데이터의 토픽을 ADIIoT 플랫폼에서 요구하
는 포맷에 맞춰서 생성해준다.
Ÿ 35행의 setMQTTInfo 매소드를 통해 WiFi모듈에 ADIIoT플랫폼에 대한 접속 정보를 설정한다.
Ÿ 38행의 MQTTConnect 매소드를 통해 WiFi 모듈을 ADIIoT플랫폼으로 연결시킨다
Ÿ 40행의 setMQTTSubscribe 매소드를 통해 ADIIoT플랫폼에 토픽을 이용해 데이터 수신을 등록한다.
Ÿ 46행의 AdiiotRecv 매소드를 통해 WiFi 모듈이 ADIIoT플랫폼으로부터 받은 메시지를 수신한다.
Ÿ 49행의 getDevice 매소드를 통해 수신한 데이터에 대한 디바이스 이름을 호출한다.
Ÿ 51행의 getData 매소드를 통해 수신한 데이터를 호출한다.
Ÿ 58행의 MQTTPublish 매소드를 통해 ADIIoT플랫폼으로 메시지를 송신한다. 메시지 전송을 위해 Topic과 DeviceID,
데이터가 필요하다.
[ 16/42 ]
E08.ADIIoT_WiFi_TCPClient
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신을 활용하여 별도로 구현된 TCP/IP 서버에 연결하여 메시지를 송수신 할 수 있는
아두이노 TCP 클라이언트 예제
※ 해당 예제는 사용자가 직접 구현하는 별도의 TCP 서버에 아두이노를 연동하기 위한 클라이언트 예제이며
ADIIoT에서는 제공하는 스마트홈 콘텐츠(ADIIoT_SmartHome_TCPServer)를 응용하여 구현이 가능
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ 원하는 기능의 TCP/IP 서버를 구현한다.
④ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E08.ADIIoT_WiFi_MQTT 예제를 불러온다.
⑤ E08.ADIIoT_WiFi_MQTT 예제를 구현된 TCP/IP 서버에 맞게 수정하여 실행한다.
다. 실행 결과
[ 17/42 ]
라. 예제 설명
[ 2Page ADIIoT WiFi API(ADIIoTWiFi.h) 참조 ]
Ÿ 5~8행에 WiFi 모듈이 AP 장치에 접속하기 위한 정보(SSID, Password)와 TCP Server에 접속하기 위한 정보(TCP
Server IP, TCP Server Port)를 작성한다.
Ÿ 28행의 TCPConnect 매소드를 통해 TCP Server의 IP와 Port정보를 WiFi 모듈로 전송되고 전송받은 정보를 통해 WiFi
모듈이 TCP Server에 접속한다.
Ÿ 34행의 WiFiRecv 매소드를 통해 TCP Server로부터 WiFi 모듈이 수신하는 데이터를 수신한다.
Ÿ 14행의 TCPSend 매소드를 통해 TCP Server로 메시지를 송신한다.
※ TCPConnect 매소드 사용시 WiFi 모듈에 TCP Receiver 함께 등록
[ 18/42 ]
E09.ADIIoT_WiFi_UDPClient
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신을 활용하여 별도로 구현된 UDP 서버에 연결하여 메시지를 송수신 할 수 있는 아
두이노 UDP 클라이언트 예제
※ 해당 예제는 사용자가 직접 구현하는 별도의 UDP 서버에 아두이노를 연동하기 위한 클라이언트 예제이며
ADIIoT에서는 제공하는 스마트홈 콘텐츠(ADIIoT_SmartHome_UDPServer)를 응용하여 구현이 가능
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ 원하는 기능의 UDP 서버를 구현한다.
④ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E09.ADIIoT_WiFi_UDPClient 예제를 불러온다.
⑤ E09.ADIIoT_WiFi_UDPClient 예제를 구현된 UDP 서버에 맞게 수정하여 실행한다.
다. 실행 결과
[ 19/42 ]
라. 예제 설명
[ 2Page ADIIoT WiFi API(ADIIoTWiFi.h) 참조 ]
Ÿ 5~9행에 WiFi 모듈이 AP 장치에 접속하기 위한 정보(SSID, Password)와 UDP 프로토콜을 사용할 정보(Receive Port,
Send IP, Send Port)들을 작성한다.
Ÿ 29행에 데이터를 수신하기 위한 Port를 WiFi 모듈로 넘겨준다. Port를 설정할 경우 UDP 프로토콜을 사용하여 통신
하는 다른 장치로부터 메시지 수신이 가능하다.
Ÿ WiFiRecv 매소드를 이용하여 WiFi 모듈이 UDP 프로토콜로 수신한 데이터를 수신 받는다.
Ÿ udpSend는 UDP 프로토콜을 이용하여 메시지를 송신하기 위한 매소드로 42행과 같이 보낼곳의 IP와 Port, 메시지를
WiFi 모듈로 전송해준다.
[ 20/42 ]
E10.ADIIoT_WiFi_WebServer
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신을 활용하여 WiFi 모듈을 Web 서버로 실행하여 외부 PC 혹은 모바일 인터넷을
통해 아두이노 웹서버 페이지에 접속하는 예제
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E10.ADIIoT_WiFi_WebServer 예제를 실행한다.
다. 실행 결과
[ 21/42 ]
라. 예제 설명
[ 2Page ADIIoT WiFi API(ADIIoTWiFi.h) 참조 ]
Ÿ 5~6행에 WiFi 모듈이 AP 장치에 접속하기 위한 정보(SSID, Password)를 작성한다.
Ÿ 26행에 webServerBegin 매소드를 통해 WiFi 모듈을 WebServer로 구동시킨다.
Ÿ 26행의 webServerAvailable 매소드를 통해 웹브라우저를 통해 WebServer로 접속 유무를 확인한다.
Ÿ 33~35행은 webServerContent 매소드를 이용해 웹페이지를 구성하는 HTML 코드를 WiFi 모듈로 전송한다.
Ÿ 36행의 endContent 매소드는 웹페이지를 구성하는 HTML 코드의 전송이 완료되었음을 WiFi 모듈에 알린다.
[ 22/42 ]
E11.ADIIoT_WiFi_WebClient
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신을 활용하여 WiFi 모듈을 Web 클라이언트로 실행하여 외부 PC 혹은 모바일 인터
넷을 통해 아두이노 웹서버 페이지에 접속하는 예제
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E11.ADIIoT_WiFi_WebClient 예제를 실행한다.
다. 실행 결과
[ 23/42 ]
라. 예제 설명
[ 2Page ADIIoT WiFi API(ADIIoTWiFi.h) 참조 ]
Ÿ 5~7행에 WiFi 모듈이 AP 장치에 접속하기 위한 정보(SSID, Password)와 Request할 URL을 지정해준다.
Ÿ 27행의 setRequestInfo는 리퀘스트하기 위한 정보를 지정하는 매소드로 wifi.setRequestInfo 매소드의 매개 변수가 없
는 경우 ADIIoT 플랫폼의 리퀘스트 페이지 정보가 지정되고, 매개 변수로 IP와 Port를 넘겨줄 경우 사용자가 원하는
페이지로 리퀘스트 할 수 있다.
Ÿ 33행의 webRequest는 리퀘스트하는 매소드로 리퀘스트 할 페이지의 URL를 매개변수로 가진다.
Ÿ 34행의 RequestTimeOutCheck는 리퀘스트 요청 후 5초 동안 대기하면 5초 안에 데이터가 수신될 경우 수신된 메시
지를 출력하고 수신되지 않을 경우 Time out 메시지를 출력한다.
Ÿ 리퀘스트 후 수신할 데이터가 있는 경우 HTTP 상태코드, 데이터 형식으로 메시지를 수신한다.
Ÿ RequestURL 변수의 default 값을 1로 전달할 경우 default 1 OK를 HTTP 상태코드와 함께 리스폰 한다.
[ 24/42 ]
E12.ADIIoT_BLE
Ÿ ‘사물인터넷 쉴드’모듈의 블루투스 통신을 활용하여 블루투스 모듈의 동작을 테스트하는 예제
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E12.ADIIoT_BLE 예제를 실행한다.
다. 실행 결과
라. 예제 설명
[ 1Page ADIIoT BLE API(ADIIoTBLE.h) 참조 ]
Ÿ ADIIoT ‘사물인터넷 쉴드’의 블루투스 모듈인 HM-10의 저정된 AT 명령서를 전송하여 응답 베시지를 수신
[ 25/42 ]
E13.ADIIoT_BLE_iBeacon
Ÿ ‘사물인터넷 쉴드’모듈의 블루투스 통신을 활용하여 블루투스 모듈을 iBeacon 디바이스로 설정하여 비콘 모드를 동
작 시키는 예제
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E13.ADIIoT_BLE_iBeacon 예제를 실행한다.
다. 실행 결과
[ 26/42 ]
라. 예제 설명
[ 1Page ADIIoT BLE API(ADIIoTBLE.h) 참조 ]
Ÿ E12.MIK_BLE 예제의 매소드들을 이용하여 Bluetooth 모듈을 iBeacon 모드로 동작 시킨다.
※ iBeacon으로 실행된 아두이노는 스마트폰 비콘 조회 앱을 통해 실행된 디바이스를 연결할 수 있습니다.
[ iBeacon 조회 스마트폰 앱 ]
[ 27/42 ]
E14.ADIIoT_TempHumi_Light_MQTT
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신을 통해 ADIIoT 플랫폼에 연결하여 ‘온습도센서’, ‘조도센서’를 통해 측정된 센서
데이터를 ADIIoT 플랫폼으로 전송하는 예제
Ÿ ADIIoT에서 제공하는 스마트홈 콘텐츠(SmartHome_MQTT01, SmartHome_MQTT02) 예제를 활용
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노, 온습도센서, 조도센서, GROVE 케이블(2EA)
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ 온습도센서와 조도센서를 GROVE 케이블을 사용하여 ‘사물인터넷 쉴드’에 연결한다.
④ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E14.ADIIoT_TempHumi_Light_MQTT 예제를 실행
한다.
다. 실행 결과
[ 28/42 ]
Ÿ SmartHome_MQTT01 안드로이드 예제 및 C# 실행 후 ADIIoT 플랫폼 계정을 통해 로그인 후 Project, Device, Topic
을 설정하고 START THL MONITORING 버튼을 터치하여 설정 내용을 저장한다.
Ÿ 위 화면과 같이 온습도, 조도 데이터를 모니터링
Ÿ SmartHome_MQTT02 안드로이드 혹은 C# 예제도 위의 설정사항과 동일하게 설정하여 온습도, 조도 데이터를 그래
프형태로 모니터링
라. 예제 설명
Ÿ 연결된 센서의 데이터를 51,52행과 같이 읽어 들인다.
Ÿ 읽어 들인 데이터를 데이터 포맷에 맞춰 53행과 같이 문자열로 만들어 준다.
Ÿ 데이터 포맷에 맞춰 생성한 문자열을 53행의 MQTTPublish 매소드를 통해 ADIIoT 플랫폼으로 데이터를 송신한다.
Ÿ 전송된 데이터를 ADIIoT 플랫폼 사이트의 ‘MQTT Socket’ 페이지를 통해 확인하거나 안드로이드 애플리케이션 또는
C# 프로그램을 통해 확인한다.
[ 29/42 ]
E15.ADIIoT_Sound_Hall_MQTT
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신을 통해 ADIIoT 플랫폼에 연결하여 ‘소리감지센서’, ‘자석/자기감지센서’를 통해 감
지되는 이벤트를 ADIIoT 플랫폼으로 전송하는 예제
Ÿ ADIIoT에서 제공하는 스마트홈 콘텐츠(SmartHome_MQTT03) 예제를 활용
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노, 소리감지센서, 자석/자기감지센서, GROVE 케이블(2EA)
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ 소리감지센서와 자석/자기감지센서를 GROVE 케이블을 사용하여 ‘사물인터넷 쉴드’에 연결한다.
④ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E15.ADIIoT_Sound_Hall_MQTT 예제를 실행한다.
다. 실행 결과
[ 30/42 ]
Ÿ SmartHome_MQTT03 안드로이드 예제 및 C# 예제 실행 후 ADIIoT 플랫폼 계정을 통해 로그인 후 Project, Device,
Topic을 설정하고 START HALL/SOUND MONITORING 버튼을 터치하여 설정 내용을 저장한다.
Ÿ 위 화면과 같이 자석/자기감지센서와 소리감지센서의 데이터를 수신하여 칩입을 감지
라. 예제 설명
Ÿ 소리감지센서의 데이터가 HIGH 일 경우 5초안에 자석/자기감지센서의 자석이 탈착될 경우 루프를 빠져나와 소리감
지센서와 자석/자기감지센서의 데이터를 ADIIoT 플랫폼으로 전송한다.
Ÿ 전송된 감지 이벤트 데이터를 ADIIoT 플랫폼 사이트의 ‘MQTT Socket’ 페이지를 통해 확인하거나 안드로이드 애플리
케이션 또는 C# 프로그램을 통해 확인한다.
[ 31/42 ]
E16.ADIIoT_LEDButton_MQTT
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신을 통해 ADIIoT 플랫폼에 연결하고, ‘LED 버튼 모듈’을 사용하여 ADIIoT 플랫폼의
‘MQTT Socket’ 페이지를 통해 LED ON/OFF 제어 신호를 수신하여 모듈을 제어하는 예제
Ÿ ADIIoT에서 제공하는 스마트홈 콘텐츠(SmartHome_MQTT04) 예제를 활용
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노, LED 버튼모듈, GROVE 케이블
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘LED버튼모듈’을 GROVE 케이블을 사용하여 ‘사물인터넷 쉴드’에 연결한다.
④ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E16.ADIIoT_LEDButton_MQTT 예제를 실행한다.
다. 실행 결과
[ 32/42 ]
Ÿ SmartHome_MQTT04 안드로이드 예제 및 C# 예제 실행 후 ADIIoT 플랫폼 계정을 통해 로그인 후 Project, Device,
Topic을 설정하고 START HALL/SOUND MONITORING 버튼을 터치하여 설정 내용을 저장한다.
Ÿ ON/OFF 버튼을 통해 조명을 제어
라. 예제 설명
Ÿ 51행의 AdiiotRecv 매소드를 통해 ON/OFF 신호를 수신한다.
Ÿ 52~55행은 getData를 통해 수신한 데이터가 1인지 0인지 검사하여 ledState 값을 HIGH와 LOW로 변경해준다.
Ÿ 변경된 ledState 값을 57행과 같이 ADIIoT 플랫폼으로 전송하고 58행의 digitalWrite 매소드를 통해 LED를 ON/OFF
제어한다.
Ÿ ADIIoT 플랫폼으로 전송된 ledState 값에 따라 C#, 안드로이드 애플리케이션 의 조명의 상태와 버튼의 상태가 변경
되는 것을 모니터링한다.
[ 33/42 ]
E17.ADIIoT_TempHumi_WebServer
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신으로 아두이노를 웹서버로 구동하고, 웹 페이지를 통해 연결된 ‘온습도센서’의 데
이터를 출력하는 예제
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노, 온습도센서, GROVE 케이블
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘온습도센서’를 GROVE 케이블을 사용하여 ‘사물인터넷 쉴드’에 연결한다.
④ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E17.ADIIoT_TempHumi_WebServer 예제를 실행 한
다.
다. 실행 결과
Ÿ 웹브라우저 주소창에 아두이노 IDE 시리얼 모니터를 통해 확인한 WiFi 모듈의 IP를 입력
Ÿ 웹브라우저를 통해 온습도 데이터를 모니터링
[ 34/42 ]
라. 예제 설명
Ÿ 온습도 센서를 스마트 홈 쉴드에 연결하여 데이터를 읽어 들인다.
Ÿ 읽어들인 데이터를 HTML 문법에 맞게 대입하여 webServerContent 매소드를 통해 42~48행과 같이 작성한다.
Ÿ HTML 코드 전송이 완료됨을 알리기위해 49행과 같이 endContent 메소를 호출한다.
Ÿ WiFi 모듈의 Local IP를 웹브라우저 주소에 입력하여 웹페이지를 통해 온습도 데이터를 모니터링 한다.
[ 35/42 ]
E18.ADIIoT_Sound_Hall_TCPClient
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신으로 아두이노를 웹 클라이언트로 구동하고, 연결된 소리감지센서와 자석/자기감
지센서의 감지 이벤트를 외부의 TCP/IP 서버로 전송하는 예제
Ÿ ADIIoT에서 제공하는 스마트홈 콘텐츠(SmartHome_TCPServer) 예제를 활용
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노, 소리감지센서, 자석/자기감지센서, GROVE 케이블(2EA)
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘소리감지센서’와 ‘자석/자기감지센서’를 GROVE 케이블을 사용하여 ‘사물인터넷 쉴드’에 연결한다.
④ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E18.ADIIoT_Sound_Hall_TCPClient 예제를 실행
다. 실행 결과
Ÿ PC의 IP주소와 Port를 E18.ADIIoT_Sound_Hall_TCPClient에 입력하고 자석/자기감지센서와, 소리감지센서의 데이터를
수신하여 침입을 감지
[ 36/42 ]
라. 예제 설명
Ÿ 소리감지센서의 데이터가 HIGH 일 경우 5초안에 자석/자기감지센서의 자석이 탈착될 경우 루프를 빠져나와 소리감
지센서와 자석/자기감지센서의 데이터를 TCPServer로 전송한다.
Ÿ 전송된 감지 이벤트 데이터를 C# 프로그램을 통해 확인한다.
[ 37/42 ]
E19.ADIIoT_TempHumi_Light_UDPClient
Ÿ ‘사물인터넷 쉴드’모듈의 WiFi 통신으로 아두이노를 UDP 클라이언트로 구동하고, 연결된 온습도센서와 조도센서의
데이터를 외부의 UDP 서버로 전송하는 예제
Ÿ ADIIoT에서 제공하는 스마트홈 콘텐츠(SmartHome_UDPServer) 예제를 활용
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노, 온습도센서, 조도센서, GROVE 케이블(2EA)
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘소리감지센서’와 ‘자석/자기감지센서’를 GROVE 케이블을 사용하여 ‘사물인터넷 쉴드’에 연결한다.
④ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E19.ADIIoT_TempHumi_Light_UDPClient 예제를 실
행한다.
다. 실행 결과
Ÿ ADIIoT SmartHome_UDPServer c# 예제를 실행
Ÿ 실행한 PC의 IP주소와 Port를 E19.ADIIoT_TempHumi_Light_UDPClient에 입력하고 모니터링
[ 38/42 ]
라. 예제 설명
Ÿ 각 센서를 ‘사물인터넷 쉴드’에 연결하여 40,41행과 같이 데이터를 읽어 들인다.
Ÿ 읽어 들인 데이터를 데이터 포맷에 맞춰 43행과 같이 문자열로 만들어 준다.
Ÿ 데이터 포맷에 맞춰 만들어진 문자열을 UDP 프로토콜을 이용해 데이터를 송신한다.
Ÿ C# SmartHome_UDPServer 프로그램을 통해 데이터를 모니터링 한다.
[ 39/42 ]
E20.ADIIoT_LEDButton_BLE
Ÿ ‘사물인터넷 쉴드’모듈의 블루투스 통신을 활용하여 아두이노를 연결된 ‘LED버튼모듈’을 제어할 수 있는 블루투스 디
바이스로 구동하는 예제
Ÿ ADIIoT에서 제공하는 스마트홈 콘텐츠(SmartHome_BLE02) 예제를 활용
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노, LED버튼모듈, GROVE 케이블
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘LED버튼모듈’을 GROVE 케이블을 사용하여 ‘사물인터넷 쉴드’에 연결한다.
④ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E20.ADIIoT_LEDButton_BLE 예제를 실행
다. 실행 결과
Ÿ ADIIoT SmartHome_MQTT02 안드로이드 예제 실행 후 우측상단 CONNECT를 터치하여 블루투스 장치를 선택하여
connecting
Ÿ ON/OFF 버튼을 통해 조명을 제어
[ 40/42 ]
라. 예제 설명
Ÿ ‘LED버튼모듈’을 ‘사물인터넷 쉴드’에 연결하고 LED와 Button을 연결한 각 핀을 3~4행과 같이 지정해준다.
Ÿ 10행과 같이 pinMode를 INPUT과 OUTPUT으로 설정해준다.
Ÿ BLEReturn 매소드는 Bluetooth 통신을 통해 받은 메시지를 문자열로 반환해주는 매소드이다.
Ÿ 19~24행은 수신된 데이터를 토대로 ledState 값을 변경해준다.
Ÿ digitalWrite를 통해 변경된 ledState 값대로 LED를 ON/OFF하고 ledState값을 안드로이드 애플리케이션으로 전송한
다.
Ÿ 26~30행은 버튼으로부터 입력 받은 데이터가 HIGH일 경우 Bluetooth 통신을 통해 “ADIIoT Device”를 전송한다.
[ 41/42 ]
E21.ADIIoT_TempHumi_iBeacon
Ÿ ‘사물인터넷 쉴드’모듈의 블루투스 통신을 활용하여 아두이노를 Beacon 모드로 동작 시켜 연결된 ‘온습도센서’ 데이
터를 스마트폰 앱으로 전송하는 예제
Ÿ ADIIoT에서 제공하는 스마트홈 콘텐츠(SmartHome_BLE01) 예제를 활용
가. 준비사항
Ÿ 사물인터넷 쉴드, 아두이노 우노, 온습도센서, GROVE 케이블
나. 연결 방법
① ‘사물인터넷 쉴드’를 아두이노 우노에 결합하기 위해 먼저 연장핀을 사물인터넷 쉴드에 연결한다.
② 연장핀이 연결된 ‘사물인터넷 쉴드’를 아두이노 우노에 결합한다.
③ ‘온습도센서’를 GROVE 케이블을 사용하여 ‘사물인터넷 쉴드’에 연결한다.
④ ‘아두이노 우노’의 USB를 연결하고 아두이노 스케치 프로그램에서 E21.ADIIoT_TempHumi_iBeacon 예제를 실행
다. 실행 결과
Ÿ ADIIoT SmartHome_BLE01 안드로이드 예제 실행
Ÿ SCAN START 버튼을 터치하여 Major와 Minor값에 지정되어 있는 온습도 데이터를 모니터링한다.
[ 1/42 ]
라. 예제 설명
Ÿ BLEName 매소드를 통해 Bluetooth 모듈의 이름을 지정해준다.
Ÿ 19행의 iBeacon 매소드를 통해 Bluetooth 모듈이 Beacon 모드로 동작하도록 모드를 1로 지정해준다.
Ÿ 24행의 AdvertisingInterval 매소드를 통해 Bluetooth 모듈이 Beacon 모드로 동작할 때 광고 간격을 지정해준다.
Ÿ 위 설정들을 Bluetooth 모듈에 적용하기 위해 28행과 같이 Bluetooth 모듈을 리셋 시켜준다.
Ÿ 온습도 센서로 받은 데이터를 37, 38행과 같이 실수에서 정수타입으로 변환해주고, 메이저와 마이너 값에 각각 데이
터를 실어 보내기 위해 39, 40행과 같이 헥사코드로 변환해준다.
Ÿ 변환된 온습도 데이터를 42, 44행과 같이 iBeaconMajor, iBeaconMinor 매소드를 이용해 메이저 마이너 값으로 설정
하고, 메이저 마이너 값으로 설정된 내용을 Bluetooth 모듈에 적용하기 위해 48행과 같이 Bluetooth 모듈을 리셋시
켜 설정 내용을 적용시킨다.
Ÿ 안드로이드 애플리케이션을 통해 Beacon 데이터를 수신하여 모니터링 한다.
[참고]
§ IoT 디바이스와 클라이언트 앱 간의 Publish 메시지에 특수문자 [ @ ] [ ; ] [ : ] [ / ]를 사용할
경우 오류가 발생할 수 있습니다. 따라서 위와 같은 특수문자가 메시지에 포함될 경우 다른 문자
로 변경하여 메시지를 전송하시기 바랍니다.
[ 42/42 ]