如何使用Arduino nRF24L01模块发送字符串-解码/编码字符串

时间:2019-04-27 15:35:31

标签: arduino wireless transmission

我将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;”,则串行监视器的每一行中只会出现两个正方形。

我不知道如何解决这个问题,如果有人可以帮助我,我将不胜感激。

0 个答案:

没有答案