Я пытаюсь отправлять и получать данные, используя 2 Arduino Nanos, 2 чипа Lora (Ryler 890 915MHZ), 2 экземпляра Arduino IDE. Я включил код, который я использую для моих 2 модулей Arduino и их соответствующих диаграмм.
Я пытаюсь отправлять и получать данные, используя 2 Arduino Nanos, 2 чипа Lora (Ryler 890 915MHZ), 2 экземпляра Arduino IDE. Я включил код, который я использую для моих 2 модулей Arduino и их соответствующих диаграмм.[code]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
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"); } }