LoRa相关LPWAN设计

Arduino LoRa PHY 收发

2018-09-18  本文已影响27人  小鱼儿他老汉

公开源码

Github上Star最多的Arduino LoRa库是一位来自渥太华的印度籍工程师Sandee Mistry。同时是Node.js/LoRa/BLE的开发者。

不仅通过Github可以下载其例程和库,也可以直接在Arduino IDE中检索并引用该软件库。具体方法如下:

IDE | Sketch | Included Libraries | Library Manager

适配移植

基于Sendee的库,Arduino代码真的非常简单,至少比ARM mbed的简单。我的硬件大体上和官方类似,但是有些区别。所以必须设置NSS/RST/IRQ0。

#include <SPI.h>
#include <LoRa.h>

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("LoRa Receiver");

  LoRa.setPins(D10, A0, D2); // Nucleo pinout

  if (!LoRa.begin(915E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
  }else{
    Serial.println("LoRa detected");
  }
}

void loop() {
  // try to parse packet
  int packetSize = LoRa.parsePacket();
  if (packetSize) {
    // received a packet
    Serial.print("Received packet '");

    // read packet
    while (LoRa.available()) {
      Serial.print((char)LoRa.read());
    }

    // print RSSI of packet
    Serial.print("' with RSSI ");
    Serial.println(LoRa.packetRssi());
  }
}

实验结果

LoRa_Send_Receive.PNG

Fig1: 串口终端收发

在接收端,可以收到发送的信息,即

hello <n>

同时还可以收集到接受时刻的RSSI信号强度。该例程没有使用ISR/Callback,所有接受都是在主循环中直接pull register得到的结果。

上一篇 下一篇

猜你喜欢

热点阅读