Wer kennt "LoRa" Long Range Telemetrie?

Skorpi08

Neuer Benutzer
Moin,
setzt jemand die Funkmodule mit dem ESP8266 ein?
Welche Library nutzt ihr?
Ich versuchs mit der RadioHead aber im Serial Monitor bekomm ich immer init failed angezeigt.
 

QuadMax

Erfahrener Benutzer
Hi Skorpi08,

ich kenne niemanden, der diese Kombination einsetzt.

Skorpi08 hat gesagt.:
Welche Library nutzt ihr?
Da diese Frage nun schon mehrfach aufkam,
gibt es im Anhang dieses Posts eine Zip, welche folgendes enthält:
-Eagle Dateien der Version 2.2
-Beispielcode für Sender und Empfänger, welche auch die Library enthalten
-Code um den rfm Chip auszulesen
-Lora Calculator Tool von Semtech
-Dokumentation [pdf] [überarbeitet]

Grüße
QuadMax
 

Anhänge

Hallo Max,
vielen Dank für die Dokumentation!


Hi Skorpi08,

ich kenne niemanden, der diese Kombination einsetzt.


Da diese Frage nun schon mehrfach aufkam,
gibt es im Anhang dieses Posts eine Zip, welche folgendes enthält:
-Eagle Dateien der Version 2.2
-Beispielcode für Sender und Empfänger, welche auch die Library enthalten
-Code um den rfm Chip auszulesen
-Lora Calculator Tool von Semtech
-Dokumentation [pdf] [überarbeitet]

Grüße
QuadMax
 

QuadMax

Erfahrener Benutzer
Gerne.

Ein kleiner Beispielcode der ohne Anpassung auf den Modulen läuft war schon lange überfällig...

Ich habe heute weiter daran gearbeitet und denke das Ergebnis kann sich jetzt sehen lassen.
Unter anderem habe ich verbessert:
  • Bugfix [harmlos]: LED des Empängers hatte nur kaum sichtbar geleuchtet
  • Der Umgang mit der Library hat sich deutlich vereinfacht
  • Wesentlich mehr Kommentare machen den Code jetzt leichter verständlich
  • Eine Art "config.h" wurde in die LoRaCommon.h integriert; erhöht Benutzerfreundlichkeit
Im Detail bedeutet das:
Zu 1.: Led leuchtet jetzt halt hell, total toll :)
Zu 2.: Bisher sah das setup() so aus:
Code:
void setup()
{
  pinMode(lora_PReset, OUTPUT);               // RFM98 reset line
  digitalWrite(lora_PReset, LOW);             // Reset RFM98
  pinMode (lora_PNSS, OUTPUT);                // set the slaveSelectPin as an output:
  digitalWrite(lora_PNSS, HIGH);
  SPI.begin();                                // initialize SPI:
  SPI.setClockDivider(SPI_CLOCK_DIV2);
  SPI.setDataMode(SPI_MODE0);
  SPI.setBitOrder(MSBFIRST);
  initLora();
}
und jetzt so:
Code:
void setup()
{
  initLora();                                 // do the initial LoRa Setup
}
Am Senden und Empfangen selbst lies sich nichts mehr versbessern.

Zu 3.: Kommentare wie z.B.:
Code:
digitalWrite(PLED1, HIGH);                // turn the led on
delay(500);                               // we usually don´t want to sleep; just to see the led better in this example
lora_RXtoReady();                         // ready for next and clear flags
digitalWrite(PLED1, LOW);                 // turn the led of
oder Tipps:
Code:
    for (byte i = lora_RXStart; i <= lora_RXEnd; i++)   // we loop through every byte we received...
    {
      Serial.print(char(lora_RXBUFF[i]));     // ...and print it to the Serial Monitor
    }                                         // you may also want to look at "lora_RXBuffPrint" in "LoRaRXonly.h"
Zu 4.: Der Anfang der "LoRaCommon.h" sieht jetzt so aus:
Code:
/*************************************************************************************************
User configurable
*************************************************************************************************/

//  First define the hardware you are using
#define QuadMax_Board
//#define Breadboard

//  The speed of your serial connection
#define BDRATE 9600   //typical and supported values: 300/1200/2400/4800/9600/19200/38400/57600/74880 baud

//  The transceiver chip you are using:
//#define RFM95W      <-- not implemented yet
//#define RFM96W      <-- not implemented yet
//#define RFM97W      <-- not implemented yet
#define RFM98W        // @434.400 Mhz

// Define the LoRa parameters you want to use   (Use the LoRa calculator to find your settings)
#define Bandwidth lora_BW125
/* allowed are: lora_BW7_8  = 7.8khz     lora_BW10_4 = 10.4khz
                lora_BW15_6 = 15.6khz    lora_BW20_8 = 20.8khz
                lora_BW31_2 = 31.2khz    lora_BW41_7 = 41.7khz
                lora_BW62_5 = 62.5khz    lora_BW125  = 125khz
                lora_BW250  = 250khz     lora_BW500  = 500khz
                */
