Я использую 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 люкс
То есть код получателя:
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;", то в каждой строке последовательного монитора появляются только два квадрата.
Я понятия не имею, как решить эту проблему, и был бы признателен, если бы кто-то мог мне помочь.