Кодты іздеу

13 миль 20 км Wi-Fi жоқ па? LoRa кернеуді қалай алыс қашықтыққа жіберді! (Heltec WiFi LoRa 32 V3)

Бұл сабақтың бөлігі: Introduction to WiFi LoRa

13 миль 20 км Wi-Fi жоқ па? LoRa кернеуді қалай алыс қашықтыққа жіберді! (Heltec WiFi LoRa 32 V3)

13 мильге созылатын офф-грид кернеу мониторын LoRa және ESP32 көмегімен құру

Сізге алыс қашықтықтағы қуат көзін, мысалы, саяжайдағы күн панелін, қайықтағы аккумулятор банкін немесе үлкен фермадағы жабдықты бақылау қажет болды ма? Бұл жоба нұсқаулығы сізге 13 мильге (немесе 21 километрге) дейін деректерді жібере алатын, жазылым ақысыз және Wi-Fi немесе ұялы желілерге тәуелді емес, ұзақ қашықтықтағы офф-грид кернеу мониторын құруға көмектеседі.

Біз таратқыш пен қабылдағыш жасау үшін әрқайсысы 3000 мАч батареясы бар берік Meshnology N32 корпусында орналасқан екі Heltec WiFi LoRa 32 модулін қолданамыз. Таратқыш қарапайым кернеу бөлгіш тізбегін пайдаланып мақсатты кернеуді (бірнеше вольттан 100 В немесе одан жоғары) өлшейді және көрсеткішті LoRa арқылы сымсыз жібереді. Содан кейін қабылдағыш бұл кернеуді нақты уақытта көрсетеді, бұл сізге жүйелеріңізді мильдер қашықтықтан бақылауға мүмкіндік береді.


Ол қалай жұмыс істейді: Кернеу бөлгіші

Бұл жобаның негізі - кернеулердің кең ауқымын өлшеу мүмкіндігі. ESP32 кіріс түйреуіштері 3.3В-қа дейінгі кернеулерді ғана қауіпсіз өлшей алатындықтан, 12В немесе 100В көзін тікелей қоса алмаймыз. Мұны шешу үшін біз кернеу бөлгіші деп аталатын қарапайым тізбекті қолданамыз, ол микроконтроллердің оқуы үшін кернеуді қауіпсіз деңгейге түсіреді. Бұл 12:26 кезіндегі бейнеде түсіндіріледі.

Тізбек тізбектей жалғанған екі резисторды (R1 және R2) пайдаланады. Жоғары кернеу көзі (Vin) екі резисторға да қолданылады, ал ESP32 тек R2 резисторындағы төменгі, пропорционалды кернеуді (Vout) оқиды. Дұрыс резистор мәндерімен өте жоғары кернеулерді дәл өлшеуге болады.

R1 және R2 резисторлары бар кернеу бөлгішінің тізбек схемасы.

Резисторларды таңдағанда, жақсы ереже - күтілетін максималды кернеуді өлшеген кезде де шығыс кернеуін 3.3В шегінен төмен ұстайтын мәндерді таңдау. Ең жақсы дәлдік үшін мультиметрмен резисторларыңыздың нақты кедергісін өлшеп, кодта сол нақты мәндерді қолдану керек.

Кернеу бөлгішінің шығыс және кіріс кернеулерін есептеу формулалары.

Аппараттық құрастыру және сымдарды жалғау

Құрастыру Heltec LoRa 32 модулін және 3000 мАч батареяны N32 корпусының ішіне орналастыруды қамтиды. Корпуста экран мен түймелер үшін ойықтар және сыртқы антенна монтажы үшін тесік бар. Ең маңызды қауіпсіздік ескертулерінің бірі - құрылғыны қосу алдында әрқашан антеннаны жалғау, өйткені антеннасыз жіберу LoRa модулін зақымдауы мүмкін.

ESP32 және батареяға қосылған кернеу бөлгішін көрсететін негізгі сым схемасы.
Резисторлар мен сымдар қосылған нақты жоба сымдарының фотосы.
30В өлшеуді көрсететін таратқыштың OLED экранының фотосы.

Arduino IDE және кітапхананы орнату

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

Heltec модульдерін бағдарламалау үшін алдымен Arduino IDE конфигурациялау керек. Бұл бір реттік орнату өте маңызды және бейнеде 20:41 кезінде егжей-тегжейлі көрсетілген.

  1. ESP32 платаларын орнату: Файл > Параметрлер бөлімінде ресми Espressif ESP32 платаларының URL мекенжайын қосыңыз және Boards Manager бағдарламасынан "esp32" пакетін орнатыңыз. 
  2. Heltec қолдауын орнату: Параметрлеріңізге Heltec-ке арналған JSON URL мекенжайын қосыңыз. Содан кейін Boards Manager ішінен "Heltec ESP32" пакетін іздеп, орнатыңыз.
  3. Қажетті кітапханаларды орнату: Library Manager (Sketch > Include Library > Manage Libraries) көмегімен келесілерді орнатыңыз:
    • Heltec ESP32 dev boards
    • Adafruit GFX Library (және оның тәуелділіктері)
  4. Robojax кітапханасын орнату: Сізге .zip файлы ретінде берілген арнайы Robojax_HeltecLoRa32 кітапханасын жүктеп алу қажет. Оны Sketch > Include Library > Add .ZIP Library арқылы IDE-ге орнатыңыз.
  5. Платаны таңдау: Соңында, Tools > Board бөліміне өтіп, 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 жиілігі
#define TX_OUTPUT_POWER   2         // дБм-мен TX қуаты (2-21)
  • VOLTAGE_READING_PIN: ESP32-дегі кернеу бөлгішінің шығысына қосылған GPIO пин.
  • R1 және R2: Мультиметрмен өлшенген екі резистордың дәл кедергі мәндерін енгізіңіз. Бұл дәлдік үшін өте маңызды.
  • 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 - WiFi LoRa 32 үшін N32 корпусы
  • 12:26 - 150В-қа дейін өлшеуге арналған кернеу бөлгіші
  • 19:47 - Кернеуді өлшеуге арналған сымды дайындау
  • 20:41 - WiFi LoRa 32 үшін кітапхананы орнату
  • 25:02 - Тарату коды түсіндірілді
  • 27:16 - Қабылдау коды түсіндірілді
  • 28:36 - Кернеуді оқу демонстрациясы
  • 31:39 - Нақты әлемдегі қашықтық диапазонын сынау (13 миль)
Код жоқ.

Ресурстар мен сілтемелер

Файлдар📁

Arduino кітапханалары (zip)

Басқа файлдар