Код для поиска

13 миль 20 км без WiFi? Как LoRa передавал напряжение на безумные расстояния! (Heltec WiFi LoRa 32 V3)

Этот урок является частью: Введение в WiFi LoRa

13 миль 20 км без WiFi? Как LoRa передавал напряжение на безумные расстояния! (Heltec WiFi LoRa 32 V3)

Постройте беспроводной вольтметр на расстоянии 13 миль с помощью LoRa и ESP32

Вы когда-нибудь нуждались в мониторинге удаленного источника питания, например, солнечной панели на даче, аккумуляторной батареи на лодке или оборудования на большом фермерском хозяйстве, находясь за километры? Этот проектный гид проведет вас через создание дальнобойного, автономного монитора напряжения, который может передавать данные на невероятное расстояние.13 миль (или 21 километр), без абонентских плат и зависимости от Wi-Fi или сотовых сетей.

Мы будем использовать дваHeltec WiFi LoRa 32модули, каждый в прочном корпусеКорпус Meshnology N32с аккумулятором емкостью 3000 мАч, чтобы создать передатчик и приемник. Передатчик будет измерять целевое напряжение (от нескольких вольт до 100 В или более) с помощью простого делителя напряжения и передавать данные по беспроводной сети с использованием LoRa. Приемник затем будет отображать это напряжение в реальном времени, позволяя вам контролировать ваши системы на расстоянии.


Как это работает: делитель напряжения

Основой этого проекта является возможность измерения широкого диапазона напряжений. Поскольку входные контакты ESP32 могут безопасно измерять только напряжения до 3,3 В, мы не можем напрямую подключить источник на 12 В или 100 В. Чтобы решить эту проблему, мы используем простую схему, которую называютделитель напряжения, который понижает напряжение до безопасного уровня для считывания микроконтроллером. Это объясняется в видео на12:26.

Схема использует два резистора (R1 и R2), соединенных последовательно. Высоковольтный источник (V)в) применяется к обоим резисторам, и ESP32 считывает более низкое, пропорциональное напряжение (Vнаружу) только через резистор R2. С правильными значениями резисторов вы можете точно измерять очень высокие напряжения.

Схема цепи делителя напряжения с резисторами R1 и R2.

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

Формулы для расчета выходного напряжения делителя напряжения и входных напряжений.

Сборка оборудования и проводка

Сборка включает в себя установку модуля Heltec LoRa 32 и батареи на 3000mAh внутри корпуса N32. Корпус имеет вырезы для экрана и кнопок, а также отверстие для крепления внешней антенны. Одним из самых важных замечаний по безопасности является то, чтовсегда подключайте антенну перед включением устройства, поскольку передача без антенны может повредить модуль LoRa.

Основная схема подключения, показывающая делитель напряжения, соединенный с ESP32 и батареей.
Фото фактической проводки проекта с подключенными резисторами и проводами.
Фото OLED-экрана передатчика с отображением измерения 30 В.

Настройка Arduino IDE и библиотек

https://resource.heltec.cn/download/package_heltec_esp32_index.json

Чтобы запрограммировать модули Heltec, сначала необходимо настроить вашу Arduino IDE. Эта однократная настройка имеет важное значение и подробно описана на20:41в видео.

  1. Установите платы ESP32:Добавьте официальный URL-адрес плат Espressif ESP32 в Файл > Настройки и установите пакет "esp32" из Диспетчера плат.
  2. Установите поддержку Heltec:Добавьте URL-адрес JSON для Heltec в ваши настройки. Затем в Менеджере плат добавьте в поиск и установите пакет "Heltec ESP32".
  3. Установите необходимые библиотеки:Используя Диспетчер Библиотек (Эскиз > Включить Библиотеку > Управлять Библиотеками), установите следующее:
    • Heltec ESP32 dev boards
    • Adafruit GFX Library(и его зависимости)
  4. Установите библиотеку Robojax:Вам нужно будет скачать кастомныйRobojax_HeltecLoRa32библиотека, которая предоставляется в виде .zip файла. Установите её в IDE через Эскиз > Подключить библиотеку > Добавить .ZIP библиотеку.
  5. Выберите доску:Наконец, перейдите в Инструменты > Доска и выберитеHeltec WiFi LoRa 32 (V3)и правильный COM-порт.

