LilyGo-LoRa-Series/examples/ArduinoLoRa/LoRaReceiver/LoRaReceiver.ino

56 lines
1.4 KiB
Arduino
Raw Normal View History

2024-05-15 17:58:37 +08:00
// Only supports SX1276/SX1278
2022-06-16 14:01:20 +08:00
#include <LoRa.h>
2024-05-15 17:58:37 +08:00
#include "LoRaBoards.h"
2022-06-16 14:01:20 +08:00
void setup()
{
2024-05-15 17:58:37 +08:00
setupBoards();
2022-06-16 14:01:20 +08:00
// When the power is turned on, a delay is required.
delay(1500);
Serial.println("LoRa Receiver");
2024-05-15 17:58:37 +08:00
#ifdef RADIO_TCXO_ENABLE
pinMode(RADIO_TCXO_ENABLE, OUTPUT);
digitalWrite(RADIO_TCXO_ENABLE, HIGH);
#endif
2022-12-26 16:53:44 +08:00
LoRa.setPins(RADIO_CS_PIN, RADIO_RST_PIN, RADIO_DIO0_PIN);
2024-05-15 17:58:37 +08:00
if (!LoRa.begin(LORA_FREQ_CONFIG)) {
2022-06-16 14:01:20 +08:00
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop()
{
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
Serial.print("Received packet '");
String recv = "";
// read packet
while (LoRa.available()) {
recv += (char)LoRa.read();
}
Serial.println(recv);
// print RSSI of packet
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
if (u8g2) {
u8g2->clearBuffer();
char buf[256];
u8g2->drawStr(0, 12, "Received OK!");
u8g2->drawStr(0, 26, recv.c_str());
snprintf(buf, sizeof(buf), "RSSI:%i", LoRa.packetRssi());
u8g2->drawStr(0, 40, buf);
snprintf(buf, sizeof(buf), "SNR:%.1f", LoRa.packetSnr());
u8g2->drawStr(0, 56, buf);
u8g2->sendBuffer();
}
}
}