Arduino

아두이노간 LoRa 통신 : LED 사용하기

작성자 임베디드코리아 작성일25-05-25 01:04 조회88회 댓글0건

첨부파일

<*  LoRa 통신 : LED 사용 *>
- 수신측에 LED를 연결하고
- 송신측에서 "0"를 보내면, 수신측에서 LED를 끄고,
- 송신측에서 "1"를 보내면, 수신측에서 LED를 켠다,

---- < LoRa 통신 LED 동작 송신 소스 코드 > -------------------------
#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);

  LoRa.beginPacket();
  LoRa.write('0');
  LoRa.endPacket();
 
  delay(3000);

  LoRa.beginPacket();
  LoRa.write('1');
  LoRa.endPacket();
 
  delay(3000);

}

---- < LoRa 통신 LED 동작 수신 소스 코드 > -------------------------
#include <SPI.h>
#include <LoRa.h>

#define LED 3

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 '");
    Serial.println(packetSize);

    /*  read packet */
    char data = LoRa.read();  // 데이터 수신
    if(data == '0'){
      //LED끄기
      digitalWrite(LED,LOW);
    }else if(data == '1'){
      //LED켜기
      digitalWrite(LED,HIGH);
    }
   
    /*  print RSSI of packet */
    Serial.print("' with RSSI ");
    Serial.println(LoRa.packetRssi());
  }
}