Объяснение конфигурации кода

Проект использует два отдельных эскиза: один дляПередатчик (TX)и один дляПриемник (RX). Вам нужно настроить всего несколько ключевых параметров в коде передатчика, чтобы он работал, как объяснено на25:02Код приемника требует совпадения настроек LoRa.


#define VOLTAGE_READING_PIN 4  // The pin reading the voltage
const int R1 = 39120; // Your measured value for R1 in ohms
const int R2 = 3312; // Your measured value for R2 in ohms

const float CALIB_FACTOR = 1.007f; // Calibration factor to match a multimeter

const char *displayTexttitle = "Voltage:"; // Text for the OLED
const char *displayTexTX = "(TX)";

// This security key MUST be IDENTICAL on the TX and RX devices
const char *userKey = "YOUR_SECRE8888";

// These LoRa settings MUST be IDENTICAL on the TX and RX devices
#define RF_FREQUENCY      915000000 // LoRa Frequency in Hz
#define TX_OUTPUT_POWER   2         // TX Power in dBm (2-21)
  • VOLTAGE_READING_PINGPIO-вывод на ESP32, к которому вы подключили выход вашего делителя напряжения.
  • R1иR2Введите theточные значения сопротивленияваших двух резисторов, измеренных мультиметром. Это имеет решающее значение для точности.
  • CALIB_FACTORЕсли ваше отображаемое напряжение немного отличается от значения надежного мультиметра, вы можете подкорректировать это значение вверх или вниз (например, 1.008 или 0.995), чтобы точно настроить показание. Установите это на1.0отключить.
  • userKeyЭто ваш ключ частной безопасности. Только устройства с точно таким же ключом могут общаться.
  • RF_FREQUENCYОперационная частота для LoRa. Она должна совпадать на обоих устройствах и быть легальной для вашего региона (например, 915 МГц для Северной Америки).
  • TX_OUTPUT_POWERПередаточная мощность варьируется от 2 (низкая мощность, короткое расстояние) до 21 (высокая мощность, длинное расстояние). Более высокая мощность использует больше энергии батареи. Для теста на расстоянии 13 миль была использована величина 20. Для тестирования на вашем столе достаточно 2.

Код приемника имеет аналогичные настройки дляuserKeyиRF_FREQUENCYэто должно соответствовать настройкам передатчика.


Живой проект в действии

После загрузки кода передающая единица начнет измерять напряжение от вашего подключенного источника, отображая его на своем OLED-экране с индикатором "(TX)", и передавать данные через LoRa. Приемная единица, когда она будет запрограммирована с соответствующим ключом безопасности и частотой, будет слушать сигнал. Как только она получит допустимую передачу, она отобразит идентичное напряжение на своем экране с индикатором "(RX)".

Как показано в испытании на дальность на31:39эта установка невероятно эффективна. С антенной с высоким коэффициентом усиления и ясной линией видимости система успешно передавала и принимала точные показания напряжения с расстояния 13 миль, что доказывает ее надежность и устойчивость для серьезных задач удаленного мониторинга.


Видео главы

  • 00:00- Начать
  • 03:33- Введение в плату и LoRa
  • 05:47- Корпус N32 для WiFi LoRa 32
  • 12:26- Делитель напряжения для измерения до 150В
  • 19:47- Подготовка провода для измерения напряжения
  • 20:41Установка библиотеки для WiFi LoRa 32
  • 25:02- Объяснение кода передачи
  • 27:16- Объяснение кода получателя
  • 28:36- Демонстрация считывания напряжения
  • 31:39Тест дистанции в реальных условиях (13 миль)
Нет кода.

Common Course Files

Ресурсы и ссылки

Файлы📁

Другие файлы