我的设置很复杂,我想我还有一个明确的方法,但是如果您看到一种更好的方法来实现在Xbee上使用终端窗口的最终状态,请告诉我。我的用例是RPI#1具有Internet连接,但RPI#2没有,我想通过Xbee通过RPI#1完全控制和访问RPI#2。
RPI#1:
echo "ls" > /dev/ttyUSB0
RPI#2:
cat < /dev/ttyUSB0
答案 0 :(得分:0)
我能够从本地(尽管是远程)XBee主机的命令行发送和接收命令到远程(二级,离线)Xbee主机。当我开始研究串行设备如何打开登录终端并找到getty工具时,我找到了答案。这是我在透明模式下使用的设置说明,我仍在尝试使python-xbee和其他工具通过API模式工作以支持相同的概念。请注意,以下说明是95%的解决方案,但应使普通用户坚定地前进。我不是下面这些步骤的格式的原始作者,但是找到了每个步骤,并通过其他各种问答论坛将它们组合起来,以寻求解决方案:
首先,获取Digi Xbee X-CTU软件(未安装在Raspberry或Odroid等ARM设备上): XCTU: 通过以下Digi.com链接进行安装,但导航至相应的软件FTP链接:
https://www.digi.com/support/productdetail?pid=3352&type=drivers
Linux 64位:ftp://ftp1.digi.com/support/utilities/40002881_R.run
Linux 32位:ftp://ftp1.digi.com/support/utilities/40002880_R.run
Windows:ftp://ftp1.digi.com/support/utilities/40003026_T.exe
Mac:ftp://ftp1.digi.com/support/utilities/40003026_T.exe
通过安装X-CTU :
sudo wget ftp://ftp1.digi.com/support/utilities/40002880_R.run
sudo mv 40002881_R.run xctu_64bit.run
sudo chmod +x xctu_64bit.run
sudo ./xctu_64bit.run
查找X-Bee设备:
确保Xbee没有插入集线器,功率将太小,可通过以下错误YMMV识别:
dmesg | grep ttyUSB0
并返回错误:[228.800021] ftdi_sio ttyUSB0:无法获取调制解调器状态:-32
lsusb -v -d 0403:6001
sudo nano /boot/cmdline.txt
将控制台tty设备从AMA更改为USB,然后对于kgdboc(允许远程端监视启动过程),适当添加/进行匹配
console=ttyUSB0,115200 kgdboc=ttyUSB0,115200
sudo nano /etc/inittab
确保取消注释(删除#)(如果存在),将tty从AMA更改为USB
T0:23:respawn:/sbin/agetty -L ttyUSB0 115200 vt100
在Ubuntu x86系统上,通过以下方式使用X-CTU
sudo ./XCTU.desktop
将固件更新到最新版本
Pro S3B当前为8075,然后在每台设备上将波特率设置为115200
可以通过X-CTU使用本地xbee更新附近的其他xbee,然后将api模式设置为“带有转义的api模式”。请注意,除非您具有使API模式起作用的深入知识,否则应使用透明模式。我从透明模式开始,以演示以下工作,但此后转移到API模式以获取增强的发送接收控制功能(在撰写本文时,尚待更新)。
对将在网络上使用的所有设备执行相同的步骤;本地设备完成后,如果可见(足够近),则可以更新其他远程设备。
关闭X-CTU并通过以下方式将当前用户添加到拨出组中:
sudo usermod -a -G dialout root
然后重新启动:
通过以下方式设置Minicom:
sudo aptitude install minicom
minicom -s
serial port setup
a, set to /dev/ttyUSB0, then hit enter
e, set baud rate to 115200, then hit enter
hit enter again to close the window and arrive at the configuration page of minicom
select to save as dfl, followed by enter
then move to exit, and hit return
test connection to a locally connected device via
three plus symbols without hitting return
if it replies “ok” in a few seconds or less, all is well
或屏幕:
screen /dev/ttyUSB0
再次,如果看到登录提示,则表明您已连接。请注意,对于大多数用户而言,屏幕可能是最佳选择。它具有易用性(与Minicom相比)的固有品质,可以轻松处理低带宽连接,并且即使与远程主机断开连接也可以保持活动状态。 Ctl + a,然后k将断开连接。
安装Coreutils可以添加比Minicom更多的选项(建议使用屏幕):
sudo aptitude install coreutils && screen
stty -F /dev/ttyUSB0 -a
这将检查串行端口的功能和设置
与您的设备通信:
请注意,只要连接了X-Bee,您就可以在插入X-Bee的本地计算机上与网络交互,或者在通过SSH SSH的远程设备上与网络交互。另外,请注意,重新启动后,rc.local的以下设置并未保留我的设置;这是一项正在进行的工作。我要手动设置它们,直到获得自动化解决方案。 另外,我手动将rc.local添加到RPI,其操作方法在某处:
sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service
sudo systemctl enable serial-getty@ttyUSB0.service
sudo nano /etc/rc.local
add the below before exit 0
stty行是两次,因为已经注意到,第一个实例将报告的波特率更改为9600,第二个更改为115200。如果您手动执行此操作,请执行“停止”,然后重新执行start命令以收到提示。这可以是自动化的;我将使用过程监视器来更新此帖子。
stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb raw
stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb raw
sudo systemctl start serial-getty@ttyUSB0.service
然后,使用Minicom,Screen或“ cat”和“ watch”查看发送的消息。使用Minicom时,您将通过上述指示收到登录提示。如前所述,我仍在尝试使此模式在API模式下平稳运行,但是至少我知道我具有连接能力,并且可以使用透明模式通过命令行远程执行基本命令和控制,包括运行命令行程序和命令。透明模式没有提供任何增强的RF传播校正技术,因此我希望API模式能够正常运行; RSSI值和错误校正会很好。