SlideShare a Scribd company logo
2018 스마트디바이스지능통신 기말 고사(100)
Smart Device M2M
Date: 2018-06-08
1. Bluetooth가 Arduino와 Smartphone 통신에 사용될 때 장점을 4가지 이상 제시하시오. (20)
- Smartphone에 Bluetooth HW와 SW가 이미 구축되어 있어 개발할 때 Arduino
Bluetooth만 고려하며 됨
- Bluetooth는 BLE(Bluetooth Low Energy)를 지원하므로 저전력 운용이 가능함
- Bluetooth는 Master-Slave 구조를 지원하므로 Arduino에 부착된 Bluetooth는 저수준
Slave mode로 쉽게 동작시킬 수 있음
- Bluetooth는 다양한 profile을 제공하므로 SPP(Serial Port Profile)를 이용하면 Arduino와
serial port로 쉽게 연결할 수 있음
2. 다음 Arduino Code를 제시하시오. (30)
1) SoftwareSerial(SWS)로부터 “start”를 입력받으면 sensor 정보를 SWS에 회신
- SWS의 Rx는 10번, Tx는 11번에 연결됨, 연결 속도는 9600 bps
- SWS에서 문자열 입력받는 함수는 StringTok.inputSerial(SoftwareSerial & sws) 사용
- Sensor는 analog #0번에 연결됨, 회신할 때 format: getsen [sensor 정보]
#include <SoftwareSerial.h>
#include <StringTok.h>
#define SERIAL_BPS (9600)
#define DELAY_MS (1000)
SoftwareSerial mySerial(10, 11);
void setup() {
mySerial.begin(SERIAL_BPS);
}
void loop() {
StringTok stInput; stInput.inputSerial(mySerial);
if (!stInput.isEmpty()) {
if (stInput.toString() == “start”) {
int nSensor = analogRead(A0);
String sSensor = “getsen ” + String(nSensor);
mySerial.println(sSensor);
}
}
delay(DELAY_MS)
}
3. 다음 Android Code를 제시하시오. (50)
1) App이 시작될 때 1부터 10,000까지 정수를 더하는 code를 multithread로 구성: 반드시
Thread와 Runnable 사용, app이 멈추지 않도록 Thread 실행해야 함 (20)
- Android Studio가 자동으로 추가하는 code는 쓸 필요 없음
public class MainActivity extends AppCompatActivity {
…
protected void onCreate(Bundle savedInstanceState) {
new Thread(new Runnable() {
@Override
public void run() {
long nSum = 0;
for (long i = 0; i <= 10000; i++) nSum += i;
}
}).start();
}
}
2) 1)에서 정수를 더한 결과를 app에 있는 TextView에 직접 표시하려 한다. 이때 문제가 발생
하는 이유는? (10)
- 정수를 계산하는 thread(1)에 제시함)는 MainActivity를 구동한 Main Thread와 다르기
때문에, Main Thread 외부에 해당하는 정수 계산 thread에서 TextView에 접근해 상태를
표시할 수 없음
3) 2)가 문제 없이 동작될 수 있도록 BroadcastReceiver를 사용하는 code를 제시하라. (20)
- 1)에서 사용한 Runnable에서 sendBroacast() 사용
- MainActivity에서 StateReceiver를 등록하는 code: 2)를 처리하는 StateReceiver는 있다고 가정
public class MainActivity extends AppCompatActivity {
public static final String STR_SUM = “mokwon.ice.sum”;
public static final String STR_SUM_VAL = “mokwon.ice.sum.val”;
protected StateReceiver stateReceiver;
…
protected void onCreate(Bundle savedInstanceState) {
new Thread(new Runnable() {
@Override
public void run() {
long nSum = 0;
for (long i = 0; i <= 10000; i++) nSum += i;
Intent intent = new Intent(STR_SUM);
intent.putExtra(STR_SUM_VAL, nSum);
sendBroadcast(intent);
}
}).start();
stateReceiver = new StateReceiver(this); // StateReceiver()도 가능
IntentFilter intentFilter = new IntentFilter(STR_SUM);
registerReceiver(stateReceiver, intentFilter);
}
}

More Related Content

Similar to Test-SDIC2018-2(answer)

TestSDIC2015-2(Answer)
TestSDIC2015-2(Answer)TestSDIC2015-2(Answer)
TestSDIC2015-2(Answer)
Yong Heui Cho
 
아두이노로 배우는 피지컬 컴퓨팅(중급)
아두이노로 배우는 피지컬 컴퓨팅(중급)아두이노로 배우는 피지컬 컴퓨팅(중급)
아두이노로 배우는 피지컬 컴퓨팅(중급)
gongdigi24
 
