シールドなしで2つのArduinoを接続する方法は?


14

複数のArduinoボードで構成されるArduinoシステムを計画しています。ボード間の最大距離は約50メートルです。これらの間で、短い文字列や整数などの基本データを送信したい。イーサネットケーブルでデータを送信できることは知っていますが、イーサネットシールドまたはArduinoイーサネットボードが必要で、コストが2倍になります。最も基本的なボード(Unoなど)と他のコンポーネントのみを使用して、完全なシールドではなくボードを接続できる低予算の方法はありますか?


予算に問題がなければ、bluetoothまたはxbeeチップを使用できます。それほど悪くはありませんが、2が必要になるので合計で約$ 60
かかり

@ Steven10172 Bluetoothデバイスは便利ですが、OPがシールドなしの安価なソリューションを望んでいるようです(おそらくロープロファイルですか?)
匿名ペンギン14

3
確認してください転送のあなたの媒体が電気である場合の根拠を接続します!
匿名のペンギン14

回答:


9

長距離の有線通信については、RS-485をご覧ください

ツイストペア(RS-422など)上の差動平衡線を使用するため、比較的長い距離(最大4,000フィート(1,200 m))に及ぶ可能性があります。経験則では、ビット/秒の速度にメートル単位の長さを掛けた値は108を超えてはなりません。したがって、50メートルのケーブルは2Mビット/秒よりも速く信号を送るべきではありません。

MAX485チップを使用できます。作業は非常に簡単ですが、優れたライブラリもあります。

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


RS-485などでワイヤを剥ぎ取り、シリアルに使用してお金を節約することはできませんか?9600は実行されませんほぼ同じ速度2Mbpsのよう。プロトコル/電圧などについて特別なものはありますか?それは長距離に適していますか?それは...いくつかのお金を節約かもしれない
匿名ペンギン

これは、ツイストペアを介して送信される差動信号です。ノイズを減らします。en.wikipedia.org/wiki/Differential_signaling
sachleen 14

このページのArduinoとRS485での優れたリソースであるgammon.com.au/forum/?id=11428
DaveP

7

Arduinoボードの通信機能を分類するために考えられる2つのカテゴリがあります。

2つのデバイス間:

  • シリアル:使いやすく、2つのデータ行のみが必要です。
  • OneWire:使いにくく低速

3つ以上のデバイス間

  • I2C:ネットワーク上に最大128個のデバイスを個別にアドレス指定できますが、マスターデバイスが必要で、2つのデータラインを使用します。これはWireとも呼ばれます。
  • SPI:使いにくいが、非常に高速で簡単なデバイス選択。多くのデータ行を使用します(3 + numのデバイス)
  • OneWire:アドレス指定されたoneWireを使用すると、通常のoneWireよりもさらに遅くなります。
  • SoftwareSerial:複数のデバイスを異なるシリアル回線で接続できますが、速度は遅くなります。
  • CAN:期限内にのみ利用可能で、アドレス指定可能

他にも利用可能な方法がありますが、これらのリストに必要な外部ハードウェアは最小限です。

距離の評価については、http://forum.arduino.cc/index.php topic = 82937.0およびhttp://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-distance.htmlを参照してください

これらのデータレートはシリアルで直接制御され、他の多くで調整できます。


5

Freakduinoは、ビルトインワイヤレスを備えたArduinoボードを製造しています。長距離無線は900 MHzで、短距離は2.4 GHzです。それらは実際にはXBeeラジオであり、プログラミングにはchibiArduinoと呼ばれるライブラリを使用すると思います。このライブラリはFreakduinoのWebサイトで入手(および文書化)されています。別の無線とワイヤレスで通信する場合、ブロードキャストを使用するか、FreakduinoのEEPROMで設定する必要がある値であるIDで無線を指定できます。

Freakduinoサイトから直接取得:

IEEE 802.15.4プロトコル(XBeeと同じ無線プロトコル)に基づく統合された無線無線の追加により、デバイスの無線制御または無線センサーデータ収集が可能になります。オプションのバッテリー回路が追加され、外部電源ケーブルなしで真のワイヤレスノードとして機能できるようになりました。このボードは、回路を損傷することを心配することなく、設計を安全に輸送したり、実際の使用シナリオで展開したりできるように、堅牢なエンクロージャに適合するように設計されています。

この900 MHzの無線は私のお気に入りです。900 MHzは2.4 GHzに比べてはるかに優れた範囲を提供するため、私は常に使用しています。無線は最大10 mWの送信電力を出力でき、驚くほどの範囲を取得できます。直視線では、数百メートルは驚くことではありません。追加の範囲が必要な場合は、変調モードをOQPSKからBPSKに変更することもできます。これにより、データレートが犠牲になりますが、標準モードでは最大250 kbpsから40 kbpsの範囲が追加されます。


0

あなたが言ったように、イーサネットシールドは高価ですが、シールドを使用する必要はありません。有線ネットワークの場合はenc28j60を、ワイヤレスの場合はESP8266を確認してください。どちらも約4ドルです。現在、ESP8266を使用していますが、約8台のデバイスが相互に通信し、Raspberry Piを使用しています。それは本当に素晴らしい小さなチップです!ENC28j60はまだ私の机の上のパッケージに座っているため、個人的に話すことはできません。


0

Ethernetブレイクアウトボード(Sparkfunで2ドル)を使用できます。これにより、イーサネットケーブルを使用できますが、完全なTCP / IPプロトコルを使用する必要はありません。代わりに、データピンをブレークアウトボードに接続し、イーサネットを使用してそれらを接続し、シリアルを使用して通信させることができます。強力かつ安価な接続のために、これをかなり多く使用して、Arduinoから1本のワイヤーセンサーを配置します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.