我将2个传感器模块(DHT11和TSL2561)与Arduino Nano配合使用,并希望通过nRF24L01模块将测量的值发送到另一个nRF24L01模块。我检查了其他主题,但到目前为止没有任何效果。
多数民众赞成在发射机代码:
void loop() {
String stringAll, stringTemp1, stringTemp2, stringHum1, stringHum2, stringLux1, stringLux2;
byte temperature = 0;
byte humidity = 0;
byte data[40] = {0};
if (dht11.read(pinDHT11, &temperature, &humidity, data)) {
Serial.print("Read DHT11 failed");
return;
}
stringAll += (int)temperature;
stringAll += ", ";
stringAll += (int)humidity;
stringAll += ", ";
sensors_event_t event;
tsl.getEvent(&event);
if (event.light) {
stringAll += event.light;
stringAll += " lux";
}
radio.write(&stringAll, sizeof(stringAll));
// Serial.println(stringAll);
delay(1100);
}
如果我使用“ Serial.println(stringAll)”进行测试,那就是字符串的格式(示例): 25,36,123.00 lux
多数民众赞成在接收方代码:
void loop() {
//Serial.println("omfg");
if (radio.available()) {
// char stringAll[1000] = "";
String stringAll;
len = radio.getDynamicPayloadSize();
radio.read( &stringAll, len );
Serial.println(stringAll);
}
}
在这种情况下,接收器的串行监视器中没有任何内容。如果我使用“ char stringAll [1000] =”“;”代替“ String stringAll;”,则串行监视器的每一行中只会出现两个正方形。
我不知道如何解决这个问题,如果有人可以帮助我,我将不胜感激。