Arduino LoRa PHY 收发

公开源码

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得到的结果。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 6,360评论 1 9
  • 一 我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着...
    雪千殇阅读 449评论 1 2
  • 读书会,用今年的年度词来说有点“高大上”的感觉,但要找到参与一个好的读书群体,从中分享或者学习干货,还真不容...
    潘柳阅读 675评论 0 1
  • 6月27日 星期二 晴 今天游泳第三天,今天教练说我进步很大,教的都学会了,而且都闭气很久,我比昨天勇敢很...
    A叶瑞妹阅读 136评论 0 0
  • 朋友在朋友圈发了一张照片 两个藏族小伙胳膊撑地 肌肉浑厚结实 趴在地上 像两头斗角的藏牦牛 各自的犄角飚向 不同的...
    临冬雪狼阅读 311评论 0 0