#define SpreadingFactor lora_SF12
/* allowed are: lora_SF<6/7/8/9/10/11/12>   */

#define CodingRate lora_CR4_5
/* allowed are: lora_CR4_5 = 4:5        lora_CR4_6 = 4:6
                lora_CR4_7 = 4:7        lora_CR4_8 = 4:8
                */
Code getestet unter Arduino Version:
  • 1.6.8
  • 1.6.10
  • 1.8.2
Funktioniert mit sehr großer Wahrscheinlichkeit auf fast allen Versionen.

Grüße
QuadMax
 

Anhänge

Elyot

Erfahrener Benutzer
Welche Reichweiten habt Ihr mit LoRa? Ich suche noch nach einer Möglichkeit, wenige Bytes/s über eine Distanz von ca. 7-8 km möglichst lizenzfrei und möglichst mit geringem Energiebedarf bidirektional zu übermitteln.
 

cesco1

Erfahrener Benutzer
Nach langem wieder mal was mit lora gemacht. Mein empfänger:



Ein arduino 3.3V 8mhz mit dem billigen lora board hinten draufgepappt. Der 50ohm wiederstand ist die antenne. Schlechter wirkungsgrad ist gewollt.




Die VCC - pin leitung auf dem arduino board ist durchtrennt und der vcc-pin ist mit dem roten draht auf "raw" geführt. "raw" geht über den internen 3.3V regler, vcc nicht. Der interne 3.3V regler versorgt über den VCC lötpad das lora board gleich mit. Der empfänger kann so mit 5V über das standard ppm kabel gespeist werden. Einfacher gehts nicht.




6 leitungen zum lora board. Heikel zu löten. Pins 10 bis 13 sind 1:1, vcc und gnd sind gedreht. Der signalausgang ist PPM, am arduino stecker herausgeführt so dass normale servo kabel (ppm, 5V, gnd) benuzt werden können. Einfacher gehts kaum.


Der lora sender. Alte graupner MX22. Quadmax platine mit handstrick adapter. Pin 8 war led, ist auf ppm input per ICP geändert.
 
Zuletzt bearbeitet:
Bei den E44-TTL-Bausteinen handelt es sich offenbar um US-Versionen für 915 MHz, wobei ich mir kaum vorstellen kann, dass sich diese auch auf den bei uns zugelassenen 868MHz-Frequenzen einsetzen lassen. Offenbar erlauben sie nur Frequenzen zwischen etwa 900 und 931 Mhz und das in ( mehr als ungünstigen ) 1MHz-Schritten

Leitsinnigerweise habe ich einige der ansonsten sehr ähnlichen Bausteine für den 70cm-Bereich mit der Bezeichnung E32-TTL bestellt. Auch sie gibt es jeweils in einer max. 100mW und einer max. 1W-Version. Was mir auch bei ihnen nicht gefällt, ist wieder die Tatsache, dass auch bei ihnen nur Frequenzen im 1MHz-Raster anwählbar sind. Für einen Betrieb im Rahmen der allgemeinen Zulassungen ergibt sich daraus nur die eine mögliche Frequenz von 434.0 MHz. Mit ihrer Nähe zur Mitte des besonders stark belegten ISM-Bereiches ( 433.92 MHz ) ist das nicht besonders glücklich.
 
Zuletzt bearbeitet:

cesco1

Erfahrener Benutzer
nur Frequenzen im 1MHz-Raster anwählbar sind
Hab ich auch grad gesehen. Das ist bescheidene firmware. Nancy zengyao @ cdebyte.com mal anschreiben.

die eine mögliche Frequenz von 434.0 MHz.
Wenn du nicht schon hast empfiehlt sich der erwerb des DO oder DL scheins. Dann darf man 430 bis 440mhz und mehrere watt. Immer noch grau-bereich, aber da pisst dir keiner mehr so schnell ans bein. Hat auch den vorteil man kann 1.2g video legal betreiben.
 
Klasse, das war es, was ich wissen wollte!

Leider findet man es bei den "Fernöstlern" häufig, dass sie sich selbst irgendwelche Fallstricke spannen ( z.B. in Form grottenschlechter Dokumentation ) und damit die Attraktivität ihrer Produkte unnötigerweise schmälern.
 
.... habe übrigens einmal die mit den E32-Moduln gelieferten
( ca. 6cm langen ) Antennenstäbchen durchgemessen:
best SWR bei ca. 460 MHz: ca. 1:1.2
SWR bei 434 MHZ: nur ca. 1:3.5
 
RCLogger

FPV1

Banggood

Banggood

Oben