当前位置: 首页 > news >正文

【ardunio+sx1268】与【esp32+sx1268】实现不同主控单片机lora通讯

2023.21
在前文 esp32 + sx1268 的 spi 驱动调通之后,又尝试 ardunio +sx1268 驱动,实现不同主控对于lora模块 sx1268 的控制

文章目录

    • 1. 实验结果
    • 2.硬件描述
      • 2.1 sx1268
      • 2.2 ardunio ATmega328
    • 3.接线实物图
    • 5.开发环境
    • 6.代码实现

关于esp32+sx1268 的驱动以及代码,请参考:
【Esp32】Esp32+sx1268 Spi接口驱动SX1268模块

1. 实验结果

请添加图片描述
描述:
Esp32 sender ardunio reciever
完成完成一次数据交互:

  • Esp32 发送ping
  • ardunio 接收到ping 后,回复 pong
  • Esp32 接收到 pong

2.硬件描述

2.1 sx1268

SX1268 lora模块,采用,深圳市硅传科技有限公司,封装好的模组
SX1268ZTR4-GC
在这里插入图片描述

2.2 ardunio ATmega328

本实验ardunio 开发板主控为 ATmega328,是8位单片机,资料请参考:
Arduino Uno R3 硬件参考
在这里插入图片描述

3.接线实物图

在这里插入图片描述

5.开发环境

ardunio IDE

在这里插入图片描述

6.代码实现

ardunio IDE


void setup() 
{
  delay(1000);
  Serial.begin(115200);
  int16_t ret = lora.begin(RF_FREQUENCY,              //frequency in Hz
                           TX_OUTPUT_POWER);          //tx power in dBm
  if (ret != ERR_NONE) while(1) {delay(1);}

  lora.LoRaConfig(xx,xx,xx,xx,xx,xx);             //请自行添加参数

}

void loop() 
{
  uint8_t rxData[255];
  uint8_t txData[255];
  uint8_t rxLen = lora.Receive(rxData, 255);
  if ( rxLen > 0 )
  { 
    Serial.print("Receive rxLen:");
    Serial.println(rxLen); 
   
    if(memcmp(rxData,"PING",4)==0){
        Serial.print("接收到数据为 PING  \r\n");
        sprintf((char *)txData, "PONG");
        Serial.print("回复数据 PONG \r\n");
        lora.Send(txData, 4, SX126x_TXMODE_SYNC);
    }
    int8_t rssi, snr;
    lora.GetPacketStatus(&rssi, &snr);
    Serial.print("rssi: ");
    Serial.print(rssi, DEC);
    Serial.println(" dBm");
    Serial.print("snr: ");
    Serial.print(snr, DEC);
    Serial.println(" dB");
    Serial.println();
  }
  delay(1);
}

相关文章:

  • Linux常用命令——pvscan命令
  • Openharmony的编译构建--进阶篇1
  • 【C++入门】缺省参数
  • 【34】C语言 | 动态内存管理
  • QT入门Buttons之QToolButton
  • 小程序开发常见问题总结(超实用)
  • LCX端⼝转发
  • 数据分析:SQL和Python
  • 蓝桥杯重点(C/C++)(随时更新,更新时间:2023.1.31)
  • 本地Exchange备份方案
  • linux安装docker
  • 【K8S系列】Pod重启策略及重启可能原因
  • 【Linux】冯诺依曼体系结构
  • vue使用echarts画可视化大屏
  • docker 高级篇
  • 【进击的算法】动态规划——01背包
  • 实验8-动态规划与背包问题
  • docker安装mongdb
  • 23.1.29 make menuconfig执行过程
  • 实现简单的栈与队列