Пребарување код

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 кутија со 3000mAh батерија, за да создадеме предавател и приемник. Предавателот ќе мери целен напон (од неколку волти до 100V или повеќе) користејќи едноставно коло за делење на напон и ќе го испраќа отчитувањето безжично користејќи LoRa. Приемникот потоа ќе го прикажува овој напон во реално време, овозможувајќи ви да ги следите вашите системи од километри далеку.


Како работи: Делник на напон

Јадрото на овој проект е способноста да се мери широк опсег на напони. Бидејќи влезните пинови на ESP32 можат безбедно да мерат напони само до 3.3V, не можеме директно да поврземе извор од 12V или 100V. За да го решиме ова, користиме едноставно коло наречено делник на напон, кое го намалува напонот на безбедно ниво за микроконтролерот да го прочита. Ова е објаснето во видеото на 12:26.

Колото користи два отпорници (R1 и R2) поврзани во серија. Изворот на висок напон (Vin) се применува на двата отпорници, а ESP32 го чита понискиот, пропорционален напон (Vout) само преку отпорникот R2. Со точни вредности на отпорниците, можете прецизно да мерите многу високи напони.

Шема на коло на делник на напон со отпорници R1 и R2.

Кога ги избирате вашите отпорници, добро правило е да изберете вредности што го одржуваат излезниот напон значително под границата од 3.3V, дури и кога го мерите максималниот напон што го очекувате. За најдобра точност, треба да ја измерите вистинската отпорност на вашите отпорници со мултиметар и да ги користите тие прецизни вредности во кодот.

Формули за пресметување на излезниот и влезниот напон на делникот на напон.

Склопување на хардвер и жици

Склопувањето вклучува поставување на Heltec LoRa 32 модулот и 3000mAh батеријата во N32 кутијата. Кутијата има отвори за екранот и копчињата, и дупка за надворешниот антенски држач. Една од најважните безбедносни забелешки е секогаш да ја имате антената поврзана пред да го вклучите уредот, бидејќи преносот без антена може да го оштети LoRa модулот.

Главна шема на жици што покажува делник на напон поврзан со ESP32 и батерија.
Фотографија на вистинското поврзување на проектот со отпорници и жици.
Фотографија на OLED екранот на предавателот што прикажува мерење од 30V.

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 поддршка: Додајте ја Heltec-специфичната JSON URL адреса во вашите поставки. Потоа, во Управувачот со плочи, пребарајте и инсталирајте го пакетот „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 // Пин за читање на напонот const int R1 = 39120; // Вашата измерена вредност за R1 во оми const int R2 = 3312; // Вашата измерена вредност за R2 во оми const float CALIB_FACTOR = 1.007f; // Калибрациски фактор за усогласување со мултиметар const char *displayTexttitle = "Напон:"; // Текст за OLED const char *displayTexTX = "(TX)"; // Овој безбедносен клуч МОРА да биде ИДЕНТИЧЕН на TX и RX уредите const char *userKey = "YOUR_SECRE8888"; // Овие LoRa поставки МОРА да бидат ИДЕНТИЧНИ на TX и RX уредите #define RF_FREQUENCY 915000000 // LoRa фреквенција во Hz #define TX_OUTPUT_POWER 2 // TX моќност во dBm (2-21)
  • VOLTAGE_READING_PIN: GPIO пинот на ESP32 на кој сте го поврзале излезот од вашиот делител на напон.
  • R1 и R2: Внесете ги точните вредности на отпорот на вашите два отпорници како што се измерени со мултиметар. Ова е клучно за точност.
  • CALIB_FACTOR: Ако прикажаниот напон е малку различен од доверлив мултиметар, можете да ја прилагодите оваа вредност нагоре или надолу (на пр., 1.008 или 0.995) за фино подесување на читањето. Поставете ја на 1.0 за да ја оневозможите.
  • userKey: Ова е вашиот приватен безбедносен клуч. Само уредите со точно истиот клуч можат да комуницираат.
  • RF_FREQUENCY: Работната фреквенција за LoRa. Ова мора да се совпаѓа на двата уреди и да биде легално за вашиот регион (на пр., 915MHz за Северна Америка).
  • 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 - Делител на напон за мерење до 150V
  • 19:47 - Подготовка на жица за мерење напон
  • 20:41 - Инсталирање библиотека за WiFi LoRa 32
  • 25:02 - Објаснет кодот за пренос
  • 27:16 - Објаснет кодот за приемник
  • 28:36 - Демонстрација на читање напон
  • 31:39 - Тест на реален домет во светот (13 милји)
Нема прикачен код.

Ресурси и референци

Датотеки📁

Arduino библиотеки (zip)

Други датотеки