Cuprins:

Comunicare simplă Arduino LoRa (mai mult de 5 km): 9 pași
Comunicare simplă Arduino LoRa (mai mult de 5 km): 9 pași
Anonim
Comunicare simplă Arduino LoRa (mai mult de 5 km)
Comunicare simplă Arduino LoRa (mai mult de 5 km)

Vom testa E32-TTL-100 cu biblioteca mea. Este un modul de emisie-recepție fără fir, funcționează la 410 441 MHz (sau 868 MHz sau 915 MHz) bazat pe RFIC SX1278 original de la SEMTECH, este disponibilă o transmisie transparentă, la nivel TTL. Modulul adoptă tehnologia LORA cu spectru larg.

Provizii

  • Arduino UNO
  • Dispozitive LoRa e32

Opțional

  • Scutul Mischianti Arduino LoRa (open source)
  • Scutul Mischianti WeMos LoRa (sursă deschisă)

Pasul 1: Specificațiile dispozitivelor

Modulul prezintă algoritmul FEC Forward Error Correction, care asigură o eficiență ridicată a codificării și o performanță bună de corecție. În caz de interferență bruscă, poate corecta automat pachetele de date interferate, astfel încât fiabilitatea și gama de transmisie să fie îmbunătățite corespunzător. Dar fără FEC, acele pachete da te pot fi abandonate numai. Și cu criptarea și decriptarea riguroase, interceptarea datelor devine inutilă. Funcția de compresie a datelor poate reduce timpul de transmisie și probabilitatea de a fi interferență, îmbunătățind în același timp fiabilitatea și eficiența transmisiei.

  • Dimensiunea modulului: 21 * 36mm
  • Tipul antenei: SMA-K (impedanță 50Ω)
  • Distanta de transmisie: 3000m (max)
  • Putere maximă: 2dB (100mW)
  • Tarife aeriene: 2,4 Kbps (6 nivel opțional (0,3, 1,2, 2,4, 4,8, 9,6, 19,2 kbps)
  • Lungime emisie: 512ByteReceive
  • lungime: 512Byte
  • Interfață de comunicare: UART - 8N1, 8E1, 8O1,
  • Opt tipuri de rată de transmisie UART, de la 1200 la 115200bps (implicit: 9600)
  • Suport RSSI: Nu (procesare inteligentă încorporată)

Pasul 2: tipul transmisiei

Tipul transmisiei
Tipul transmisiei

Transmisie transparentă Aceasta poate fi considerată ca un „mod demonstrativ”, în mod implicit puteți trimite mesaj către toate dispozitivele cu aceeași adresă și canal configurat.

Transmisie fixă

Acest tip de transmisie puteți specifica o adresă și un canal unde doriți să trimiteți mesajul. Puteți trimite un mesaj către:

  • Dispozitiv specificat cu o adresă predeterminată scăzută, adresă înaltă și canal.
  • Transmiteți mesajul către un set de dispozitive de canal Mod normal Trimiteți mesajul.

Pasul 3: Mod dispozitiv

Mod normal Trimiteți simplu mesaj.

Modul de trezire și modul de economisire a energiei

Așa cum puteți intenționa dacă un dispozitiv este în modul Trezire poate „trezi” unul sau mai multe dispozitive care sunt în modul de economisire a energiei cu o comunicare în preambul.

Mod program / somn

Cu această configurație puteți modifica configurația dispozitivului dvs.

Pasul 4: Dispozitiv de cablare

Dispozitiv de cablare
Dispozitiv de cablare
Dispozitiv de cablare
Dispozitiv de cablare

Aici schema de conectare a dispozitivului, aceasta este o conexiune completă, cu gestionarea pinului M0 și M1 permite schimbarea modalității dispozitivului, astfel încât să puteți trece la modul de configurare sau trezire cu programul, biblioteca vă ajută în toate acestea Operațiune.

Pasul 5: Configurare

Configurare
Configurare

Exista o comandă specificată pentru a seta și a obține configurația

void setup () {Serial.begin (9600); întârziere (500); // Porniți toți pinii și UART e32ttl100.begin (); ResponseStructContainer c; c = e32ttl100.getConfiguration (); // Este important să obțineți indicatorul de configurare înainte de orice altă operațiune Configurare configurație = * (Configurare *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (c.status.code); printParameters (configurare); ResponseStructContainer cMi; cMi = e32ttl100.getModuleInformation (); // Este important să obțineți indicatorul de informații înainte de orice altă operație ModuleInformation mi = * (ModuleInformation *) cMi.data; Serial.println (cMi.status.getResponseDescription ()); Serial.println (cMi.status.code); printModuleInformation (mi); }

Pasul 6: Rezultatul configurării

Iar rezultatul devine

Începe succesul 1 ---------------------------------------- HEAD BIN: 11000000 192 C0 AddH BIN: 0 AddL BIN: 0 Chan BIN: 23 -> 433MHz SpeedParityBin BIN: 0 -> 8N1 (implicit) SpeedUARTDataRate BIN: 11 -> 9600bps (implicit) SpeedAirDataRate BIN: 10 -> 2.4kbps (implicit) Opțiune Trans BIN: 0 - > Transmisie transparentă (implicit) Opțiune PULLup BIN: 1 -> TXD, RXD, AUX sunt push-pulls / pull-up-uri OptionWakeup BIN: 0 -> 250ms (implicit) Opțiune BEC FEC: 1 -> Activați comutatorul de corectare a erorilor înainte (implicit) OptionPower BIN: 0 -> 20dBm (implicit) ---------------------------------------- Succes 1 ---------------------------------------- CAPUTA: 11000011 195 C3 Model nr.: 32 Versiune: 44 Caracteristici: 14 ----------------------------------------

Pasul 7: Trimiteți un mesaj

Trimite mesaj
Trimite mesaj

Aici o schiță simplă pentru a trimite un mesaj tuturor dispozitivelor atașate canalului

void loop () {// Dacă este disponibil ceva dacă (e32ttl100.available ()> 1) {// citiți mesajul String ResponseContainer rc = e32ttl100.receiveMessage (); // Se întâmplă ceva eroare de imprimare dacă (rc.status.code! = 1) {rc.status.getResponseDescription (); } else {// Imprimați datele primite Serial.println (rc.data); }} if (Serial.available ()) {String input = Serial.readString (); e32ttl100.sendMessage (intrare); }}

Pasul 8: Scutul pentru Arduino

Scutul pentru Arduino
Scutul pentru Arduino

Creez și un scut pentru Arduino care devine foarte util pentru prototipare.

Și îl lansez aici ca proiect open source

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

Pasul 9: Biblioteca

Bibliotecă
Bibliotecă

Depozit GitHub

Forum de suport

Documentație suplimentară

Recomandat: