- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试测试系统,但不确定问题出在 xbee、传输代码还是接收代码上。在我发布我的代码之前,我将解释我们对这些信号做了什么。我们有三个模拟信号,它们将使用 arduino 和 xbee 扩展板通过一个 xbee 串行发送。我们想将这些信号发送到接收 xbee,arduino 将输出这些信号,通过电线连接到第三个 arduino,以便在 Simulink 程序中使用。我们在传输端使用 arduino mega,在接收端使用 arduino uno。有人告诉我我需要进行串行流式传输,但我不确定那是怎么做到的。我知道 xbee 和 arduinos 都将信号数字化,但我们希望获得与我们传输的模拟信号非常相似的信号。非常感谢任何帮助!!
这就是我在 AT 模式下配置 xbees(系列 1)的方式:
Transmitting Xbee:
Channel:10
Pan id: 1234
MY: 10
DL: 11
Receiving Xbee:
Channel:10
Pan ID: 1234
MY: 11
DL: 10
传输Arduino代码:
void setup() {
Serial.begin(9600);
}
void loop() {
// read the input on analog pins
int sensorValue1 = analogRead(A0);
int sensorValue2 = analogRead(A1);
int sensorValue3 = analogRead(A2);
// print out the value you read:
Serial.println(sensorValue1);
Serial.println(sensorValue2);
Serial.println(sensorValue3);
delay(1);
}
接收Arduino代码:
int received1=8;
int received2=9;
int received3=10;
void setup(){
pinMode(received1, OUTPUT);
pinMode(received2, OUTPUT);
pinMode(received3, OUTPUT);
Serial.begin(9600);
}
void loop(){
if(Serial.available() )
{
byte output1 = Serial.read();
byte output2 = Serial.read();
byte output3 = Serial.read();
digitalWrite(received1, HIGH);
digitalWrite(received2, HIGH);
digitalWrite(received3, HIGH);
}
}
最佳答案
这听起来像是在“AT 模式”或“透明串行”模式下使用 XBee 模块,在这种模式下,模块 A 的串行端口上接收到的任何内容都会从模块 B 的串行端口发送出去,反之亦然。
如果是这种情况,将两个设备的串行端口直接相互连接可能有助于您进行初始开发。在那里制定您的串行协议(protocol),然后尝试使用 XBee 模块运行它作为串行电缆的替代品。
考虑您要发送的数据的格式,以及您将如何在另一端处理它。您将如何分离读数并确定它们属于哪个模拟输入?使用您当前的代码,您可以在不同的行上打印读数,但不清楚哪个是 A0
。也许您想在一行中发送它们,每次阅读之间用逗号隔开?
在接收端,您需要使用 atoi()
或 strtoul()
等 C 函数将文本转换回整数。
如果您尝试在 Arduino 上创建模拟输出,则可以使用使用 PWM(脉冲宽度调制)的数字输出。这Instructable很好地描述了这个概念。
关于c++ - xbee arduino通讯编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22523700/
如何让多个节点在不丢失数据的情况下与协调器通信? 当更多的 XBee 节点同时向同一个 XBee 协调器发送它们的数据时,是否会出现拥塞问题?据我所知,这是肯定的。 在这种情况下,如何避免这种拥堵?另
为每个终端设备获取 RSSI 的正确方法是什么? 场景:在 XBee 系列 2 radio 模块上使用 ZigBee 固件,API 模式,我有一个协调器和多个终端设备。每隔几秒,每个终端设备都会向协调
我已将协调器 xbee 连接到 beaglebone 的串行端口,即beaglebone 的 tx 和 rx。我的路由器的 D0 引脚连接到继电器。我想远程禁用或启用 D0 引脚。为此,我正在使用 p
我用三个 XBee Series 1 模块设置了一个 NonBeacon(w/Coordinator)网络。一个被配置为协调器。另外两个配置为终端设备。固件版本和配置如下。 公司 Modem: XB
我正在尝试通过 XBee Shield 启用 Arduino 的无线编程和 XBee Explorer。我在网上看过两个教程, XBee radios 和 Wireless Bootloading f
我已将一台 xbee pro 配置为协调器(API 模式),另一台配置为路由器(API 模式)。我尝试使用 xbee java api 将数据从协调器发送到路由器,但在路由器代码中我不断收到 null
路由器 AT 配置中的 Xbee 系列 2 具有连接到 XBee 的引脚 20 AD0 的电位计抽头输出,应该每 100 毫秒发送一次模拟数据。它是用 ATD02 和 ATIR64 设置的。 Coor
我正在将代码从 Python XBee 库移动到 Digi 的 Python XBee 库,我无法在文档中找到有关如何将 API 帧发送到远程 XBee 的语法。我正在使用 S1 和 S1 Pro 设
以下代码中使用 node-serialport 和 node-xbee 从路由器 AT 配置中的 XBee 系列 2 读取传入的 XBee 帧。电位计连接到 XBee 的引脚 20 AD0 模拟输入引
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 5 年前。 Improve this ques
我必须 IEEE 802.15.4运行的设备。问题是关于 XBee-PRO . Firmware: XBEE PRO 802.15.4 (Version: 10e6) Hardware: XBEE (
我有一个简单的 xbee 网络,其中有一群远程操作的从站,并且所有从站都与连接到服务器计算机的一个主站进行通信。这没问题。 从站都将其 ID 作为数据包的一部分发送,我想让主站在延迟后故意发送 Ack
我尝试测试系统,但不确定问题出在 xbee、传输代码还是接收代码上。在我发布我的代码之前,我将解释我们对这些信号做了什么。我们有三个模拟信号,它们将使用 arduino 和 xbee 扩展板通过一个
我一直致力于使用 Digi Xbee 系列 2 (ZigBee) 模块的项目。我有一个 python 脚本,它在我的协调器设备上接收数据并将其保存到数据库中。该脚本一直在返回数据中寻找并解析“samp
我有两个 XBee 网络。第一个连接到 BeagleBone Black第二个连接到我的电脑。 BeagleBone Black 定期向 PC 发送传感器值,每秒 10 次等。但是当我从我的 PC 向
我需要询问 xbee 数据包大小。 API数据包是否有最小尺寸? 我正在使用 Xbee S2 API 模式 AP1,但是当我从路由器向协调器发送以下帧时,数据包无法到达。数据包:uint8_t有效负载
我正在使用 XBee DigiMesh 2.4 API-2 和 Raspberry Pi。我将一个帧从一个节点广播到另一个节点。 要传输的帧:7e 0 12 10 1 0 0 0 0 0 0 ff f
我有 4 个具有温度、湿度和二氧化碳的 arduino 模块。他们通过 xbee 将这些数据作为单行发送。树莓派通过 xbee 读取这些行。这是我在树莓派级别得到的输出: 节点 2 57.4 21.9
我有一个使用 Xbees 运行的网状网络。我必须计算网络中所有可能的节点(即 20 个)及其地址。我想创建一个脚本来告诉我哪些节点处于打开状态(以防某些节点出于某种原因关闭)。 我该怎么做。 我正在使
我想使用 lm35 温度传感器和 xbee 传感器计算远程位置的实际温度。我从传感器获得模拟输入,但无法计算温度。下面给出了完整的场景。 场景: 我已将 LM35 温度传感器连接到 XBee(考虑传感
我是一名优秀的程序员,十分优秀!