SlideShare a Scribd company logo
2018 스마트디바이스지능통신 중간 고사(100)
Smart Device M2M
Date: 2018-04-18
1. 10 개의 Sensor 정보를 Server에 지속적으로 전달하기 위한 현실적인 방
법을 제안하라. 이 기능을 구현하기 위한 System 분해도를 구체적으로 제시
하시오. (20)
- 10개의 Sensor는 Arduino에 부착할 수 있으므로 1개의 Arduino만 사용; 이
Arduino에 무선(WiFi 혹은 Bluetooth) Module을 장착함
- WiFi로 연결한 경우는 직접 Internet을 통해 Server로 정보를 보내고,
Bluetooth인 경우는 Smartphone의 Internet 기능을 이용해 Server로 정보
를 보냄
- 10개의 Sensor 정보를 구분하기 위해 자체적인 Sensor 제어 문법을 정의
하고 전체 정보를 SW적으로 합하여 무선으로 정보 전송
2. Bluetooth를 지원하는 HC-05 Module과 Arduino Mega ADK를 연결하려
한다. (60)
1) HC-05와 Arduino의 HW 결선도(VCC, GND, TXD, RXD)를 그려라. (10)
2) 1)과 같이 Arduino에 연결된 HC-05가 정상 동작하는지 확인하는 Arduino
Sketch Code를 제시하라. (10)
[기본 함수 사용]
수업 시간에 제시한 Code를 써도 정답 처리
[StringTok 사용]
#include <StringTok.h>
SoftwareSerial serialBth(11, 10);
void setup() {
Serial.begin(9600);
serialBth(115200);
}
void loop() {
StringTok stInput;
// Tx
stInput.inputSerial();
if (!stInput.isEmpty()) serialBth.print(stInput.toString());
// Rx
stInput.inputSerial(serialBth);
if (!stInput.isEmpty()) Serial.print(stInput.toString());
delay(1000);
}
3) 1)과 같이 연결된 Bluetooth를 통해 Sensor 정보를 무선으로 보내려 한다.
이러한 통신을 지원하기 위한 Arduino Sketch Code를 제시하라. Sensor 정보
를 얻는 함수는 double getSensor() {}로 가정한다. (20)
#include <StringTok.h>
SoftwareSerial serialBth(11, 10);
void setup() {
Serial.begin(9600);
serialBth(115200);
}
void loop() {
double sen = getSensor();
String sSen = String(sen, 5) + “ “;
Serial.print(sSen);
serialBth.print(sSen);
delay(1000);
}
4) Sensor 정보에 실린 불필요한 잡음을 최대한 제거하면서 Sensor 정보를
보내려 한다. 3)에 제시한 Code를 어떻게 수정해야 하나? (20)
#include <StringTok.h>
#define MAX_AVG (10)
SoftwareSerial serialBth(11, 10);
void setup() {
Serial.begin(9600);
serialBth(115200);
}
void loop() {
double sen = getSensorAvg(MAX_AVG);
String sSen = String(sen, 5) + “ “;
Serial.print(sSen);
serialBth.print(sSen);
delay(1000);
}
double getSensorAvg(int nAvg) {
double ans = 0.;
for (int i = 0; i < nAvg; i++) ans += getSensor();
return ans;
}
3. 아래 Arduino Code를 가독성, 협업, 유지 보수 등을 고려하여 수정한 새
로운 Code를 제시하라. 4곳 이상에 수정을 가해야 함. (20)
int a = 6;
int b[] = {31,28,31,30,31,30};
long c = 24, d;
void setup() {
Serial.println(“6개월 동안 시간 계
산”);
}
void loop() {
d = 0;
d = b[0] + b[1] + b[2] + b[3] +
b[4] + b[5];
Serial.begin(9600);
Serial.println(c*d);
delay(1000);
}
#define MAX_MONTH (6)
#define HOUR_PER_DAY (24)
#define SERIAL_BPS (9600)
#define DELAY_MS (1000);
void setup() {
Serial.begin(SERIAL_BPS);
Serial.println(“6개월 동안 시간 계산”);
}
void loop() {
static int nMonthDay[MAX_MONTH] = {31,28,31,30,31,30};
long nHour = getTotalHour(nMonthDay, MAX_MONTH);
Serial.println(nHour);
delay(DELAY_MS);
}
long getTotalHour(int nMonthDay[], int nMaxMonth) {
long nDay = 0;
for (int i = 0; i < nMaxMonth; i++) nDay += nMonthDay[i];
return nDay*HOUR_PER_DAY;
}

More Related Content

Similar to Test-SDIC2018-1(Answer)

Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습
Steve Kim
 
Tcp server / client
Tcp server / clientTcp server / client
Tcp server / client문익 장
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypi
Yeonah Ki
 
2017 Software Edu Fest - 생활속데이터 이야기 @ 세상을 변화시키는 소프트웨어 기술
2017 Software Edu Fest - 생활속데이터 이야기 @ 세상을 변화시키는 소프트웨어 기술2017 Software Edu Fest - 생활속데이터 이야기 @ 세상을 변화시키는 소프트웨어 기술
2017 Software Edu Fest - 생활속데이터 이야기 @ 세상을 변화시키는 소프트웨어 기술
Kyuho Kim
 
