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

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


关于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);
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积跬步、至千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值