아두이노-외부기기 연결방법 (Serial, BT 연결 정리)
by
godstale2
·
아두이노 – 외부 디바이스 연결 방법
- Serial (USB to UART, FTDI) Host – USB Host shield, Android ADK
- Serial Client – USB OTG cable
- Ethernet
- IR transeiver
- RF transeiver
- Bluetooth (1:1)
- Zigbee (1:N)
- WiFi (1:N)
- WiFi direct (1:N)
Serial (USB to UART, FTDI) Host – USB Host shield, Android ADK
- 아두이노가 USB Host 가 되어서 통신함.
- USB Host 기능을 해주는 USB Host shield를 사용하거나 안드로이드 ADK 용 shield 사용
- Shield 가 고가이며 부피가 큼.
- 안드로이드 ADK 의 경우 망함. 현재는 거의 사용되지 않는 죽은 코드
Serial Client – USB OTG cable
- PC에 아두이노를 붙여서 사용하듯이 안드로이드 폰이 USB Host 역할을 함
- Android 3.o HC 이상부터 지원하도록 되어 있지만 제조사 별로 기능 지원에 차이가 있음
- 대부분 Android 4.0 이상의 최신 폰에서는 지원
- 안드로이드 – OTG 케이블 – USB 케이블 – 아두이노 순서로 연결됨.
- 아두이노에서 별다른 연결 설정이 필요 없으며 Hardware serial 통신을 사용하면 되므로 간단함
- Serial.xxx() 함수를 사용하면 됨 (Serial.begin(9600), Serial.print(), Serial.available(), Serial.read(), Serial.write()…)
- OTG 케이블이 연결되면 연결된 장치의 Vendor-ID에 따라 원하는 앱이 실행되도록 설정할 수 있음.
- App에서 usb-serial 라이브러리를 사용해서 Serial 통신 코딩가능.
Ethernet
IRED
RF transeiver
Bluetooth
- 안드로이드 및 iPhone 과의 연결은 BT 가 대세
- HC-05, 06, 07 시리즈의 비교적 저렴한 모듈과 BLE 모듈을 사용가능
- Bluetooth 모듈과 아두이노는 2-Line 을 이용한 SoftwareSerial을 사용
- BT 모듈의 경우 UNO 기준 2, 3번 핀과 연결해야만 동작하는듯 (내부적으로 인터럽트를 사용한다고 함)
- 안드로이드의 경우 BT 연결을 위한 API가 프레임웍에서 제공되며
- 이를 잘 구조화 한 예제 코드가 있어 구현이 쉬움.
- https://www.hardcopyworld.com/?p=188
Zigbee
- 1:N 연결을 지원하는 신뢰성 있는 통신을 지원
- 근데 비싸서 외면 당함
WiFi (Serial 지원 모듈)
- 1:N 연결, 고속 통신에 적합
- 안드로이드 앱 입장에서 프로그래밍 난이도는 조금 더 높음
WiFi direct ()
- 주로 Phone to Phone 연결에 사용
- 아두이노가 다른 Small PC (라즈베리 파이, 비글보드…) 혹은 폰에 연결되어서 동작할 때 구성할 수 있는 옵션 정도
- 아두이노에서 직접 WiFi 쉴드를 쓸 수도 있겠지만 초고가라 효용성이 의심스러움