Arduino Lora не отправляет и не получает данныеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Arduino Lora не отправляет и не получает данные

Сообщение Anonymous »

Я пытаюсь отправлять и получать данные, используя 2 Arduino Nanos, 2 чипа Lora (Ryler 890 915MHZ), 2 экземпляра Arduino IDE. Я включил код, который я использую для моих 2 модулей Arduino и их соответствующих диаграмм.

Код: Выделить всё

void setup() {
// Initialize serial connexion with LoRa module
Serial.begin(115200);
delay(100);

// Configure RYLR890 using Serial.write()
Serial.write("AT+ADDRESS=1\r\n");
delay(100);
Serial.write("AT+NETWORKID=1\r\n");
delay(100);
Serial.write("AT+BAND=915000000\r\n");  // define frequency at 915 MHz
delay(100);
}

void loop() {
// check if data are available im LoRa module
if (Serial.available()) {
String data = Serial.readString();
}

// send message each 5 sec
static unsigned long lastSendTime = 0;
if (millis() - lastSendTime > 5000) {
Serial.write("AT+SEND=2,5,Hello\r\n"); // send "Hello" to module with 2nd adress
lastSendTime = millis();
}
}
< /code>
Приемный модуль < /p>
//#include 
#include 

String incomingString = "";
String prevString = "";
unsigned long lastSerialTime = 0;
unsigned long timeoutDuration = 10000; // Timeout de 10 secondes

LiquidCrystal_I2C lcd(0x27, 20, 4); // I2C address 0x27, 20 columns and 4 rows

void setup() {
Serial.begin(115200);
lcd.init(); // initialize the LCD
lcd.backlight();

lcd.setCursor(0, 0);
lcd.print("Bonjour");
lcd.setCursor(0, 1);
lcd.print("Drone Des Champs");
lcd.setCursor(0, 2);
lcd.print("Initialisation");
lcd.setCursor(0, 3);
lcd.print("de la connexion");
delay(1000);

// configure RYLR890 via commande AT

Serial.println("AT+ADDRESS=2"); // Define module address
delay(100);
Serial.println("AT+NETWORKID=1"); // Exemple pour définir le NetworkID à 1
delay(100);
Serial.println("AT+BAND=915000000"); // define frequency at 915 MHz
delay(100);
}

void loop() {
if (Serial.available()) {
incomingString = Serial.readStringUntil('\n'); // read until end of line
incomingString.trim(); // remove unnecessary characters
if (incomingString.length() > 0 && incomingString != prevString) {
prevString = incomingString;
lastSerialTime = millis(); // Update last received message
lcd.clear();
lcd.setCursor(0, 1);
lcd.print(incomingString);
}
}

// Check if no message is received for a long time
if (millis() - lastSerialTime > timeoutDuration) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Connexion perdue");
}
}

Диаграмма эмиттера:

Приемная диаграмма


Подробнее здесь: https://stackoverflow.com/questions/794 ... ceive-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»