I'm also trying to do LoRa peer-to-peer (P2P) communication using two MKRWAN 1310s. I got the MKRWAN LoRa info from GitHub (GitHub - sandeepmistry/arduino-LoRa: An Arduino library for sending and receiving data using LoRa radios.) but I'm having trouble to get it working. Can anyone see what I'm doing wrong? Thank you!
My script for sending is:
#include <SPI.h>
#include <LoRa.h>
#include <MKRWAN.h>
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Sender");
if (!LoRa.begin(915E6)) {
Serial.println("Starting LoRa failed!");
while (1); {}
}
delay(1000);
}
void loop() {
Serial.println();
Serial.println("Enter a message to send to network");
// Serial.println("(make sure that end-of-line 'NL' is enabled)");
while (!Serial.available());
String msg = Serial.readStringUntil('\n');
Serial.println();
Serial.print("Sending: " + msg + " - ");
for (unsigned int i = 0; i < msg.length(); i++) {
Serial.print(msg[i] >> 4, HEX);
Serial.print(msg[i] & 0xF, HEX);
Serial.print(" ");
}
Serial.println();
// send packet
Serial.print("Sending packet: ");
LoRa.beginPacket();
for (unsigned int i = 0; i < msg.length(); i++) {
LoRa.print(msg[i] >> 4, HEX);
LoRa.print(msg[i] & 0xF, HEX);
LoRa.print(" ");
}
LoRa.endPacket();
delay(500);
}
My script for receiving is:
#include <SPI.h>
#include <LoRa.h>
#include <MKRWAN.h>
String contents = "";
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Receiver");
if (!LoRa.begin(915E6)) {
Serial.println("Starting LoRa failed!");
while (1); {}
}
delay(1000);
}
void loop() {
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
Serial.print("Received packet '");
// read packet
while (LoRa.available()) {
contents += (char)LoRa.read();
}
// print RSSI of packet
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
Serial.println(contents);
}
LoRa.endPacket();
delay(500);
}