Raspberry Pi Pico 发送 LoRa 消息
Raspberry Pi Pico sending LoRa messages
我正在使用此 pico tracker 代码中的两个函数:
setup_lora(433.0, 1, "CODEBRANE");
...
SendLoRaPacket(loraBuffer, 16, 0);
而且我不确定它是否在发送任何东西。我有一个 ESP32 在另一个 SX1278 板上接收,我已经测试了 ESP32 上的发送器和接收器板从正在发送的 ESP8266 接收并且板子很好。
ESP32/ESP8266 使用 Arduino 中的 LoRa 库 IDE 但 pico 使用上面的 Lora.cpp
函数并且该代码设置带宽、扩频因子等,LoRa图书馆没有。我假设 pico 发送正常,但 ESP32 没有收到任何东西。
发送方和接收方是否必须使用完全相同的设置、模式、带宽、扩频因子、implicit/explicit header 等?
pico使用模式1:
ImplicitOrExplicit = IMPLICIT_MODE;
ErrorCoding = ERROR_CODING_4_5;
Bandwidth = BANDWIDTH_20K8;
SpreadingFactor = SPREADING_6;
LowDataRateOptimize = 0;
我是否需要将这些翻译成 LoRa 库等效项才能让 ESP32 接收微微消息?
例如
LoRa.setSignalBandwidth(20.8E3);
LoRa.setSpreadingFactor(6);
LoRa.implicitHeaderMode();
但似乎没有 ErrorCoding
或 LowDataRateOptimize
的等价物。
通信确实取决于匹配各种参数。使用 help from the developer 的 pico-tracker 代码,我得到了一个 pico 向使用 Arduino LoRa 库的 ESP32 Lolin32 Lite 发送消息。
关于 pico:
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);
}
我正在使用此 pico tracker 代码中的两个函数:
setup_lora(433.0, 1, "CODEBRANE");
...
SendLoRaPacket(loraBuffer, 16, 0);
而且我不确定它是否在发送任何东西。我有一个 ESP32 在另一个 SX1278 板上接收,我已经测试了 ESP32 上的发送器和接收器板从正在发送的 ESP8266 接收并且板子很好。
ESP32/ESP8266 使用 Arduino 中的 LoRa 库 IDE 但 pico 使用上面的 Lora.cpp
函数并且该代码设置带宽、扩频因子等,LoRa图书馆没有。我假设 pico 发送正常,但 ESP32 没有收到任何东西。
发送方和接收方是否必须使用完全相同的设置、模式、带宽、扩频因子、implicit/explicit header 等?
pico使用模式1:
ImplicitOrExplicit = IMPLICIT_MODE;
ErrorCoding = ERROR_CODING_4_5;
Bandwidth = BANDWIDTH_20K8;
SpreadingFactor = SPREADING_6;
LowDataRateOptimize = 0;
我是否需要将这些翻译成 LoRa 库等效项才能让 ESP32 接收微微消息?
例如
LoRa.setSignalBandwidth(20.8E3);
LoRa.setSpreadingFactor(6);
LoRa.implicitHeaderMode();
但似乎没有 ErrorCoding
或 LowDataRateOptimize
的等价物。
通信确实取决于匹配各种参数。使用 help from the developer 的 pico-tracker 代码,我得到了一个 pico 向使用 Arduino LoRa 库的 ESP32 Lolin32 Lite 发送消息。
关于 pico:
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);
}