

Hier ein Beispiel für Konstruktor müssen Sie die UART -Schnittstelle übergeben und (wenn Sie möchten, aber es wird empfohlen) den Aux -Pin M0 und M1.
Um die Bibliothek zu installieren, führen Sie den folgenden Befehl aus:
pip install ebyte-lora-e22 from lora_e22 import LoRaE22
from machine import UART
uart2 = UART ( 2 )
lora = LoRaE22 ( '400T22D' , uart2 , aux_pin = 15 , m0_pin = 21 , m1_pin = 19 ) code = lora . begin ()
print ( "Initialization: {}" , ResponseStatusCode . get_description ( code )) from lora_e22 import LoRaE22 , print_configuration
from lora_e22_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( "Retrieve configuration: {}" , ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )Das Ergebnis
# ----------------------------------------
# HEAD : 0xc1 0x0 0x9
#
# AddH : 0x0
# AddL : 0x0
#
# Chan : 23 -> 433
#
# SpeedParityBit : 0b0 -> 8N1 (Default)
# SpeedUARTDatte : 0b11 -> 9600bps (default)
# SpeedAirDataRate : 0b10 -> 2.4kbps (default)
#
# OptionSubPacketSett: 0b0 -> 240bytes (default)
# OptionTranPower : 0b0 -> 22dBm (Default)
# OptionRSSIAmbientNo: 0b0 -> Disabled (default)
#
# TransModeWORPeriod : 0b11 -> 2000ms (default)
# TransModeTransContr: 0b0 -> WOR Receiver (default)
# TransModeEnableLBT : 0b0 -> Disabled (default)
# TransModeEnableRSSI: 0b0 -> Disabled (default)
# TransModeEnabRepeat: 0b0 -> Disabled (default)
# TransModeFixedTrans: 0b0 -> Transparent transmission (default)
# ----------------------------------------
Sie können nur den entscheiderten Parameter festlegen, der andere wird auf den Standardwert festgelegt.
configuration_to_set = Configuration ( '400T22D' )
configuration_to_set . ADDL = 0x02
configuration_to_set . ADDH = 0x01
configuration_to_set . CHAN = 23
configuration_to_set . NETID = 0
configuration_to_set . SPED . airDataRate = AirDataRate . AIR_DATA_RATE_100_96
configuration_to_set . SPED . uartParity = UARTParity . MODE_00_8N1
configuration_to_set . SPED . uartBaudRate = UARTBaudRate . BPS_9600
configuration_to_set . OPTION . subPacketSetting = SubPacketSetting . SPS_064_10
configuration_to_set . OPTION . transmissionPower = TransmissionPower ( '400T22D' ).
get_transmission_power (). POWER_10
# or
# configuration_to_set.OPTION.transmissionPower = TransmissionPower22.POWER_10
configuration_to_set . OPTION . RSSIAmbientNoise = RssiAmbientNoiseEnable . RSSI_AMBIENT_NOISE_ENABLED
configuration_to_set . TRANSMISSION_MODE . WORTransceiverControl = WorTransceiverControl . WOR_TRANSMITTER
configuration_to_set . TRANSMISSION_MODE . enableLBT = LbtEnableByte . LBT_DISABLED
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED
configuration_to_set . TRANSMISSION_MODE . enableRepeater = RepeaterModeEnableByte . REPEATER_DISABLED
configuration_to_set . TRANSMISSION_MODE . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
configuration_to_set . TRANSMISSION_MODE . WORPeriod = WorPeriod . WOR_1500_010
configuration_to_set . CRYPT . CRYPT_H = 1
configuration_to_set . CRYPT . CRYPT_L = 1
# Set the new configuration on the LoRa module and print the updated configuration to the console
code , confSetted = lora . set_configuration ( configuration_to_set )Ich erstelle eine Konstantenklasse für jeden Parameter, hier eine Liste: Airdatarate, uartbardrate, uartparity, getriebepower, ForwardErrorcorrection -Witch, WirelessWakeeupime, Iodrivemode, FixedTransmission
Hier ein Beispiel für Daten senden können Sie eine Zeichenfolge übergeben
lora . send_transparent_message ( 'pippo' ) lora . send_fixed_message ( 0 , 2 , 23 , 'pippo' )Hier der Empfängercode
while True :
if lora . available () > 0 :
code , value = lora . receive_message ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
utime . sleep_ms ( 2000 )Wenn Sie RSSI erhalten möchten, müssen Sie es in der Konfiguration aktivieren
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDund setzen
code , value , rssi = lora . receive_message ( True )Ergebnis
Success!
pippo
Hier ein Beispiel für Senden von Daten können Sie ein Wörterbuch übergeben
lora . send_transparent_dict ({ 'pippo' : 'fixed' , 'pippo2' : 'fixed2' }) lora . send_fixed_dict ( 0 , 0x01 , 23 , { 'pippo' : 'fixed' , 'pippo2' : 'fixed2' })Hier der Empfängercode
while True :
if lora . available () > 0 :
code , value = lora . receive_dict ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
print ( value [ 'pippo' ])
utime . sleep_ms ( 2000 )Wenn Sie RSSI erhalten möchten, müssen Sie es in der Konfiguration aktivieren
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDund setzen
code , value , rssi = lora . receive_dict ( True )Ergebnis
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
https://downloads.arduino.cc/libraries/logs/github.com/xreef/ebyte_lora_e22_series_library/
Sie können die PCB hier bestellen
Anweisungs- und Montagevideo auf 6 Teil des Leitfadens
Sie können die PCB hier bestellen
Anweisungs- und Montagevideo auf 6 Teil des Leitfadens
Ich erstelle eine Bibliothek, um die E22 -Serie von LORA -Geräten, sehr leistungsstarke, einfache und billige Geräte zu verwalten.
LORA- oder Langstrecken -Wireless -Data -Telemetrie ist eine von Semtech pionierende Technologie, die mit einer niedrigeren Frequenz als NRF24L01 (433 MHz, 868 MHz oder 916 MHz erneut 2,4 GHz für den Nrf24L01) arbeitet, aber mit drei Jahren (von 4000 m) (von 4000 m bis 10000m).
Lora E22
Hier finden Sie Aliexpress (433 MHz 4 km) - Aliexpress (433 MHz 10 km)
Bitte beachten Sie meinen Artikel, um ein aktualisiertes Schema zu erhalten
Hier finden Sie meine Bibliothek.
Zum Herunterladen.
Klicken Sie in der oberen rechten Ecke auf die Schaltfläche Downloads und benennen Sie den unkomprimierten Ordner Lora_E22 um.
Überprüfen Sie, ob der Ordner lora_e22 lora_e22.cpp und lora_e22.h enthält.
Platzieren Sie den Ordner Lora_E22 Bibliothek / Bibliotheken / Ordner.
Möglicherweise müssen Sie den Unterordner der Bibliotheken erstellen, wenn es sich um Ihre erste Bibliothek handelt.
Starten Sie die Ide neu.
E22
| Pin -Nr. | PIN Item | Stiftrichtung | PIN -Anwendung |
|---|---|---|---|
| 1 | M0 | Eingabe (schwacher Pull-up) | Arbeiten Sie mit M1 zusammen und entscheiden Sie die vier Betriebsmodi. Floßen ist nicht erlaubt, kann gemahlen werden. |
| 2 | M1 | Eingabe (schwacher Pull-up) | Arbeiten Sie mit M0 und entscheiden Sie die vier Betriebsmodi. Floßen ist nicht erlaubt, kann gemahlen werden. |
| 3 | Rxd | Eingang | TTL UART -Eingänge stellt eine Verbindung zu externen (MCU, PC) TXD OutputPin her. Kann als Open-Drain- oder Pull-up-Eingang konfiguriert werden. |
| 4 | Txd | Ausgabe | TTL UART -Ausgänge stellt eine Verbindung zu externen RXD (MCU, PC) InputPin her. Kann als Open-Drain- oder Push-Pull-Ausgang konfiguriert werden |
5 | Aux | Ausgabe | Per Indicare lo stato di funzionamento del modulo e riattivare l'cu esterno. Durante la procedura di Inizializzazione di Autocontrollo, il Pin Emette una bassa spannungen. Può Esseer Configurato Come USCita Open-Drain O Output Push-Pull (è Zustimmung nicht metterlo a terra, ma se hai problemi, ad Esempio ti si freeze il dispositivo è bevorzugung mettere una restistenza di pull-up da 4.7ko meglio meglio meglio mesgarlo al dispositivo). |
| 6 | VCC | Stromversorgung 2,3 V ~ 5,5 V DC | |
| 7 | GND | Boden |
Wie Sie sehen, können Sie verschiedene Modi über M0- und M1 -Stifte festlegen.
| Modus | M1 | M0 | Erläuterung |
|---|---|---|---|
| Normal | 0 | 0 | UART und drahtloser Kanal sind geöffnet, transparentes Getriebe ist eingeschaltet (unterstützt die Konfiguration über Luft über Sonderbefehl). |
| Schlimmer Modus | 0 | 1 | Kann als schlimmer Sender und schlechtes Empfänger definiert werden |
| Konfigurationsmodus | 1 | 0 | Benutzer können über den seriellen Port auf das Register zugreifen, um den Arbeitszustand des Moduls zu steuern |
| Tiefschläfungsmodus | 1 | 1 | Schlafmodus |
Wie Sie sehen, gibt es einige Stifte, die auf statische Weise verwendet werden können. Wenn Sie sie jedoch mit der Bibliothek verbinden, erhalten Sie Leistung und Sie können den gesamten Modus über Software steuern, aber wir werden als nächstes besser erklären.
Wie ich bereits sage, ist es nicht wichtig, den gesamten Pin mit dem Ausgang von Mikrocontroller zu verbinden, können Sie M0- und M1 -Stifte auf hoch oder niedrig einsetzen, um eine entheilende Konfiguration zu erhalten. Wenn Sie Aux nicht verbinden, setzen Sie die Bibliothek eine angemessene Verzögerung, um sicherzustellen, dass der Vorgang vollständig ist .
Bei der Übertragung von Daten können zum Aufwachen der externen MCU und zum hohen Datenübertragungsverlauf verwendet werden.
Lora E22 -Aux -Pin beim Getriebe
Wenn der Aux niedrig wird und hoch wird, wenn der Puffer leer ist.
Lora E22 Aux Pin auf dem Empfang
Es wird auch für die Selbstprüfung verwendet, um den normalen Betrieb wiederherzustellen (im Power-On- und Schlaf-/Programmmodus).
Lora E22 Aux Pin auf Selbstprüfung
ESP8266 -Verbindungsschema ist einfacher, da es bei derselben Spannung logischer Kommunikation (3.3 V) funktioniert.
Lora E22 TTL 100 WEMOS D1 Vollständig verbunden
Es ist wichtig, Pull-up-Widerstand (4,7kohm) hinzuzufügen, um eine gute Stabilität zu erhalten.
| E22 | ESP8266 |
|---|---|
| M0 | D7 |
| M1 | D6 |
| Tx | Pin D2 (Pullup 4,7k Ω) |
| Rx | Pin D3 (Pullup 4,7k Ω) |
| Aux | Pin D5 (Pullup 4,7k Ω) |
| VCC | 5 V (aber mit weniger Leistung in 3,3 V arbeiten) |
| GND | GND |
Ähnliches Verbindungsschema für ESP32, aber für RX und TX verwenden wir RX2 und TX2, da ESP32 standardmäßig keinen Software -Sachwareserien hat, sondern 3 seriell.
EBYTE LORA E22 Gerät ESP32 Dev Kit V1 Breadboard Volle Verbindung
| E22 | ESP32 |
|---|---|
| M0 | D21 |
| M1 | D19 |
| Tx | Pin RX2 (Pullup 4,7k Ω) |
| Rx | Pin TX3 (Pullup 4,7k Ω) |
| Aux | Pin D18 (Pullup 4,7k Ω) |
| VCC | 5 V (aber mit weniger Leistung in 3,3 V arbeiten) |
| GND | GND |
| Addh | Hochadresse Byte des Moduls (der Standard 00H) | 00H-FFH |
| Addl | Niedrig Adressbyte des Moduls (Standard 00H) | 00H-FFH |
| Sped | Informationen zu Datenrate Paritätsbit- und Luftdatenrate | |
| Chan | Kommunikationskanal (410 m + Chan*1m), Standard 17H (433 MHz), nur für 433 MHz Gerät chek unten gültig , um die korrekte Frequenz Ihres Geräts zu überprüfen | 00H-1fh |
| OPTION | Art der Übertragung, Paketgröße, eine spezielle Nachricht zulassen | |
| Transmission_Mode | Viele Parameter, die die Übertragungsmodalität angeben |
OPTION
Art der Übertragung, Klimmzüge, Weckzeit, FEC, Übertragungsleistung
UART Parity Bit: Der UART -Modus kann zwischen Kommunikationsparteien unterschiedlich sein
| 4 | 3 | UART Parity Bit | Konstanter Wert |
| 0 | 0 | 8n1 (Standard) | Modus_00_8n1 |
| 0 | 1 | 8o1 | Modus_01_8o1 |
| 1 | 0 | 8 E1 | Modus_10_8e1 |
| 1 | 1 | 8n1 (gleich 00) | Modus_11_8n1 |
UART -Baud -Rate: Die UART -Baudrate kann zwischen Kommunikationsparteien unterschiedlich sein, die UART -Baudrate hat nichts mit drahtlosen Übertragungsparametern zu tun und wirkt sich nicht auf die Merkmale der drahtlosen Übertragung / Empfang aus.
| 7 | 6 | 5 | TTL UART Baud Rate (BPS) | Konstanter Wert |
| 0 | 0 | 0 | 1200 | UART_BPS_1200 |
| 0 | 0 | 1 | 2400 | UART_BPS_2400 |
| 0 | 1 | 0 | 4800 | UART_BPS_4800 |
| 0 | 1 | 1 | 9600 (Standard) | UART_BPS_9600 |
| 1 | 0 | 0 | 19200 | UART_BPS_19200 |
| 1 | 0 | 1 | 38400 | UART_BPS_38400 |
| 1 | 1 | 0 | 57600 | UART_BPS_57600 |
| 1 | 1 | 1 | 115200 | UART_BPS_115200 |
Luftdatenrate: Je niedriger die Luftdatenrate ist, desto länger muss die Luftdatenrate für beide Kommunikationsparteien dasselbe behalten.
| 2 | 1 | 0 | Luftdatenrate (BPS) | Konstanter Wert |
| 0 | 0 | 0 | 0,3 K. | Air_Data_Rate_000_03 |
| 0 | 0 | 1 | 1,2k | Air_Data_Rate_001_12 |
| 0 | 1 | 0 | 2,4K (Standard) | Air_Data_Rate_010_24 |
| 0 | 1 | 1 | 4,8K | Air_Data_Rate_011_48 |
| 1 | 0 | 0 | 9,6K | Air_Data_Rate_100_96 |
| 1 | 0 | 1 | 19,2k | Air_Data_Rate_101_192 |
| 1 | 1 | 0 | 38,4k | Air_Data_Rate_110_384 |
| 1 | 1 | 1 | 62,5K | Air_Data_Rate_111_625 |
#### Subpaketeinstellung
Dies ist die maximale Lenght des Pakets.
Wenn die Daten kleiner als die Subpaketlänge sind, ist die serielle Ausgabe des Empfangsende eine ununterbrochene kontinuierliche Ausgabe. Wenn die Daten größer als die Subpaketlänge sind, gibt der serielle Anschluss des empfangenen Endes das Subpaket aus.
| 7 | 6 | Paketgröße | Konstanter Wert |
| 0 | 0 | 240Bytes (Standard) | SPS_240_00 |
| 0 | 1 | 128 BYTES | SPS_128_01 |
| 1 | 0 | 64Bytes | SPS_064_10 |
| 1 | 1 | 32Bytes | SPS_032_11 |
#### RSSI Umgebungsgeräusche aktivieren
Dieser Befehl kann den Verwaltungsart von RSSI aktivieren/deaktivieren. Es ist wichtig, die Remote -Konfiguration zu verwalten. Achtung ist nicht der RSSI -Parameter in der Nachricht.
Wenn aktiviert, kann der Befehl c0 c1 c2 c3 im Sendungsmodus oder im schlimmsten Sendungsmodus gesendet werden, um das Register zu lesen. Register 0x00: Aktuelles Umgebungsgeräusch -RSSI -Register 0x01: RSSI, wenn die Daten beim letzten Mal empfangen wurden.
| 5 | RSSI -Umgebungsgeräusche ermöglichen | Konstanter Wert |
| 0 | Aktivieren | Rssi_ambient_noise_enabled |
| 1 | Deaktivieren (Standard) | Rssi_ambient_noise_disabled |
#### Aktivieren Sie RSSI
Wenn das Modul aktiviert ist, empfängt das Modul drahtlose Daten und folgt einem RSSI -Festigkeits Byte nach Ausgang über den seriellen Port TXD
#### Übertragentyp
Übertragungsmodus: Im festen Übertragungsmodus können die ersten drei Bytes des Datenrahmens jedes Benutzers als hohe/niedrige Adresse und Kanal verwendet werden. Das Modul ändert seine Adresse und Kanal beim Senden. Und es wird nach Abschluss des Vorgangs zur ursprünglichen Einstellung zurückgeführt.
#### Aktivieren Sie die Repeater -Funktion
#### Überwachen Sie die Daten vor der Übertragung
Wenn es aktiviert ist, werden drahtlose Daten überwacht, bevor sie übertragen werden, was in gewissem Maße Störungen vermeiden kann, jedoch zu einer Datenverzögerung führen kann.
#### Wor
Der schlimmste Sender: Das Empfangs- und Übertragungsfunktionen des Moduls wird eingeschaltet, und bei der Übertragung von Daten wird ein Weckcode hinzugefügt. Empfangen ist eingeschaltet.
WORMEHIVER: Das Modul kann Daten nicht übertragen und arbeitet im schlimmsten Überwachungsmodus. Die Überwachungsfrist ist wie folgt (schlimmer Zyklus), wodurch viel Strom sparen kann.
#### Workzyklus
Wenn Wors übersetzt wird: Nach dem Erhalt des Weltempfängers die drahtlosen Daten erhalten und über den seriellen Anschluss ausgibt, wartet er auf 1000 ms, bevor er erneut in die Schlacht eintritt. Benutzer können die seriellen Portdaten eingeben und sie während dieses Zeitraums über das Wireless zurückgeben. Jedes serielle Byte wird für 1000 ms aktualisiert. Benutzer müssen das erste Byte innerhalb von 1000 ms übertragen.
Zuerst müssen wir eine einfache, aber sinnvoll
int available ();Es ist einfach zurückzugeben, wie viele Bytes Sie im aktuellen Strom haben.
Der normale/transparente Übertragungsmodus wird verwendet, um Nachrichten mit gleicher Adresse und Kanal an alle Geräte zu senden.
Lora E22 -Übertragungsszenarien, Linien sind Kanäle
Das feste Übertragung hat mehr Szenarien
Lora E22 -Übertragungsszenarien, Linien sind Kanäle
Jetzt haben Sie alle Informationen, um Ihre Arbeit zu erledigen, aber ich denke, es ist wichtig, einige realistische Beispiele zu zeigen, um die Möglichkeit zu verbessern.
EBYTE LORA E22 -Gerät für Arduino, ESP32 oder ESP8266: Einstellungen und Grundnutzung
EBYTE LORA E22 -Gerät für Arduino, ESP32 oder ESP8266: Bibliothek
EBYTE LORA E22 -Gerät für Arduino, ESP32 oder ESP8266: Konfiguration
EBYTE LORA E22 -Gerät für Arduino, ESP32 oder ESP8266: Festes Getriebe und RSSI
EBYTE LORA E22 -Gerät für Arduino, ESP32 oder ESP8266: Leistungssparen und Senden strukturierter Daten
EBYTE LORA E22 -Gerät für Arduino, ESP32 oder ESP8266: Repeater -Modus und Ferneinstellungen
EBYTE LORA E22 -Gerät für Arduino, ESP32 oder ESP8266: Worm Microcontroller und Arduino Shield
EBYTE LORA E22 -Gerät für Arduino, ESP32 oder ESP8266: Worl Microcontroller und Wemos D1 Shield
EBYTE LORA E22 -Gerät für Arduino, ESP32 oder ESP8266: Wor Microcontroller und ESP32 Dev V1 Shield