Turinys:

Paprastas „Arduino LoRa“bendravimas (daugiau nei 5 km): 9 žingsniai
Paprastas „Arduino LoRa“bendravimas (daugiau nei 5 km): 9 žingsniai

Video: Paprastas „Arduino LoRa“bendravimas (daugiau nei 5 km): 9 žingsniai

Video: Paprastas „Arduino LoRa“bendravimas (daugiau nei 5 km): 9 žingsniai
Video: Высокая плотность 2022 2024, Lapkritis
Anonim
Paprastas „Arduino LoRa“bendravimas (daugiau nei 5 km)
Paprastas „Arduino LoRa“bendravimas (daugiau nei 5 km)

Mes ketiname išbandyti E32-TTL-100 su mano biblioteka. Tai belaidis siųstuvo -imtuvo modulis, veikiantis 410 441 MHz (arba 868 MHz arba 915 MHz) dažniu, pagrįstu originaliu RFIC SX1278 iš SEMTECH, yra skaidrus perdavimas, TTL lygis. Modulis naudoja LORA išplitimo spektro technologiją.

Prekės

  • Arduino UNO
  • „LoRa e32“įrenginiai

Neprivaloma

  • „Mischianti Arduino LoRa“skydas (atviro kodo)
  • „Mischianti WeMos LoRa“skydas (atviro kodo)

1 veiksmas: įrenginio specifikacijos