소프트웨어의 계층구조
소프트웨어의 계층구조소프트웨어의 계층구조
소프트웨어의 계층구조
Wonjun Hwang
 
Blockchain 4th dapp programming
Blockchain 4th dapp programmingBlockchain 4th dapp programming
Blockchain 4th dapp programming
ihpark92
 
메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)
JongyoonWon1
 
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
 
Meteor IoT
Meteor IoTMeteor IoT
Meteor IoT
Jaeho Lee
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02
정출 김
 
//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작
//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작
//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작
Taeyoung Kim
 
라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드
Circulus
 
20140219 techdays mini 앱 개발 세미나(4)
20140219 techdays mini  앱 개발 세미나(4) 20140219 techdays mini  앱 개발 세미나(4)
20140219 techdays mini 앱 개발 세미나(4) 영욱 김
 
아두이노 RC카 만들기
아두이노 RC카 만들기아두이노 RC카 만들기
아두이노 RC카 만들기
Chiwon Song
 
Zimiidle
ZimiidleZimiidle
Zimiidle
sanggyu Shin
 
TestBCD2018-2(answer)
TestBCD2018-2(answer)TestBCD2018-2(answer)
TestBCD2018-2(answer)
Yong Heui Cho
 
TestSDS2016-2(Answer)
TestSDS2016-2(Answer)TestSDS2016-2(Answer)
TestSDS2016-2(Answer)
Yong Heui Cho
 