Vr cctv 제작 ver1
Vr cctv 제작 ver1Vr cctv 제작 ver1
Vr cctv 제작 ver1
병재 김
 
아두이노 bluetooth
아두이노 bluetooth아두이노 bluetooth
아두이노 bluetooth
JungHoon Lee
 
한글시계웍샵_ SW
한글시계웍샵_ SW한글시계웍샵_ SW
한글시계웍샵_ SW
영광 송
 
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
RinandarMuslimin
 
TestSDS2016-2(Answer)
TestSDS2016-2(Answer)TestSDS2016-2(Answer)
TestSDS2016-2(Answer)
Yong Heui Cho
 
메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)
JongyoonWon1
 
창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료
유명환 FunFun Yoo
 
한글시계웍샵_SW
한글시계웍샵_SW한글시계웍샵_SW
한글시계웍샵_SW
영광 송
 
ARTIK 710 IoT class
ARTIK 710 IoT class ARTIK 710 IoT class
ARTIK 710 IoT class
정출 김
 
TestSDIC2017-2(answer)
TestSDIC2017-2(answer)TestSDIC2017-2(answer)
TestSDIC2017-2(answer)
Yong Heui Cho
 
아두이노 2015-2 한동대학교 공학설계입문
아두이노 2015-2 한동대학교 공학설계입문아두이노 2015-2 한동대학교 공학설계입문
아두이노 2015-2 한동대학교 공학설계입문
Sangjun Han
 
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
Tae wook kang
 
라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기
Tai Hoon KIM
 
Beacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.comBeacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.com
Junwoo Lee
 
NodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIYNodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIY
Hakyong Kim
 
20140219 techdays mini 앱 개발 세미나(4)
20140219 techdays mini  앱 개발 세미나(4) 20140219 techdays mini  앱 개발 세미나(4)
20140219 techdays mini 앱 개발 세미나(4) 영욱 김
 
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
Amazon Web Services Korea
 
TestSDS2016-1(Answer)
TestSDS2016-1(Answer)TestSDS2016-1(Answer)
TestSDS2016-1(Answer)
Yong Heui Cho
 

Similar to Test-SDIC2018-2(answer) (20)

TestSDIC2015-2(Answer)
TestSDIC2015-2(Answer)TestSDIC2015-2(Answer)
TestSDIC2015-2(Answer)
 
아두이노로 배우는 피지컬 컴퓨팅(중급)
아두이노로 배우는 피지컬 컴퓨팅(중급)아두이노로 배우는 피지컬 컴퓨팅(중급)
아두이노로 배우는 피지컬 컴퓨팅(중급)
 
Vr cctv 제작 ver1
Vr cctv 제작 ver1Vr cctv 제작 ver1
Vr cctv 제작 ver1
 
아두이노 bluetooth
아두이노 bluetooth아두이노 bluetooth
아두이노 bluetooth
 
한글시계웍샵_ SW
한글시계웍샵_ SW한글시계웍샵_ SW
한글시계웍샵_ SW
 
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
 
TestSDS2016-2(Answer)
TestSDS2016-2(Answer)TestSDS2016-2(Answer)
TestSDS2016-2(Answer)
 
메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)
 
창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료
 
한글시계웍샵_SW
한글시계웍샵_SW한글시계웍샵_SW
한글시계웍샵_SW
 
ARTIK 710 IoT class
ARTIK 710 IoT class ARTIK 710 IoT class
ARTIK 710 IoT class
 
TestSDIC2017-2(answer)
TestSDIC2017-2(answer)TestSDIC2017-2(answer)
TestSDIC2017-2(answer)
 
아두이노 2015-2 한동대학교 공학설계입문
아두이노 2015-2 한동대학교 공학설계입문아두이노 2015-2 한동대학교 공학설계입문
아두이노 2015-2 한동대학교 공학설계입문
 
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
 
라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기
 
Beacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.comBeacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.com
 
NodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIYNodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIY
 
20140219 techdays mini 앱 개발 세미나(4)
20140219 techdays mini  앱 개발 세미나(4) 20140219 techdays mini  앱 개발 세미나(4)
20140219 techdays mini 앱 개발 세미나(4)
 
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
 
TestSDS2016-1(Answer)
TestSDS2016-1(Answer)TestSDS2016-1(Answer)
TestSDS2016-1(Answer)
 

More from Yong Heui Cho

Android - Sensor Manager
Android - Sensor ManagerAndroid - Sensor Manager
Android - Sensor Manager
Yong Heui Cho
 
Android - Broadcast Receiver
Android - Broadcast ReceiverAndroid - Broadcast Receiver
Android - Broadcast Receiver
Yong Heui Cho
 
