我正在计划一个由几个Arduino板组成的Arduino系统。板之间的最大距离约为50米。我想在这些之间发送基本数据,例如短字符串或整数。我知道我可以通过以太网电缆发送数据,但是这需要以太网屏蔽或Arduino以太网板,从而使成本增加了一倍。我是否可以通过低预算的方式仅使用最基本的板(例如Uno)和其他一些组件但不使用全屏蔽来连接板?
我正在计划一个由几个Arduino板组成的Arduino系统。板之间的最大距离约为50米。我想在这些之间发送基本数据,例如短字符串或整数。我知道我可以通过以太网电缆发送数据,但是这需要以太网屏蔽或Arduino以太网板,从而使成本增加了一倍。我是否可以通过低预算的方式仅使用最基本的板(例如Uno)和其他一些组件但不使用全屏蔽来连接板?
Answers:
对于长距离有线通信,请查看RS-485。
由于它在双绞线上使用差分平衡线(例如RS-422),因此它可以跨越相对较大的距离(最大4,000英尺(1,200 m))。一条经验法则是,以位/秒为单位的速度乘以以米为单位的长度不应超过108。因此,一条50米的电缆的信号传输速度不应超过2 Mbit / s
您可以使用MAX485芯片。使用起来很容易,但是也有一个很好的库:
我可以想到两种类别来对Arduino板的通讯功能进行分类:
在2台设备之间:
在两个以上的设备之间
还有其他方法可用,但是列出的方法仅需要最少的外部硬件。
有关距离等级,请参见http://forum.arduino.cc/index.php?topic=82937.0和http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-distance.html
这些数据速率在串行中直接控制,并且可以在许多其他方面进行调整。
Freakduino用内置的无线技术制作了一些Arduino板。它们的远程无线为900 MHz,较短的无线为2.4GHz。我认为它们实际上是XBee无线电,对于编程,您将使用一个名为chibiArduino的库,该库可在Freakduino网站上获得(并记录在案)。与其他无线电进行无线通讯时,可以使用广播或通过其ID指定无线电,该ID是您需要在Freakduino的EEPROM中设置的值。
直接从Freakduino网站上获取:
添加基于IEEE 802.15.4协议(与XBee相同的无线电协议)的集成无线电可以实现对设备的无线控制或无线传感器数据收集。添加了可选的电池电路,因此它可以充当真正的无线节点,而无需任何外部电源线。该电路板还设计为适合坚固的外壳,因此可以安全地运输设计或在实际使用情况下部署设计,而不必担心损坏电路。
这款900 MHz收音机是我个人的最爱。我一直使用它,因为900 MHz提供的范围比2.4 GHz好得多。无线电可以输出高达10 mW的发射功率,这可以得到令人惊讶的范围。有了直接的视线,几百米就不足为奇了。如果需要其他范围,也可以将调制模式从OQPSK更改为BPSK。这导致了额外的范围,但以数据速率为代价,在标准模式下,最大值从250 kbps增加到40 kbps。