Базовая передача данных LORA

0

Я использовал два комплекта модулей ESP32 и Ebyte 433 МГц UART LORA для передачи и приема данных на большие расстояния. Этому модулю LORA не нужна библиотека. Мы можем просто использовать Serial.print() и Serial.read() для передачи и приема. При получении нам нужно декодировать данные из символа в целое число. Я использовал HardwareSerial Two вместо Serial. Производитель устанавливает канал, адрес и ключ в значения по умолчанию, поэтому нет необходимости менять их, пока мы не завершим базовую схему и не проведем дистанционное тестирование. Это будет работать из коробки. Убедитесь, что оба модуля имеют одинаковый номер детали. Модуль E220-400T22D рассчитан на расстояние 5 км. Поскольку я использовал низкое напряжение 3,3 В VCC, я смог легко пройти около 500 м (полкилометра) без прямой видимости, используя мощность около 25 МВт.

В некоторых странах используются разные частоты и ограничения мощности для передачи LORA. Для внутреннего тестирования нам не нужна антенна. Если мы не используем антенны, нам нужно отключать питание на несколько минут каждый час, чтобы охладить модуль. Причина в том, что радиочастотное питание будет возвращено обратно в модуль, если антенна не найдена, и она будет выделять тепло.

Несмотря на то, что эти модули могут использоваться для передачи и приема одновременно, я использовал один из них для передачи, а другой для приема только для простоты. Вы можете внести изменения в передачу обратной связи для подтверждения. Я использовал потенциометр для источника данных. Вы можете использовать любые датчики или любые данные для передачи. Вы можете использовать полученные данные для сохранения в базе данных или управления чем-либо с помощью MOSFET или relay.

Модуль передатчика

// Transmitter code
HardwareSerial SerialAT(1);
#define KNOB 4
int readVal;

void setup() { 
 SerialAT.begin(9600,SERIAL_8N1,16,17);
}

void() { 
 readVal = analogRead(KNOB);
 SerialAT.println(readVal);
 delay(500);   
}

Модуль приемника

// Receiver code
HardwareSerial SerialAT(1);

void setup() { 
 Serial.begin(9600);
 SerialAT.begin(9600,SERIAL_8N1,16,17);
}

void() {  
  if (SerialAT.available()) {
 Serial.write(SerialAT.read());
  }  
}

Перед загрузкой, пожалуйста, нажмите на следующие и введите / выберите

Файл → Настройки → Тип https://dl.espressif.com/dl/package_esp32_index.json в дополнительных URL-адресах менеджера досок

Инструменты → Плата → Менеджер плат → Введите esp32 и нажмите кнопку установить рядом с esp32 от Espressif Systems

Инструменты → Плата → ESP32 Arduino → Модуль ESP32 Wrover

Инструменты → Порт (выберите правильный порт)

Расширенная настройка (необязательно)

При приеме в UART данные поступают в виде одного символа за раз. Например, целое число 3256 имеет вид символа “3”, затем символа “2”, затем символа “5”, а затем символа “6”, наконец, новой строки символа “\ r”. Чтобы снова преобразовать их в число, нам нужно расшифровать это. Я показал простой декодер ниже. Просто замените:

( (SerialAT.available()) {
 Serial.write(SerialAT.read());
} 

со следующими кодами:

( (SerialAT.available()) {
  static char[[;]
  
  ;static uint8_t i;char c = SerialAT.read ();
  if ( c != '\r' && i < 7 ) // assuming "Carriage Return" is chosen as the line ending character
[i++] = c;
  else
  {
 input[i] = '\0';
 i = 0; 
    int receivedNumber = atoi( input ); // Now the receivedNumber is an integer we can store or 
                                        // use this value to control devices
   }
} 

Программное обеспечение и руководство по настройке RF можно загрузить с https://www.ebyte.com/en/data-download.html?id=579&pid=211#load . Для этого конкретного модуля диапазон адресов равен 0 ~ 65535; Диапазон каналов равен 0 ~ 83; Частота ключа равна 0 ~ 65535. Вы можете установить комбинацию разных адресов и ключей для безопасной передачи. Кроме того, вы также можете использовать зашифрованные данные и / или биты контрольной суммы.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x