LoRa получает только 2-4 пакета, затем перестает работать
Я работаю над проектом LoRa, используя [Ai-Thinker RA-01 SX1278 433 МГц LoRa][1] с библиотекой [sandeepmistry/arduino-LoRa][2]. Я изменил пример lorariever, чтобы он выглядел так
#include <SPI.h>
#include <LoRa.h>
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Receiver");
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
// try to parse packet
int packetSize = LoRa.parsePacket();
LoRa.onReceive(onReceive);
}
void onReceive(int packetSize) {
if (packetSize) {
// received a packet
Serial.print("Received packet '");
// read packet
while (LoRa.available()) {
Serial.print((char)LoRa.read());
}
// print RSSI of packet
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
}
}
Я успешно получаю 2-4 пакета, но затем не получаю ни одного, хотя передатчик все еще передает. (Если я перезапущу свой Arduino, он снова получит 2-4 пакета).
У меня оба модуля LoRa расположены очень близко друг к другу (около 10 см). Может ли это вызвать проблему? - Даже когда я попробовал пройти 15 метров со стенами, проблема осталась.
Иногда приемник прослушивается и начинает все время получать пакеты (один пакет, например, 50 раз), когда он прослушивается подобным образом, он не прекращает получать (уникальные) пакеты после любого числа.
Вы знаете, в чем может быть проблема? Спасибо.
Я использую Arduino Mega
#include <SPI.h>
#include <LoRa.h>
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Receiver");
if (!LoRa.begin(915E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
// попытка проанализировать пакет
int packetSize = LoRa.parsePacket();
if (packetSize) {
// получен пакет
Serial.print("Received packet '");
// прочитать пакет
while (LoRa.available()) {
Serial.print((char)LoRa.read());
}
// печать RSSI пакета
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
}
}
Это оригинальный пример Lorariever, но я ничего не получаю, используя его. [1]: https://www.laskarduino.cz/ai-thinker-ra-01-sx1278-433mhz-lora-modul/ [2]: https://github.com/sandeepmistry/arduino-LoRa
@krystof18, 👍0
Обсуждение1 ответ
Лучший ответ:
Я нашел решение.
Проблема заключалась в вызове onRecieve
в цикле
, а не в настройке
Это должно было выглядеть так...
#include <SPI.h>
#include <LoRa.h>
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Receiver");
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
LoRa.onReceive(onReceive);
LoRa.receive();
}
void loop() {
//do nothing
}
void onReceive(int packetSize) {
if (packetSize) {
// получен пакет
Serial.print("Received packet '");
// прочитать пакет
while (LoRa.available()) {
Serial.print((char)LoRa.read());
}
// печать RSSI пакета
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
}
}
- Сообщение об ошибке: "exit status 1 expected initializer before 'void'."
- Встроенная цифровая карта для управления роботом
- Ошибка компиляции скетча для преобразования класса/библиотеки.
- Проблемы с запуском моих 12-вольтовых двигателей постоянного тока на моем Mega 2560 Arduino
- PLs помогите мне отладить я использую arduino mega 2560 , rc522 (библиотека работает) , сервопривод (библиотека работает)
- Как разделить входящую строку?
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
начните с примера кода ... похоже, что вы внесли сомнительные изменения в пример кода, @jsotola
При использовании кода примера по умолчанию я вообще ничего не получаю., @krystof18