NRF24L01 Трансляция струнного массажа - PullRequest
0 голосов
/ 11 февраля 2019

Я использую модуль NRF24L01 и пытаюсь создать Mesh Network (Топология полной сетки).Я использую библиотеку RF24 TMRH20 и каждый раз, когда пытаюсь написать сообщение с функцией 'write ()' - это не удается.

Вот код

#include "config.h"

void reciveMessage();
void sendMessage(String str);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  radio.begin();
  Serial.print("<START> ");
  Serial.println(NodeId);
  radio.openReadingPipe(1,addresses[0]);
  radio.openWritingPipe(addresses[1]); 
  radio.startListening();
}

void loop() {
  // put your main code here, to run repeatedly:
  if(radio.available()) reciveMessage();

  //If there is new message to send - send it
  if(Serial.available()>0){ 
    String str = Serial.readString();
    sendMessage(str);
  }
}


void reciveMessage(){
  payload_t payload;
  radio.read(&payload,sizeof(payload_t));
  Serial.print("New incoming massege: ");
  Serial.println(payload.data);
};

void sendMessage(String str){
  radio.openReadingPipe(1,addresses[1]);
  radio.openWritingPipe(addresses[0]); 
  payload_t payload;
  str.toCharArray(payload.data,sizeof(payload.data));
  radio.stopListening();
  if(!radio.write(&payload,sizeof(payload_t))){
     Serial.println("Send failed");
  };
  delay(100);
  radio.startListening();  
  radio.openReadingPipe(1,addresses[0]);
  radio.openWritingPipe(addresses[1]); 

};

Коддолжен писать на радио каждое сообщение, которое я ввожу на последовательный монитор

спасибо за помощь

...