Android - Message
Android - MessageAndroid - Message
Android - Message
Yong Heui Cho
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
Yong Heui Cho
 
Computing Paradigm
Computing ParadigmComputing Paradigm
Computing Paradigm
Yong Heui Cho
 
TestBCD2018-2(answer)
TestBCD2018-2(answer)TestBCD2018-2(answer)
TestBCD2018-2(answer)
Yong Heui Cho
 
TestSDS2018-2(answer)
TestSDS2018-2(answer)TestSDS2018-2(answer)
TestSDS2018-2(answer)
Yong Heui Cho
 
TestEC2018-2(answer)
TestEC2018-2(answer)TestEC2018-2(answer)
TestEC2018-2(answer)
Yong Heui Cho
 
TestEC2018-1(answer)
TestEC2018-1(answer)TestEC2018-1(answer)
TestEC2018-1(answer)
Yong Heui Cho
 
TestBCD2018-1(answer)
TestBCD2018-1(answer)TestBCD2018-1(answer)
TestBCD2018-1(answer)
Yong Heui Cho
 
TestSDS2018-1(answer)
TestSDS2018-1(answer)TestSDS2018-1(answer)
TestSDS2018-1(answer)
Yong Heui Cho
 
BJT - Analysis of Bias
BJT - Analysis of BiasBJT - Analysis of Bias
BJT - Analysis of Bias
Yong Heui Cho
 
TestCloud2018-2(answer)
TestCloud2018-2(answer)TestCloud2018-2(answer)
TestCloud2018-2(answer)
Yong Heui Cho
 
TestECD2018-1(answer)
TestECD2018-1(answer)TestECD2018-1(answer)
TestECD2018-1(answer)
Yong Heui Cho
 
TestCloud2018-1(answer)
TestCloud2018-1(answer)TestCloud2018-1(answer)
TestCloud2018-1(answer)
Yong Heui Cho
 
Cloud Service Model
Cloud Service ModelCloud Service Model
Cloud Service Model
Yong Heui Cho
 
RF 증폭기 설계(Design of RF Amplifier)-rev1
RF 증폭기 설계(Design of RF Amplifier)-rev1RF 증폭기 설계(Design of RF Amplifier)-rev1
RF 증폭기 설계(Design of RF Amplifier)-rev1
Yong Heui Cho
 
Computing Paradigm - rev1
Computing Paradigm - rev1Computing Paradigm - rev1
Computing Paradigm - rev1
Yong Heui Cho
 
Cloud Deployment Model
Cloud Deployment ModelCloud Deployment Model
Cloud Deployment Model
Yong Heui Cho
 
Cloud Computing Architecture
Cloud Computing ArchitectureCloud Computing Architecture
Cloud Computing Architecture
Yong Heui Cho
 

More from Yong Heui Cho (20)

Android - Sensor Manager
Android - Sensor ManagerAndroid - Sensor Manager
Android - Sensor Manager
 
Android - Broadcast Receiver
Android - Broadcast ReceiverAndroid - Broadcast Receiver
Android - Broadcast Receiver
 
Android - Message
Android - MessageAndroid - Message
Android - Message
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Computing Paradigm
Computing ParadigmComputing Paradigm
Computing Paradigm
 
TestBCD2018-2(answer)
TestBCD2018-2(answer)TestBCD2018-2(answer)
TestBCD2018-2(answer)
 
TestSDS2018-2(answer)
TestSDS2018-2(answer)TestSDS2018-2(answer)
TestSDS2018-2(answer)
 
TestEC2018-2(answer)
TestEC2018-2(answer)TestEC2018-2(answer)
TestEC2018-2(answer)
 
TestEC2018-1(answer)
TestEC2018-1(answer)TestEC2018-1(answer)
TestEC2018-1(answer)
 
TestBCD2018-1(answer)
TestBCD2018-1(answer)TestBCD2018-1(answer)
TestBCD2018-1(answer)
 
TestSDS2018-1(answer)
TestSDS2018-1(answer)TestSDS2018-1(answer)
TestSDS2018-1(answer)
 
BJT - Analysis of Bias
BJT - Analysis of BiasBJT - Analysis of Bias
BJT - Analysis of Bias
 
TestCloud2018-2(answer)
TestCloud2018-2(answer)TestCloud2018-2(answer)
TestCloud2018-2(answer)
 
TestECD2018-1(answer)
TestECD2018-1(answer)TestECD2018-1(answer)
TestECD2018-1(answer)
 
TestCloud2018-1(answer)
TestCloud2018-1(answer)TestCloud2018-1(answer)
TestCloud2018-1(answer)
 
Cloud Service Model
Cloud Service ModelCloud Service Model
Cloud Service Model
 
