arduino - 在 2 个 arduino 之间使用 NRF24L01 发送多个传感器值
问题描述
我一直在到处寻找这个问题的答案,但我很难过。我有 2 个使用 NRF24L01 收发器进行通信的 arduino。我想发送 2 个传感器值,一个是浮点数,一个是整数。我试过了:
1) 单独发送。打印时这些值似乎会干扰,在每个循环中创建一个额外的 0 和换行符。
2) 将两个值组合在一个字符串中。字符串在另一端不可读。
我正在尝试以以下格式获取数据:
传感器1Val,传感器2Val
这是我的发射器代码的示例:
#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
RF24 Transmitter(9, 10);
const byte address[6] = {"00001"};
int sensorVal1 = 0;
float sensorVal2 = 2.5;
void setup() {
Serial.begin(9600);
//TRANSMITTER STUFF//
Transmitter.begin();
Transmitter.openWritingPipe(address);
Transmitter.setPALevel(RF24_PA_MIN);
Transmitter.setChannel(87);
Transmitter.setDataRate(RF24_250KBPS);
Transmitter.stopListening();
}
void loop()
{
Serial.print(sensorVal1);
Serial.print(", ");
Serial.println(sensorVal2);
Transmitter.write(&sensorVal1, sizeof(sensorVal1));
Transmitter.write(&sensorVal2, sizeof(sensorVal2));
delay(1000); //Wait 1s between measurements
sensorVal1++;
sensorVal2++;
}
这是我的接收器代码的示例:
#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
RF24 Receiver(9, 10);
const byte address[6] = {"00001"};
at a certain address (integer, 6)
int receive1;
float receive2;
void setup() {
Serial.begin(9600);
Receiver.begin();
Receiver.openReadingPipe(0, address);
Receiver.setPALevel(RF24_PA_MIN);
Receiver.setChannel(87);
Receiver.setDataRate(RF24_250KBPS);
Receiver.startListening();
}
void loop() {
if (Receiver.available()) {
Receiver.read(&receive1, sizeof(receive1));
Receiver.read(&receive2, sizeof(receive2));
Serial.print(receive1);
Serial.print(", ");
Serial.println(receive2);
delay(100);
}
}
我是arduino的新手,所以任何帮助都将不胜感激!
解决方案
使用结构发送数据。
struct MyStruct {
int sensorVal1;
float sensorVal2;
};
发件人代码
MyStruct myStruct;
// initialise the members of the structure with the values you want
Transmitter.write(&myStruct, sizeof(myStruct));
接收端
MyStruct myStruct;
Receiver.read(&myStruct, sizeof(myStruct));
推荐阅读
- python - 模型选择字段在模板上返回空值
- ios - iOS:UIScrollView 不会对所有值进行采样
- python-3.x - 熊猫数据框从去年同月获取滞后值
- reporting-services - 我想根据注入的字段来计算数量
- python - 在时间戳上连接两个不同的数据帧
- powershell - 从 [Reflection.Assembly]::Load() 加载的 DLL 导出 Powershell CMDlet
- javascript - 使用全局变量作为 mongodb 文档的计数器是否错误?
- python - 在运行“迁移”命令之前删除 Django 迁移文件?
- python - 将结果取决于先前结果的函数应用于 numpy 数组
- mysql - 选择任一列的值,但不能同时选择两者