Inhoudsopgave:

Eenvoudige Arduino LoRa-communicatie (meer dan 5 km): 9 stappen
Eenvoudige Arduino LoRa-communicatie (meer dan 5 km): 9 stappen

Video: Eenvoudige Arduino LoRa-communicatie (meer dan 5 km): 9 stappen

Video: Eenvoudige Arduino LoRa-communicatie (meer dan 5 km): 9 stappen
Video: Почему они так дорого стоят?? СМОТРИ! 😳😝 Австралия с Riviera Yachts (п2) 2024, Juli-
Anonim
Eenvoudige Arduino LoRa-communicatie (meer dan 5 km)
Eenvoudige Arduino LoRa-communicatie (meer dan 5 km)

We gaan de E32-TTL-100 testen met mijn bibliotheek. Het is een draadloze transceivermodule, werkt op 410 441 MHz (of 868MHz of 915MHz) op basis van originele RFIC SX1278 van SEMTECH, transparante transmissie is beschikbaar, TTL-niveau. De module keurt LORA spread spectrum technologie goed.

Benodigdheden

  • Arduino UNO
  • LoRa e32-apparaten

Optioneel

  • Mischianti Arduino LoRa-schild (Open source)
  • Mischianti WeMos LoRa-schild (Open source)

Stap 1: Apparaatspecificaties

De module beschikt over een FEC Forward Error Correction-algoritme, dat zorgt voor een hoge coderingsefficiëntie en goede correctieprestaties. In het geval van plotselinge interferentie kan het de gestoorde datapakketten automatisch corrigeren, zodat de betrouwbaarheid en het transmissiebereik dienovereenkomstig worden verbeterd. Maar zonder FEC kunnen die datapakketten alleen worden verwijderd. En met de rigoureuze codering en decodering wordt het onderscheppen van gegevens zinloos. De functie van gegevenscompressie kan de transmissietijd en de kans op interferentie verminderen, terwijl de betrouwbaarheid en de transmissie-efficiëntie worden verbeterd.

  • Modulegrootte: 21*36mm
  • Antennetype: SMA-K (50Ω impedantie)
  • Transmissie afstand: 3000m (max)
  • Maximaal vermogen: 2dB (100mW)
  • Luchtsnelheden: 2,4 Kbps (6 optioneel niveau (0,3, 1,2, 2,4, 4,8, 9,6, 19,2 kbps)
  • Emissielengte: 512ByteReceive
  • lengte: 512Byte
  • Communicatie-interface: UART – 8N1, 8E1, 8O1,
  • Acht soorten UART-baudrate, van 1200 tot 115200bps (standaard: 9600)
  • RSSI-ondersteuning: Nee (ingebouwde intelligente verwerking)

Stap 2: Transmissietype

Transmissietype
Transmissietype

Transparante verzending Dit kan worden beschouwd als een "demomodus", standaard kunt u berichten verzenden naar alle apparaten met hetzelfde geconfigureerde adres en kanaal.

Vaste transmissie

Bij dit type verzending kunt u een adres opgeven en een kanaal waar u het bericht naartoe wilt sturen. U kunt een bericht sturen naar een:

  • Gespecificeerd apparaat met een vooraf bepaald adres laag, adres hoog en kanaal.
  • Zend een bericht uit naar een set kanaalapparaten Normale modus Stuur eenvoudig een bericht.

Stap 3: Apparaatmodus

Normale modusStuur gewoon een bericht.

Wake-up-modus en energiebesparende modus

Zoals je kunt bedoelen als een apparaat zich in de Wake-up-modus bevindt, kun je een of meer apparaten die zich in de energiebesparende modus bevinden, "wekken" met een preambule-communicatie.

Programma/slaapmodus

Met deze configuratie kunt u de configuratie van uw apparaat wijzigen.

Stap 4: Bedrading apparaat

Bedrading apparaat
Bedrading apparaat
Bedrading apparaat
Bedrading apparaat

Hier het schema van de verbinding van het apparaat, dit is een volledig verbonden, met beheer van M0 en M1 pin toestaan om de modaliteit van het apparaat te wijzigen, zodat u kunt overschakelen naar de configuratie- of wekmodus met programma, de bibliotheek helpt u hierbij operatie.

Stap 5: Configuratie

Configuratie
Configuratie

Bestaat een gespecificeerd commando om configuratie in te stellen en op te halen

void setup() { Serial.begin(9600); vertraging (500); // Start alle pinnen en UART e32ttl100.begin (); ResponseStructContainer c; c = e32ttl100.getConfiguration(); // Het is belangrijk om de configuratieaanwijzer te krijgen vóór alle andere bewerkingen Configuratieconfiguratie = *(Configuratie*) c.data; Serial.println(c.status.getResponseDescription()); Serial.println(c.status.code); printParameters (configuratie); ResponseStructContainer cMi; cMi = e32ttl100.getModuleInformation(); // Het is belangrijk om de informatiewijzer te krijgen voor alle andere bewerkingen ModuleInformation mi = *(ModuleInformation*)cMi.data; Serial.println(cMi.status.getResponseDescription()); Serial.println(cMi.status.code); printModuleInformation(mi); }

Stap 6: Configuratieresultaat

En het resultaat wordt

Begin Succes 1 ---------------------------------------- HEAD BIN: 11000000 192 C0 AddH BIN: 0 AddL BIN: 0 Chan BIN: 23 -> 433MHz SpeedParityBit BIN: 0 -> 8N1 (standaard) SpeedUARTDataRate BIN: 11 -> 9600bps (standaard) SpeedAirDataRate BIN: 10 -> 2.4kbps (standaard) OptionTrans BIN: 0 - > Transparante transmissie (standaard) OptionPullup BIN: 1 -> TXD, RXD, AUX zijn push-pulls/pull-ups OptionWakeup BIN: 0 -> 250ms (standaard) OptionFEC BIN: 1 -> Zet de Forward Error Correction Switch aan (standaard) OptiePower BIN: 0 -> 20dBm (Standaard) ---------------------------------------- Succes 1 ---------------------------------------- KOPBAK: 11000011 195 C3 Modelnr.: 32 Versie: 44 Kenmerken: 14 ----------------------------------------

Stap 7: Bericht verzenden

Bericht versturen
Bericht versturen

Hier een eenvoudige schets om een bericht te sturen naar alle apparaten die op het kanaal zijn aangesloten

void loop() {// Als er iets beschikbaar is if (e32ttl100.available()>1) { // lees het String-bericht ResponseContainer rc = e32ttl100.receiveMessage(); // Gaat er iets mis afdrukfout if (rc.status.code!=1){ rc.status.getResponseDescription(); }else{ // Druk de ontvangen gegevens af Serial.println(rc.data); } } if (Serial.available()) { String input = Serial.readString(); e32ttl100.sendMessage (invoer); } }

Stap 8: Schild voor Arduino

Schild voor Arduino
Schild voor Arduino

Ik maak ook een schild voor Arduino dat erg handig wordt voor prototyping.

En ik geef het hier vrij als open source-project

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

Stap 9: Bibliotheek

Bibliotheek
Bibliotheek

GitHub-repository

Helpforum

Aanvullende documentatie

Aanbevolen: