아두이노 – 외부 디바이스 연결 방법
- 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
- ENC28J60 모듈과 이더넷 쉴드를 주로 사용
IRED
- 주로 리모컨이나 간단한 명령어 전달용으로 사용
- 짧은 전송 거리와 데이터 전송의 신뢰성이 낮음
- https://www.hardcopyworld.com/?p=118
RF transeiver
- 다양한 주파수를 통한 라디오 통신
- 1:N 통신이 가능. 여러대의 아두이노를 저렴하게 무선 연결 가능
- 주파수 및 거리, 장애물에 따라 데이터 신뢰성이 좌우됨
- 2.4MHz – nRF24L01 칩 : Mirf 라이브러리 사용가능
- 315MHz : VirtualWire 라이브러리 사용 가능
- https://www.hardcopyworld.com/?p=284
- https://www.hardcopyworld.com/?p=281
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 쉴드를 쓸 수도 있겠지만 초고가라 효용성이 의심스러움
너무 좋은 정보 감사합니다. 아두이노 간의 통신을 구현해야 될거 같은데 아직 아무것도 몰라서 질문드립니다. 군집주행 자동차를 만드는데, 아두이노 간의 통신으로 모터제어 할 생각인데요. hc-05(마스터) hc-06(슬레이브)로 하고 마스터가 슬레이브한테 정보를 주려면 1:N통신으로 하면 되는건가요? 예를들어, http://www.hardcopyworld.com/ngine/aduino/index.php/archives/360에 SPI통신 같은걸로..
찾는 정보가 있어서 보다가 궁금해서 답글 남겨드립니다.
만일 아두이노를 serial host로 사용하려고 하는데
usb에 바코드 리더기를 연결시켜 바코드를 읽어온 값을 아두이노 자체에서 처리하여 wifi or bluethooh로 pc에 정보를 넘기려고 합니다
아두이노를 serial host로 했을 때 바코드로 읽어온 정보를 아두이노에서 직접적인 처리가 가능한거인가요?? 대답해주시면 감사하겠습니다 ^^
바코드 리더기가 serial을 지원하나요? 아님 USB 포트만 있나요?
USB Host로 처리하는 방법은 아직 해보질 않아서 자료가 없는데… USB Host 실드가 비싸서;;; 넘어온 정보를 아두이노에서 처리하기에 적합한지도 잘 모르겠습니다.
차라리 PC에서 바로 바코드를 처리하고 필요한 데이터를 블루투스로 아두이노에 전송해 주는 편이 낫지 않을까요?