Raspberry Pi Pico 发送 LoRa 消息

问题描述 投票:0回答:1

我正在使用此 pico tracker 代码中的两个函数:

setup_lora(433.0, 1, "CODEBRANE");
...
SendLoRaPacket(loraBuffer, 16, 0);

我不确定它是否发送了任何东西。我在另一块 SX1278 板上有一个 ESP32 接收,并且我已经在 ESP32 上测试了从正在发送的 ESP8266 接收的发送器和接收器板,并且板都很好。

ESP32/ESP8266 使用 Arduino IDE 中的 LoRa 库,但 Raspberry Pi Pico 使用上面的

Lora.cpp
函数,并且该代码设置 LoRa 库的带宽、扩频因子等没有。我假设 Raspberry Pi Pico 发送正常,但 ESP32 没有接收到任何内容。

发送方和接收方是否必须使用完全相同的设置、模式、带宽、扩频因子、隐式/显式标头等?

pico 使用模式 1:

ImplicitOrExplicit = IMPLICIT_MODE;
ErrorCoding = ERROR_CODING_4_5;
Bandwidth = BANDWIDTH_20K8;
SpreadingFactor = SPREADING_6;
LowDataRateOptimize = 0;

我需要将这些转换为 LoRa 库等效项才能让 ESP32 接收 pico 消息吗?

例如

LoRa.setSignalBandwidth(20.8E3);
LoRa.setSpreadingFactor(6);
LoRa.implicitHeaderMode();

但似乎没有

ErrorCoding
LowDataRateOptimize
的等价物。

lora raspberry-pi-pico
1个回答
0
投票

通信确实取决于各种参数的匹配。在 pico-tracker 代码开发人员的帮助下,我得到了一个 pico,它向使用 Arduino LoRa 库的 ESP32 Lolin32 Lite 发送消息。 在微微上:

int main() { setup_lora(433, 6, "CODEBRANE"); unsigned char loraBuffer[20] = "Hello From Pico!"; while (1) { SendLoRaPacket(loraBuffer, 16, 0); sleep_ms(5000); } } void SetupRFM98(float Frequency, int Mode) { ... else if (Mode == 6) { ImplicitOrExplicit = EXPLICIT_MODE; ErrorCoding = ERROR_CODING_4_8; Bandwidth = BANDWIDTH_62K5; SpreadingFactor = SPREADING_8; LowDataRateOptimize = 0; } ... }

在 ESP32 Lolin32 Lite 上:
void setup() {
  LoRa.setPins(LORA_SS, LORA_RST, LORA_DIO0);
  if (!LoRa.begin(433E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
  }

  LoRa.setTxPower(17);
  LoRa.setSpreadingFactor(8);
  LoRa.setCodingRate4(8);
  LoRa.setSignalBandwidth(62.5E3);
}


© www.soinside.com 2019 - 2024. All rights reserved.