Skip to content

LoRa (RFM95W & STM32F103)

blahlt edited this page Apr 27, 2020 · 1 revision

LoRa (RFM95W & STM32F103)

RFM95W

  1. ArduinoIDE aplinkoje einame į Tools->Manage Libraries... ir sudiegiam LoRa by Sandeep Mistry (v0.7.2)
  2. Sujungiam STM32F103 ir RFM95W
STM32F103 RFM95W
G GND
3.3 3.3V
A1 RESET
A4 NSS
A5 SCK
A6 MISO
A7 MOSI

Jei norim matyti duomenis per Serial tai taip pat prijungiam USB to Serial (PL2303, CP2102 ir pan.):

STM32F103 PL2303, CP2102 ir pan.
G GND
3.3 3V3
A9 RXD
A10 TXD
  1. Siųstuvas (angl. transmitter)
#include <LoRa.h>

int counter = 0;

#define PIN_SPI_SS              PA4
#define PIN_SPI_MOSI            PA7
#define PIN_SPI_MISO            PA6
#define PIN_SPI_SCK             PA5

void setup() { 
  Serial1.begin(9600);
  while (!Serial1);
  Serial1.println("Init Serial...[OK]");
  
  LoRa.setPins(PA4, PA1, PA2);
  Serial1.print("Init LoRa sender...");
  if (!LoRa.begin(866E6)) {
    Serial1.println("[FAILED]");
    Serial1.println("Check wires and reset.");
    while(1);
  }
  Serial1.println("[OK]");

  Serial1.println("Registers:");
  LoRa.dumpRegisters(Serial1);
  Serial1.println("Registers...[DONE]");
}

void loop() {
  Serial1.print("Sending packet: ");
  Serial1.println(counter);

  LoRa.beginPacket();
  LoRa.print("hello ");
  LoRa.print(counter);
  LoRa.endPacket();

  counter++;

  delay(2000);
}
  1. Imtuvas (angl. receiver)
#include <LoRa.h>

#define PIN_SPI_SS              PA4
#define PIN_SPI_MOSI            PA7
#define PIN_SPI_MISO            PA6
#define PIN_SPI_SCK             PA5

void setup() {
  Serial1.begin(9600);
  while (!Serial1);
  Serial1.println("Init Serial...[OK]");

  LoRa.setPins(PA4, PA1, PA2);
  Serial1.print("Init LoRa receiver...");
  if (!LoRa.begin(866E6)) {
    Serial1.println("[FAILED]");
    Serial1.println("Check wires and reset.");
    while(1);
  }
  Serial1.println("[OK]");

  Serial1.println("Registers:");
  LoRa.dumpRegisters(Serial1);
  Serial1.println("Registers...[DONE]");
}

void loop() {
  int packetSize = LoRa.parsePacket();
  if (packetSize) {
    Serial1.print("Received packet '");
    while (LoRa.available()) {
      Serial1.print((char)LoRa.read());
    }
    Serial1.print("' with RSSI ");
    Serial1.println(LoRa.packetRssi());
  }
}

Monopolinės antenos ilgis: ~86.5mm


Nuorodos

Clone this wiki locally