1. 2016 스마트디바이스지능통신 중간 고사(100)
Smart Device M2M
Date: 2016-04-26
1. IoT Network을 사용할 수 있는 현실적인 ICT Service를 제안하고 설명하시
오. 작성방법 – Service명, 동작원리, IoT Network 도입 필요성(30)
[인체 동작 감지 IoT Network]
- 동작원리: 의류의 적당한 위치에 다수 개의 3축 가속 Sensor와 Memory를
가진 소형IoT Node를 장착한다. 이 IoT Node는 인체 각 위치의 가감속 특
성을 계속 저장하고 주기적으로 이 정보를 ZigBee 방식으로 Smartphone
에 전송한다. IoT Node 동작에 필요한 전력은 사용자 동작으로 자동 획득
하며 추가적인 전력 공급은 없다.
- 도입 필요성: 다수 개의 IoT Node 정보를 바탕으로 Smartphone App은 사
용자 동작을 정확히 감지한다. 동작 감지를 더 정확히 하려면 IoT Node
개수를 늘린다. 이런 가공된 정보를 활용해 자세 교정이나 Motion Capture
등에 활용할 수 있다.
2. 사물인터넷(IoT: Internet of Things) SW(Software)의 중요 요소로 Scalable,
Modular, Connected, Reliable을 설정할 수 있습니다. 이 네 가지 요소가 IoT
SW에 필요한 이유를 구체적으로 각각 설명하시오. (20)
- Scalable: IoT SW는 별다른 수정없이 서로 다른 종류의 장치들에 쉽게 사용
될 수 있어야 한다.
- Modular: IoT SW는 RAM 한계에 따라 기능이 Module 형태로 분리 또는
조합될 수 있다.
- Connected: IoT SW를 통해 장치에 수집된 정보를 외부 기기와 무선 혹은
유선 방식으로 교환할 수 있다.
- Reliable: IoT SW는 오동작이나 보안 문제가 발생하지 않도록 이중, 삼중의
방어책을 가져야 한다.
2. 3. Bluetooth Profile이 무엇인지 설명하고, Bluetooth Communication에서
Profile이 사용되는 예를 간략히 한 가지만 제시하시오. (20)
- Bluetooth Profile은 Bluetooth 장치가 다른 Bluetooth 장치와 통신할 때 구
동되는 방식이나 Service가 연결되는 특성을 정한 표준 규격이다. Profile이
표준으로 정해져 있기 때문에, 해당 Service를 사용하려는 App 개발자는 관
련된 Bluetooth Profile을 호출하면 된다.
- 예를 들어 Wireless Headset을 Bluetooth로 연결하려면 Headset Profile을
사용하면 된다.
4. 다음은 Android Location Manager를 이용한 실내 위치 획득 Source Code
의 일부이다. 정상적으로 구동되도록 필요한 Code를 추가하라. 다만
Widget 관련 Code는 이미 있다고 가정하고 작성하지 말 것. (30)
public class MainActivity extends AppCompatActivity {
public LocationManager mLocationMan; (5)
public MyLocationListener myLocationLx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLocationMan = (LocationManager) getSystemService(LOCATION_SERVICE);
myLocationLx = new MyLocationListener(); (5)
mLocationMan.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0,
myLocationLx); (10)
}
public class MyLocationListener implements LocationListener {
public double latitude, longitude;
@Override
public void onLocationChanged(Location location) {
latitude = location.getLatitude(); (5)
longitude = location.getLongitude(); (5)
}