我有两个LoRa模块,发射器是E32-900T20D(带ESP32 DevKitC V4),接收器是LoRa32U4。问题是接收器没有从发射器接收到任何东西。这是发射器的代码:
#include "LoRa_E32.h"
LoRa_E32 e32ttl100(&Serial2,UART_BPS_RATE_9600 );
void setup() {
Serial.begin(9600);
delay(500);
// Startup all pins and UART
e32ttl100.begin();
Serial.println("Hi, I'm going to send messages every second!");
// Send first message
ResponseStatus rs = e32ttl100.sendMessage("Hello, world?");
// Check if message was sent successfully
if (rs.code == 1) {
Serial.println("Message sent successfully");
} else {
Serial.println("Failed to send message");
}
}
void loop() {
delay(2000);
// Send message
ResponseStatus rs = e32ttl100.sendMessage("Hello, world?");
// Check if message was sent successfully
if (rs.code == 1) {
Serial.println("Message sent successfully");
} else {
Serial.println("Failed to send message");
}
}
这是发射器的结果:
Message sent successfully
Message sent successfully
Message sent successfully
这是接收器的代码:
#include <LoRa.h>
#define ss 8
#define reset 4
#define dio0 7
void setup() {
Serial.begin(9600);
LoRa.setPins(ss, reset, dio0);
if (!LoRa.begin(868E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
// Set signal bandwidth to 125kHz
LoRa.setSignalBandwidth(125E3);
// Set TX power to 20dBm
LoRa.setTxPower(20);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
}
void loop() {
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
Serial.print("Received packet with RSSI ");
Serial.print(LoRa.packetRssi());
Serial.print(": ");
while (LoRa.available()) {
Serial.write(LoRa.read());
}
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
}
知道两者都配置为频率 868 Mhz
问题是什么?请帮忙
UART 管理的 Ebyte 模块并不是真正的 LoRa 设备。它们的设置与常规 LoRa 模块的设置不匹配。我一直怀疑他们使用的是FSK传输而不是LoRa。要么完全留在 Ebyte 生态系统内,要么退出。不要混合非 Ebyte 和 Ebyte 模块,因为如果你这样做,你将确保的只是痛苦。