방패없이 두 개의 Arduino를 연결하는 방법은 무엇입니까?


14

여러 Arduino 보드로 구성된 Arduino 시스템을 계획 중입니다. 보드 사이의 최대 거리는 약 50 미터입니다. 짧은 문자열이나 정수와 같은 기본 데이터를 보내고 싶습니다. 이더넷 케이블을 통해 데이터를 전송할 수 있지만 이더넷 쉴드 또는 Arduino 이더넷 보드가 필요하므로 비용을 두 배로 늘립니다. 가장 기본적인 보드 (Uno와 같은)와 다른 구성 요소 만 사용하고 보드를 완전히 연결할 수없는 저비용 방법이 있습니까?


예산에 문제가 없다면 블루투스 또는 xbee 칩을 사용할 수 있습니다. 너무 나쁘지는 않지만
Steven10172

@ Steven10172 블루투스 장치는 편리하지만, 영업 이익은 방패없이 저렴한 솔루션을 원하는 것 같다 (아마도 낮은 프로파일을?)
익명 펭귄

3
확인 확인 전송하여 매체 전기의 경우 부지를 연결!
Anonymous Penguin

답변:


9

장거리 유선 통신은 RS-485를 참조하십시오 .

RS-422와 같이 트위스트 페어를 통해 차동 밸런스 라인을 사용하기 때문에 비교적 먼 거리 (1,200m)까지 확장 할 수 있습니다. 경험상 비트 / s의 속도에 미터 길이를 곱한 값은 108을 초과하지 않아야합니다. 따라서 50m 케이블은 2Mbit / s보다 빠르게 신호를 보내서는 안됩니다

MAX485 칩을 사용할 수 있습니다. 작업하기는 쉽지만 좋은 라이브러리도 있습니다.

https://github.com/Protoneer/RS485-Arduino-Library


그는 RS-485 또는 그와 유사한 전선을 벗기고 직렬로 사용하여 돈을 절약 할 수 없었습니까? 9600 보드가 실행되지 않습니다 거의 빨리 2로 MBPS를. 프로토콜 / 전압 등에 특별한 것이 있습니까? 장거리에 적합합니까? 그것은 돈을 절약 할 수 있습니다 ...
익명 펭귄

트위스트 페어를 통해 전송되는 차동 신호입니다. 소음을 줄입니다. en.wikipedia.org/wiki/Differential_signaling
sachleen

이 페이지는 아두 이노와 RS485에 훌륭한 자원이다 gammon.com.au/forum/?id=11428
DaveP

7

Arduino 보드의 통신 기능을 분류하기 위해 생각할 수있는 두 가지 범주가 있습니다.

두 장치 사이 :

  • 시리얼 : 사용하기 쉽고 2 개의 데이터 라인 만 있으면됩니다.
  • OneWire : 사용하기 어렵고 느리지 만 하나의 데이터 라인 만 사용

2 개 이상의 장치 간

  • I2C : 네트워크에서 개별적으로 주소를 지정할 수있는 최대 128 개의 장치를 가질 수 있지만 마스터 장치가 필요하며 2 개의 데이터 라인을 사용합니다. 이것은 Wire라고도합니다.
  • SPI : 사용하기 어렵지만 매우 빠르고 쉬운 장치 선택. 많은 데이터 라인을 사용합니다 (3 + 장치 수).
  • OneWire : 주소가 지정된 oneWire를 사용하는 것이 일반 oneWire보다 느리지 만 여전히 하나의 데이터 라인
  • SoftwareSerial : 여러 직렬 회선으로 여러 장치를 연결할 수 있지만 속도가 느립니다.
  • CAN : Due에서만 사용 가능하며 주소 지정 가능

사용 가능한 다른 방법이 있지만이 방법은 최소 외부 하드웨어 만 필요합니다.

거리 등급은 http://forum.arduino.cc/index.php?topic=82937.0http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-distance.html을 참조 하십시오 .

이러한 데이터 속도는 직렬로 직접 제어되며 다른 많은 부분에서 조정할 수 있습니다.


5

Freakduino는 무선 기능이 내장 된 Arduino 보드를 만듭니다. 장거리 무선은 900MHz이고 단거리는 2.4GHz입니다. 나는 실제로 XBee 라디오라고 생각하고 프로그래밍을 위해 Freakduino 웹 사이트에서 사용 가능하고 문서화 된 chibiArduino라는 라이브러리를 사용합니다. 다른 라디오와 무선으로 통신 할 때 브로드 캐스트를 사용하거나 Freakduino의 EEPROM에서 설정해야하는 값인 ID로 라디오를 지정할 수 있습니다.

Freakduino 사이트에서 직접 가져옴 :

IEEE 802.15.4 프로토콜 (XBee와 동일한 무선 프로토콜)을 기반으로하는 통합 무선 라디오를 추가하면 장치의 무선 제어 또는 무선 센서 데이터 수집이 가능합니다. 선택 사양 인 배터리 회로가 추가되어 외부 전원 케이블없이 진정한 무선 노드로 작동 할 수 있습니다. 이 보드는 또한 견고한 인클로저에 맞도록 설계되어 회로 손상에 대한 걱정없이 설계를 안전하게 운송하거나 실제 사용 시나리오에 배치 할 수 있습니다.

이 900 MHz 라디오는 제가 개인적으로 좋아하는 것입니다. 900MHz는 2.4GHz에 비해 훨씬 우수한 범위를 제공하기 때문에 항상 사용합니다. 무전기는 놀라운 양의 범위를 얻을 수있는 최대 10mW의 전송 전력을 출력 할 수 있습니다. 직접 시선으로 수백 미터는 놀라운 일이 아닙니다. 추가 범위가 필요한 경우 변조 모드를 OQPSK에서 BPSK로 변경할 수도 있습니다. 이로 인해 표준 모드에서 최대 속도가 250kbps에서 40kbps로 증가하면서 데이터 속도를 희생하면서 추가 범위가 발생합니다.


0

말했듯이 이더넷 쉴드는 비싸지 만 쉴드를 사용할 필요는 없습니다. 아웃 확인 ENC28J60 유선 네트워킹을위한, 또는 ESP8266를 사용하면 무선 선호합니다. 둘 다 약 $ 4USD입니다. 지금 ESP8266을 사용하고 있으며 약 8 개의 장치가 서로 대화하고 Raspberry Pi를 가지고 있습니다. 정말 멋진 작은 칩입니다! ENC28j60은 여전히 ​​책상에 포장되어 있기 때문에 개인적으로 말할 수 없습니다.


0

이더넷 브레이크 아웃 보드를 사용할 수 있습니다 (Sparkfun에서 $ 2). 이를 통해 이더넷 케이블을 사용할 수 있지만 전체 TCP / IP 프로토콜을 사용할 필요는 없습니다. 대신 데이터 보드를 브레이크 아웃 보드에 연결하고 이더넷을 사용하여 연결 한 다음 직렬로 통신 할 수 있습니다. 강력하지만 저렴한 연결을 위해 Arduino에서 하나의 와이어 센서를 멀리 배치하는 데이 비트를 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.