Modulis turi FEC Forward Error Correction algoritmą, kuris užtikrina aukštą kodavimo efektyvumą ir gerą korekciją. Staigaus trikdžio atveju jis gali automatiškai ištaisyti sutrikusius duomenų paketus, kad atitinkamai pagerėtų patikimumas ir perdavimo diapazonas. Tačiau be FEC tuos da te paketus galima tik išmesti. O naudojant griežtą šifravimą ir iššifravimą, duomenų perėmimas tampa beprasmis. Duomenų glaudinimo funkcija gali sutrumpinti perdavimo laiką ir trukdžių tikimybę, tuo pačiu pagerindama patikimumą ir perdavimo efektyvumą.

  • Modulio dydis: 21*36 mm
  • Antenos tipas: SMA-K (50Ω varža)
  • Perdavimo atstumas: 3000 m (maks.)
  • Maksimali galia: 2dB (100mW)
  • Oro dažnis: 2,4 kbps (6 pasirinktiniai lygiai (0,3, 1,2, 2,4, 4,8, 9,6, 19,2 kbps)
  • Išmetimo ilgis: 512ByteRecept
  • ilgis: 512 baitų
  • Ryšio sąsaja: UART - 8N1, 8E1, 8O1,
  • Aštuonių tipų UART perdavimo sparta, nuo 1200 iki 115200 bps (numatytoji: 9600)
  • RSSI palaikymas: Ne (įmontuotas protingas apdorojimas)

2 žingsnis: perdavimo tipas

Transmisijos tipas
Transmisijos tipas

Skaidrus perdavimas Tai gali būti laikoma „demonstraciniu režimu“, pagal numatytuosius nustatymus galite siųsti pranešimą į visus to paties sukonfigūruoto adreso ir kanalo įrenginius.

Fiksuota transmisija

Šio tipo perdavimas gali nurodyti adresą ir kanalą, į kurį norite siųsti pranešimą. Pranešimą galite siųsti adresu:

  • Nurodytas įrenginys su iš anksto nustatytu žemu adresu, aukštu adresu ir kanalu.
  • Transliuoti pranešimą į kanalų įrenginių rinkinį Normalus režimas Tiesiog išsiųskite pranešimą.

3 žingsnis: įrenginio režimas

Įprastas režimas Tiesiog išsiųskite pranešimą.

Žadinimo ir energijos taupymo režimai

Kaip galite numanyti, jei įrenginys veikia pažadinimo režimu, jis gali „pažadinti“vieną ar kelis įrenginius, kurie veikia energijos taupymo režimu, su preambulės ryšiu.

Programos/miego režimas

Naudodami šią konfigūraciją galite pakeisti savo įrenginio konfigūraciją.

4 žingsnis: Įrenginio prijungimas

Laidų įrenginys
Laidų įrenginys
Laidų įrenginys
Laidų įrenginys

Čia yra visiškai prijungta įrenginio prijungimo schema, valdant M0 ir M1 kaiščius, leidžiama keisti įrenginio modalumą, todėl galite perjungti į konfigūraciją arba pažadinimo režimą naudodami programą, biblioteka jums padės operacija.

5 žingsnis: konfigūravimas

Konfigūracija
Konfigūracija

Egzistuoja nurodyta komanda, kad nustatytumėte ir gautumėte konfigūraciją

void setup () {Serial.begin (9600); vėlavimas (500); // Paleisti visus kaiščius ir UART e32ttl100.begin (); ResponseStructContainer c; c = e32ttl100.getConfiguration (); // Svarbu gauti konfigūracijos žymeklį prieš visas kitas operacijas Configuration configuration = *(Configuration *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (c.status.code); printParameters (konfigūracija); ResponseStructContainer cMi; cMi = e32ttl100.getModuleInformation (); // Svarbu gauti informacijos rodyklę prieš visas kitas operacijas ModuleInformation mi = *(ModuleInformation *) cMi.data; Serial.println (cMi.status.getResponseDescription ()); Serial.println (cMi.status.code); printModuleInformation (mi); }

6 žingsnis: Konfigūracijos rezultatas

Ir rezultatas tampa

Pradėkite sėkmę 1 ---------------------------------------- HEAD BIN: 11000000 192 C0 AddH BIN: 0 AddL BIN: 0 Chan BIN: 23 -> 433MHz SpeedParityBit BIN: 0 -> 8N1 (numatytasis) SpeedUARTDataRate BIN: 11 -> 9600bps (numatytasis) SpeedAirDataRate BIN: 10 -> 2.4kbps (numatytasis) OptionTrans BIN: 0 - > Skaidrus perdavimas (numatytasis) Pasirinkimas „Pullup BIN“: 1 -> „TXD“, „RXD“, „AUX“yra „push -pull/pull -up“parinktys „Wakeup BIN“: 0 -> 250 ms (numatytasis) Maitinimo blokas: 0-> 20 dBm (numatytasis) ---------------------------------------- 1 sėkmė -------------------------------------- HEAD BIN: 11000011 195 C3 Modelis Nr.: 32 Versija: 44 Savybės: 14 ----------------------------------------

7 veiksmas: siųskite pranešimą

Siųsti žinutę
Siųsti žinutę

Čia yra paprastas eskizas, kaip išsiųsti pranešimą visiems prie kanalo prijungtiems įrenginiams

void loop () {// Jei kažkas prieinama, jei (e32ttl100.available ()> 1) {// skaitykite eilutės pranešimą ResponseContainer rc = e32ttl100.receptMessage (); // Ar kažkas negerai, spausdinimo klaida, jei (rc.status.code! = 1) {rc.status.getResponseDescription (); } else {// Spausdinti gautus duomenis Serial.println (rc.data); }} if (Serial.available ()) {String input = Serial.readString (); e32ttl100.sendMessage (įvestis); }}

8 žingsnis: „Arduino“skydas

Arduino skydas
Arduino skydas

Aš taip pat sukuriu „Arduino“skydą, kuris tampa labai naudingas kuriant prototipus.

Ir išleidžiu jį čia kaip atviro kodo projektą

www.pcbway.com/project/shareproject/LoRa_E32_Series_device_Arduino_shield.html

9 žingsnis: biblioteka

Biblioteka
Biblioteka

„GitHub“saugykla

Palaikymo forumas

Papildoma dokumentacija

Rekomenduojamas: