【问题标题】:Transferring .csv files through XBee Modules通过 XBee 模块传输 .csv 文件
【发布时间】:2018-10-03 14:53:32
【问题描述】:
我们已经建立了一个可以收集数据的监控系统。该系统由几个带有加速度计的 RPi 组成,这些加速度计将数据记录到 .csv 文件中。
RPi 的分布如此之广,以至于它们彼此无法触及,也无法触及它们自己创建的 PiFY。
我们使用带有 Digimesh 2.4 的 XBee S1 来扩大范围,以通过 XCTU 发出 RPi 的命令。 XBee 模块设置为路由器。我们可以开始和停止数据收集。
现在我们有兴趣将收集到的数据(.csv 文件)传输到 Master RPi。如何通过这些 XBee 模块来完成?
【问题讨论】:
标签:
raspberry-pi
wireless
transfer
xbee
【解决方案1】:
我建议在 Python 中进行任何编码,并使用 pyserial 模块在串行端口上发送/接收数据。上手相当简单。
通过ATAP=0 将路由器配置为“AT 模式”(也称为“透明串行模式”),将DL 和DH 设置为0(告诉它使用协调器作为所有串行数据的目的地。
简单的协调器解决方案
让路由器在每个 CSV 记录中包含某种节点 ID,然后将协调器也配置为“AT 模式”。这样,它将从多个来源接收 CSV 记录,然后将它们从串行端口中转储出来。只要您从每个路由器发送完整的数据行,就不会在协调器上看到损坏的 CSV 记录。
更复杂的协调器解决方案
通过ATAP=1 在“API 模式”中配置协调器。选择您熟悉的编程语言,例如 C、Java 或 Python,然后从他们的 GitHub repository 获取 Digi 的开源“主机库”之一。
协调器将接收 API 帧内的 CSV 数据,以便识别发送数据的源设备。通过此配置,您可以轻松地将数据发送回特定设备或使用远程 AT 命令更改路由器上的 I/O。
请注意,无论使用哪种设置,RPi 都无需创建文件——只要数据准备好,它就可以发送 CSV 行。只需确保您正在暂存一个完整的行并在一次“串行写入”调用中发送它,以确保它不会通过无线方式分成多个数据包。