[devil's camp] - 알고리즘 대회와 STL (박인서)
[devil's camp] - 알고리즘 대회와 STL (박인서)[devil's camp] - 알고리즘 대회와 STL (박인서)
[devil's camp] - 알고리즘 대회와 STL (박인서)
NAVER D2
 
IoT at the Edge: AWS IoT & Greengrass 활용 방법
IoT at the Edge: AWS IoT & Greengrass 활용 방법IoT at the Edge: AWS IoT & Greengrass 활용 방법
IoT at the Edge: AWS IoT & Greengrass 활용 방법
Amazon Web Services Korea
 
Beacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.comBeacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.com
Junwoo Lee
 

Similar to Test-SDIC2018-1(Answer) (20)

Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습Wiznet Academy - WizFi250 기초교육 및 실습
Wiznet Academy - WizFi250 기초교육 및 실습
 
Tcp server / client
Tcp server / clientTcp server / client
Tcp server / client
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypi
 
2017 Software Edu Fest - 생활속데이터 이야기 @ 세상을 변화시키는 소프트웨어 기술
2017 Software Edu Fest - 생활속데이터 이야기 @ 세상을 변화시키는 소프트웨어 기술2017 Software Edu Fest - 생활속데이터 이야기 @ 세상을 변화시키는 소프트웨어 기술
2017 Software Edu Fest - 생활속데이터 이야기 @ 세상을 변화시키는 소프트웨어 기술
 
소프트웨어의 계층구조
소프트웨어의 계층구조소프트웨어의 계층구조
소프트웨어의 계층구조
 
Blockchain 4th dapp programming
Blockchain 4th dapp programmingBlockchain 4th dapp programming
Blockchain 4th dapp programming
 
메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)
 
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
 
Meteor IoT
Meteor IoTMeteor IoT
Meteor IoT
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02
 
//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작
//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작
//BUILD/ Seoul - .NET의 현재와 미래. 그 새로운 시작
 
라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드
 
20140219 techdays mini 앱 개발 세미나(4)
20140219 techdays mini  앱 개발 세미나(4) 20140219 techdays mini  앱 개발 세미나(4)
20140219 techdays mini 앱 개발 세미나(4)
 
아두이노 RC카 만들기
아두이노 RC카 만들기아두이노 RC카 만들기
아두이노 RC카 만들기
 
Zimiidle
ZimiidleZimiidle
Zimiidle
 
TestBCD2018-2(answer)
TestBCD2018-2(answer)TestBCD2018-2(answer)
TestBCD2018-2(answer)
 
TestSDS2016-2(Answer)
TestSDS2016-2(Answer)TestSDS2016-2(Answer)
TestSDS2016-2(Answer)
 
[devil's camp] - 알고리즘 대회와 STL (박인서)
[devil's camp] - 알고리즘 대회와 STL (박인서)[devil's camp] - 알고리즘 대회와 STL (박인서)
[devil's camp] - 알고리즘 대회와 STL (박인서)
 
IoT at the Edge: AWS IoT & Greengrass 활용 방법
IoT at the Edge: AWS IoT & Greengrass 활용 방법IoT at the Edge: AWS IoT & Greengrass 활용 방법
IoT at the Edge: AWS IoT & Greengrass 활용 방법
 
Beacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.comBeacon ble.-leejunwoo@gmail.com
Beacon ble.-leejunwoo@gmail.com
 

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
 
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
 
Cloud Computing Fundamentals
Cloud Computing FundamentalsCloud Computing Fundamentals
Cloud Computing Fundamentals
Yong Heui Cho
 
클라우드서비스(강의계획서,2018-1)
클라우드서비스(강의계획서,2018-1)클라우드서비스(강의계획서,2018-1)
클라우드서비스(강의계획서,2018-1)
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
 
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
 
Cloud Computing Fundamentals
Cloud Computing FundamentalsCloud Computing Fundamentals
Cloud Computing Fundamentals
 
클라우드서비스(강의계획서,2018-1)
클라우드서비스(강의계획서,2018-1)클라우드서비스(강의계획서,2018-1)
클라우드서비스(강의계획서,2018-1)
 

Test-SDIC2018-1(Answer)

  • 1. 2018 스마트디바이스지능통신 중간 고사(100) Smart Device M2M Date: 2018-04-18 1. 10 개의 Sensor 정보를 Server에 지속적으로 전달하기 위한 현실적인 방 법을 제안하라. 이 기능을 구현하기 위한 System 분해도를 구체적으로 제시 하시오. (20) - 10개의 Sensor는 Arduino에 부착할 수 있으므로 1개의 Arduino만 사용; 이 Arduino에 무선(WiFi 혹은 Bluetooth) Module을 장착함 - WiFi로 연결한 경우는 직접 Internet을 통해 Server로 정보를 보내고, Bluetooth인 경우는 Smartphone의 Internet 기능을 이용해 Server로 정보 를 보냄 - 10개의 Sensor 정보를 구분하기 위해 자체적인 Sensor 제어 문법을 정의 하고 전체 정보를 SW적으로 합하여 무선으로 정보 전송 2. Bluetooth를 지원하는 HC-05 Module과 Arduino Mega ADK를 연결하려 한다. (60) 1) HC-05와 Arduino의 HW 결선도(VCC, GND, TXD, RXD)를 그려라. (10)
  • 2. 2) 1)과 같이 Arduino에 연결된 HC-05가 정상 동작하는지 확인하는 Arduino Sketch Code를 제시하라. (10) [기본 함수 사용] 수업 시간에 제시한 Code를 써도 정답 처리 [StringTok 사용] #include <StringTok.h> SoftwareSerial serialBth(11, 10); void setup() { Serial.begin(9600); serialBth(115200); } void loop() { StringTok stInput; // Tx stInput.inputSerial(); if (!stInput.isEmpty()) serialBth.print(stInput.toString()); // Rx stInput.inputSerial(serialBth); if (!stInput.isEmpty()) Serial.print(stInput.toString()); delay(1000);
  • 3. } 3) 1)과 같이 연결된 Bluetooth를 통해 Sensor 정보를 무선으로 보내려 한다. 이러한 통신을 지원하기 위한 Arduino Sketch Code를 제시하라. Sensor 정보 를 얻는 함수는 double getSensor() {}로 가정한다. (20) #include <StringTok.h> SoftwareSerial serialBth(11, 10); void setup() { Serial.begin(9600); serialBth(115200); } void loop() { double sen = getSensor(); String sSen = String(sen, 5) + “ “; Serial.print(sSen); serialBth.print(sSen); delay(1000); } 4) Sensor 정보에 실린 불필요한 잡음을 최대한 제거하면서 Sensor 정보를 보내려 한다. 3)에 제시한 Code를 어떻게 수정해야 하나? (20) #include <StringTok.h> #define MAX_AVG (10) SoftwareSerial serialBth(11, 10);
  • 4. void setup() { Serial.begin(9600); serialBth(115200); } void loop() { double sen = getSensorAvg(MAX_AVG); String sSen = String(sen, 5) + “ “; Serial.print(sSen); serialBth.print(sSen); delay(1000); } double getSensorAvg(int nAvg) { double ans = 0.; for (int i = 0; i < nAvg; i++) ans += getSensor(); return ans; } 3. 아래 Arduino Code를 가독성, 협업, 유지 보수 등을 고려하여 수정한 새 로운 Code를 제시하라. 4곳 이상에 수정을 가해야 함. (20) int a = 6; int b[] = {31,28,31,30,31,30}; long c = 24, d; void setup() { Serial.println(“6개월 동안 시간 계 산”); } void loop() { d = 0; d = b[0] + b[1] + b[2] + b[3] + b[4] + b[5]; Serial.begin(9600); Serial.println(c*d); delay(1000); } #define MAX_MONTH (6)
  • 5. #define HOUR_PER_DAY (24) #define SERIAL_BPS (9600) #define DELAY_MS (1000); void setup() { Serial.begin(SERIAL_BPS); Serial.println(“6개월 동안 시간 계산”); } void loop() { static int nMonthDay[MAX_MONTH] = {31,28,31,30,31,30}; long nHour = getTotalHour(nMonthDay, MAX_MONTH); Serial.println(nHour); delay(DELAY_MS); } long getTotalHour(int nMonthDay[], int nMaxMonth) { long nDay = 0; for (int i = 0; i < nMaxMonth; i++) nDay += nMonthDay[i]; return nDay*HOUR_PER_DAY; }