Arduino LORA-RF-Bibliothek zum Übertragen und Empfangen von Daten mithilfe des LORA-Moduls mit SemTech SX126X-Serie, SX127X-Serie oder LLCC68. Die Bibliothek arbeitet durch Schnittstellen von SPI -Port und einige E/A -Stifte. Unterstützung für die Konfiguration von Frequenz-, Modulationsparametern, Übertragungsleistung, Empfangsverstärkung und andere HF -Parameter sowohl für die LORA- als auch für die FSK -Modulation unterstützen auch die Handhabung von Übertragung und Empfangen mit Interrupt -Signal.
Diese Readme ist für den Schnellstarthandbuch geschrieben. Besuchen Sie diesen Link für vollständige Dokumentation.
Theoritisch alle Lora -Module unter Verwendung der SX126X -Serie (SX1261, SX1262, SX1268), SX127X -Serie (SX1272, SX1276, SX1277, SX1278, SX1279) oder LLCC68 mit dieser Bibliothek. Das Arduino Lora Development Board, das mit SPI mit einem Lora -Modul miteinander verbunden ist.
Einige LORA -Modul, die bereits getestet und bestätigt wurden, sind:
Bitte beachten Sie, dass LORA -Module 3,3 V für Netzteil und E/A -Anschlüsse verwenden. Ich muss mich dafür sorgen, dass ich 5 -V Arduino mit dem Lora -Modul verbindet.
Sketch -> Include Library -> Manage Libraries...LoRaRF in das Suchfeld ein.LoRaRF von Chandra Wijaya.Install , um die Bibliothek zu installieren. Öffnen Sie Terminal, Git Bash oder Eingabeaufforderung im Ordner Arduino Library und führen Sie den folgenden Befehl aus. Der Standard -Bibliotheksordner für Windows ist C:Users{username}DocumentsArduino und für Linux ist ~/Documents/Arduino/libraries/ .
git clone https://github.com/chandrawi/LoRaRF-Arduino.git Um mit der Bibliothek zu arbeiten, müssen Sie zunächst SX126x -Header oder SX127x -Header je nach LORA -Modul enthalten. Für LLCC68 enthalten SX126X Header. Initialisieren Sie dann die Klasse im Header, indem Sie ein Objekt erstellen.
// for SX126x series or LLCC68
# include < SX126x.h >
SX126x LoRa;
// for SX127x series
# include < SX127x.h >
SX127x LoRa; Vor dem Aufrufen von Konfigurationsmethoden, dem Übertragung oder Empfangen müssen Sie die Methode begin() aufrufen. Sie können die Methode begin() in der Funktion arduino setup() aufrufen.
void setup () {
LoRa. begin ();
// configuration code goes here
}
void loop () {
// transmit and receive operation goes here
} Power Pins, SPI -Stifte und RESET müssen zwischen dem Arduino- und dem Lora -Modul verbunden werden. Für die SX126X -Serie und LLCC68 muss auch ein BUSY Pin verbunden werden. Wenn Sie den Interrupt -Betrieb verwenden möchten, können Sie DIO0 für die SX127X -Serie und einen der DIO1 , DIO2 oder DIO3 -Pin für die SX126X -Serie anschließen. Sie sollten auch TXEN und RXEN -Stifte anschließen, wenn Ihr LORA -Modul diese Stifte hat.
Die Standard -Arduino -Stifte, die zur Verbindung zu SX126X und SX127X verwendet werden, sind wie folgt.
| Semtech SX126X | Semtech SX127X | Arduino |
|---|---|---|
| VCC | VCC | 3.3 V |
| GND | GND | GND |
| Sck | Sck | Sck |
| Miso | Miso | Miso |
| Mosi | Mosi | Mosi |
| NSS | NSS | 10 |
| ZURÜCKSETZEN | ZURÜCKSETZEN | 9 |
| BESCHÄFTIGT | 4 | |
| DIO1 | DIO0 | -1 (nicht genutzt) |
| Txen | Txen | -1 (nicht genutzt) |
| Rxen | Rxen | -1 (nicht genutzt) |
Ändern Sie die Arduino -Standard -SPI -Port- oder SPI -Frequenz -Aufruf -Methode vor begin() setSPI()
LoRa.setSPI(SPI2, 16000000 );
LoRa.begin(); So konfigurieren Sie E/A -Stifte (NSS, Reset, Beschäftigte, IRQ, TXEN, RXEN PIN) CALL setPins() Vor begin() -Methode.
// set NSS->10, RESET->9, BUSY->4, DIO1->2, TXEN->8, RXEN->7 for SX126x series
LoRa.setPins( 10 , 9 , 2 , 4 , 8 , 7 );
// set NSS->10, RESET->9, DIO0->2, TXEN->8, RXEN->7 for SX127x series
LoRa.setPins( 10 , 9 , 2 , 8 , 7 );
LoRa.begin();Vor dem Übertragung oder Empfangsvorgang können Sie die Übertragungsleistung konfigurieren und Verstärkungsfrequenz, Modulationsparameter, Paketparameter und Word mit einem anderen LORA -Gerät synchronisieren, das Sie kommunizieren möchten.
// set transmit power to +22 dBm for SX1262
LoRa.setTxPower( 22 , SX126X_TX_POWER_SX1262);
// set transmit power to +20 dBm for SX127x series using boost pin
LoRa.setTxPower( 20 , SX127X_TX_POWER_PA_BOOST); // set receive gain to power saving
LoRa.setRxGain(LORA_RX_GAIN_POWER_SAVING);
// set receive gain to boosted and AGC on for SX127x series
LoRa.setRxGain(LORA_RX_GAIN_BOOSTED, true ); // Set frequency to 915 Mhz
LoRa.setFrequency( 915000000 ); // set spreading factor 8, bandwidth 125 kHz, coding rate 4/5, and low data rate optimization off
LoRa.setLoRaModulation( 8 , 125000 , 5 , false ); // set explicit header mode, preamble length 12, payload length 15, CRC on and no invert IQ operation
LoRa.setLoRaPacket(LORA_HEADER_EXPLICIT, 12 , 15 , true , false ); // Set syncronize word for public network (0x3444)
LoRa.setSyncWord( 0x3444 ); Sendenbetrieb beginnen mit dem Aufruf von beginPacket() Methode nach write() -Methode zum Schreiben von Paket, das mit dem Aufruf von endPacket() -Methoden zu schreiben und beendet wird. Zum Beispiel "Helora World!" Nachricht und ein Inkrement -Zähler Sie können den folgenden Code verwenden.
// message and counter to transmit
char message[] = " HeLoRa World! " ;
uint8_t counter = 0 ;
LoRa.beginPacket();
LoRa.write(message, sizeof (message)); // write multiple bytes
LoRa.write(counter++); // write single byte
LoRa.endPacket();
LoRa.wait();Weitere Informationen zum Sendungsbetrieb finden Sie in diesem Link.
Empfangen -Operation Beginnen Sie mit der METHODE CURD request() -Methode nach read() -Methode zum Lesen des empfangenen Pakets. available() Methode kann verwendet werden, um das verbleibende Paket zu erhalten. Um beispielsweise eine Nachricht und einen Zähler im letzten Byte zu empfangen, können Sie den folgenden Code verwenden.
LoRa.request();
LoRa.wait();
// get message and counter in last byte
const uint8_t length = LoRa.available() - 1 ;
char message[length];
uint8_t i= 0 ;
while (LoRa.available() > 1 ){
message[i++] = LoRa. read (); // read multiple bytes
}
uint8_t counter = LoRa.read(); // read single byteWeitere Informationen zum Empfangsbetrieb finden Sie in diesem Link.
Siehe Beispiele für SX126X, SX127X und einfache Netzwerkimplementierung.
Chandra wijaya sentosa <[email protected]>