Arduino

아두이노간 LoRa 통신 : 단방향 송신과 수신하기

작성자 임베디드코리아 작성일25-05-25 00:06 조회125회 댓글0건

첨부파일

< * 아두이노간 LoRa 통신  : 단방향 송신과 수신 *>
- 아두이노 두대를 이용하여 송과 수신을 한다.
- 송신 쪽에서 보낸 TEXT를 수신 쪽에서 출력하다.
- LoRa 모듈은 SPI 통신을 사용한다.

---< LoRa 모듈을 이용한 송신 소스 코드 > -------------------------------
#include <SPI.h>
#include <LoRa.h>

int counter = 0;

void setup() {
  Serial.begin(9600);
  Serial.println("LoRa Sender");

  if (!LoRa.begin(915E6)) {      // initialize ratio at 915 MHz
    Serial.println("LoRa init failed. Check your connections.");
    while(true);                //if failed, do nothing
  }

}

void loop() {
  Serial.print("Sending Packet: ");
  Serial.println(counter);

  // send packet
  LoRa.beginPacket();
  LoRa.println("Embedded Korea!! ");
  LoRa.print("counter : ");
  LoRa.print(counter);
  LoRa.endPacket();

  delay(3000);
}

---< LoRa 모듈을 이용한 수신 소스 코드 > -------------------------------
#include <SPI.h>
#include <LoRa.h>

void setup() {
  Serial.begin(9600);
  Serial.println("LoRa Receiver");

  if (!LoRa.begin(915E6)) {      // initialize ratio at 915 MHz
    Serial.println("LoRa init failed. Check your connections.");
    while(true);                //if failed, do nothing
  }

}

void loop() {
  // try to parse packet
  int packetSize = LoRa.parsePacket();  // 수신된 데이터 크기를 packetSize에 저장
  if (packetSize > 0) {    //수신된 데이터가 존재 한다.
   
    Serial.print("Received packet '");

    // read packet
    while (LoRa.available()) {
      Serial.print((char)LoRa.read());  //수신 데이터를 일어서 PC로 출력
    }

    // print RSSI of packet
    Serial.print("' with RSSI ");
    Serial.println(LoRa.packetRssi());  // 수신강도를 표시
  }

}