RF 증폭기 설계(Design of RF Amplifier)-rev1
RF 증폭기 설계(Design of RF Amplifier)-rev1RF 증폭기 설계(Design of RF Amplifier)-rev1
RF 증폭기 설계(Design of RF Amplifier)-rev1
 
Computing Paradigm - rev1
Computing Paradigm - rev1Computing Paradigm - rev1
Computing Paradigm - rev1
 
Cloud Deployment Model
Cloud Deployment ModelCloud Deployment Model
Cloud Deployment Model
 
Cloud Computing Architecture
Cloud Computing ArchitectureCloud Computing Architecture
Cloud Computing Architecture
 

Test-SDIC2018-2(answer)

  • 1. 2018 스마트디바이스지능통신 기말 고사(100) Smart Device M2M Date: 2018-06-08 1. Bluetooth가 Arduino와 Smartphone 통신에 사용될 때 장점을 4가지 이상 제시하시오. (20) - Smartphone에 Bluetooth HW와 SW가 이미 구축되어 있어 개발할 때 Arduino Bluetooth만 고려하며 됨 - Bluetooth는 BLE(Bluetooth Low Energy)를 지원하므로 저전력 운용이 가능함 - Bluetooth는 Master-Slave 구조를 지원하므로 Arduino에 부착된 Bluetooth는 저수준 Slave mode로 쉽게 동작시킬 수 있음 - Bluetooth는 다양한 profile을 제공하므로 SPP(Serial Port Profile)를 이용하면 Arduino와 serial port로 쉽게 연결할 수 있음 2. 다음 Arduino Code를 제시하시오. (30) 1) SoftwareSerial(SWS)로부터 “start”를 입력받으면 sensor 정보를 SWS에 회신 - SWS의 Rx는 10번, Tx는 11번에 연결됨, 연결 속도는 9600 bps - SWS에서 문자열 입력받는 함수는 StringTok.inputSerial(SoftwareSerial & sws) 사용 - Sensor는 analog #0번에 연결됨, 회신할 때 format: getsen [sensor 정보] #include <SoftwareSerial.h> #include <StringTok.h> #define SERIAL_BPS (9600) #define DELAY_MS (1000) SoftwareSerial mySerial(10, 11); void setup() { mySerial.begin(SERIAL_BPS); } void loop() {
  • 2. StringTok stInput; stInput.inputSerial(mySerial); if (!stInput.isEmpty()) { if (stInput.toString() == “start”) { int nSensor = analogRead(A0); String sSensor = “getsen ” + String(nSensor); mySerial.println(sSensor); } } delay(DELAY_MS) } 3. 다음 Android Code를 제시하시오. (50) 1) App이 시작될 때 1부터 10,000까지 정수를 더하는 code를 multithread로 구성: 반드시 Thread와 Runnable 사용, app이 멈추지 않도록 Thread 실행해야 함 (20) - Android Studio가 자동으로 추가하는 code는 쓸 필요 없음 public class MainActivity extends AppCompatActivity { … protected void onCreate(Bundle savedInstanceState) { new Thread(new Runnable() { @Override public void run() { long nSum = 0;
  • 3. for (long i = 0; i <= 10000; i++) nSum += i; } }).start(); } } 2) 1)에서 정수를 더한 결과를 app에 있는 TextView에 직접 표시하려 한다. 이때 문제가 발생 하는 이유는? (10) - 정수를 계산하는 thread(1)에 제시함)는 MainActivity를 구동한 Main Thread와 다르기 때문에, Main Thread 외부에 해당하는 정수 계산 thread에서 TextView에 접근해 상태를 표시할 수 없음 3) 2)가 문제 없이 동작될 수 있도록 BroadcastReceiver를 사용하는 code를 제시하라. (20) - 1)에서 사용한 Runnable에서 sendBroacast() 사용 - MainActivity에서 StateReceiver를 등록하는 code: 2)를 처리하는 StateReceiver는 있다고 가정 public class MainActivity extends AppCompatActivity { public static final String STR_SUM = “mokwon.ice.sum”; public static final String STR_SUM_VAL = “mokwon.ice.sum.val”; protected StateReceiver stateReceiver; … protected void onCreate(Bundle savedInstanceState) { new Thread(new Runnable() { @Override public void run() {
  • 4. long nSum = 0; for (long i = 0; i <= 10000; i++) nSum += i; Intent intent = new Intent(STR_SUM); intent.putExtra(STR_SUM_VAL, nSum); sendBroadcast(intent); } }).start(); stateReceiver = new StateReceiver(this); // StateReceiver()도 가능 IntentFilter intentFilter = new IntentFilter(STR_SUM); registerReceiver(stateReceiver, intentFilter); } }