

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-e32 from lora_e32 import LoRaE32
from machine import UART
uart2 = UART ( 2 )
lora = LoRaE32 ( '433T20D' , uart2 , aux_pin = 15 , m0_pin = 21 , m1_pin = 19 ) code = lora . begin ()
print ( ResponseStatusCode . get_description ( code )) from lora_e32 import LoRaE32 , print_configuration , Configuration
from lora_e32_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )Das Ergebnis
----------------------------------------
HEAD : 0b11000000 192
AddH : 0
AddL : 2
Chan : 23 -> 433
SpeedParityBit : 0b0 -> 8N1 (Default)
SpeedUARTDatte : 0b11 -> 9600bps (default)
SpeedAirDataRate : 0b10 -> 2.4kbps (default)
OptionTrans : 0b1 -> Fixed transmission (first three bytes can be used a
s high/low address and channel)
OptionPullup : 0b1 -> TXD, RXD, AUX are push-pulls/pull-ups (default)
OptionWakeup : 0b0 -> 250ms (default)
OptionFEC : 0b1 -> Turn on Forward Error Correction Switch (Default)
OptionPower : 0b0 -> 20dBm (Default)
----------------------------------------
configuration_to_set = Configuration ( '433T20D' )
configuration_to_set . ADDL = 0x02
configuration_to_set . OPTION . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
code , confSetted = lora . set_configuration ( configuration_to_set )Das Konfigurationsobjekt hat viele Parameter.
class Configuration :
class Speed :
def __init__ ( self , model ):
self . model = model
self . airDataRate = AirDataRate . AIR_DATA_RATE_010_24
self . uartBaudRate = UARTBaudRate . BPS_9600
self . uartParity = UARTParity . MODE_00_8N1
class Option :
def __init__ ( self , model ):
self . model = model
self . transmissionPower = TransmissionPower ( self . model ). get_transmission_power (). get_default_value ()
self . fec = ForwardErrorCorrectionSwitch . FEC_1_ON
self . wirelessWakeupTime = WirelessWakeUpTime . WAKE_UP_250
self . ioDriveMode = IODriveMode . PUSH_PULLS_PULL_UPS
self . fixedTransmission = FixedTransmission . TRANSPARENT_TRANSMISSION
class Configuration :
def __init__ ( self , model ):
self . HEAD = 0
self . ADDH = 0
self . ADDL = 0
self . SPED = Speed ( model )
self . CHAN = 23
self . OPTION = Option ( model )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 )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 )Ergebnis
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
Arduino Uno Shield
Sie können die PCB hier bestellen
Anweisungs- und Montagevideo auf 6 Teil des Leitfadens
Wemos D1 -Schild
Sie können die PCB hier bestellen
ESP32 Schild
Sie können die PCB hier bestellen
Anweisungs- und Montagevideo auf 6 Teil des Leitfadens
Ich erstelle eine Bibliothek, um die EBYTE E32 -Serie von Lora -Geräten, sehr leistungsstark, einfaches und billiges Gerät zu verwalten.
Lora E32-TTL-100
Hier finden Sie Aliexpress (3 -km -Gerät) Aliexpress (8 -km -Gerät)
Sie können über eine Entfernung von 3000 m bis 8000 m arbeiten und haben viele Funktionen und Parameter.
Daher erstelle ich diese Bibliothek, um die Verwendung zu vereinfachen.
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_E32 um.
Überprüfen Sie, ob der Ordner lora_e32 lora_e32.cpp und lora_e32.h enthält.
Platzieren Sie den Ordner lora_e32 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.
E32 TTL 100
Sie können hier Aliexpress kaufen
| 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 | Um den Arbeitsstatus des Moduls anzuzeigen und die externe MCU aufzuwachen. Während des Verfahrens der Selbstprüfungsinitialisierung gibt der Pin niedrig. Kann als Open-Drain-Ausgangsleistung für Orpush-Pull-Ausgang konfiguriert werden (schwimmen ist zulässig). |
| 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 Wireless Channel ist gut zu gehen |
| Wke-up | 0 | 1 | Gleich wie normal, aber ein Präambelcode wird zu übertragenen Daten zum Aufwachen des Empfängers hinzugefügt. |
| Kraftsparende | 1 | 0 | UART ist deaktiviert und drahtlos ist im WOR -Modus (Wake on Radio), was bedeutet, dass das Gerät eingeschaltet wird, wenn Daten empfangen werden. Übertragung ist nicht erlaubt. |
| Schlafen | 1 | 1 | Verwendet beim Einstellen von Parametern. Senden und Empfangen von Behinderungen. |
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 E32 -Aux -Pin beim Getriebe
Wenn der Aux niedrig wird und hoch wird, wenn der Puffer leer ist.
Lora E32 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 E32 Aux Pin auf Selbstprüfung
ESP8266 -Verbindungsschema ist einfacher, da es bei derselben Spannung logischer Kommunikation (3.3 V) funktioniert.
Lora E32 TTL 100 WEMOS D1 Vollständig verbunden
Es ist wichtig, Pull-up-Widerstand (4,7kohm) hinzuzufügen, um eine gute Stabilität zu erhalten.
| M0 | D7 |
|---|---|
| M1 | D6 |
| Rx | Pin D2 (Pullup 4,7k Ω) |
| Tx | Pin D3 (Pullup 4,7k Ω) |
| Aux | D5 (Eingabe) |
| 3.3 V | GND |
Die Arduino -Arbeitsspannung beträgt 5 V. Daher müssen wir einen Spannungsteiler auf Rx Pin M0 und M1 des LORA -Moduls hinzufügen, um Schäden zu vermeiden. Weitere Informationen finden Sie hier Spannungsteiler: Taschenrechner und Anwendung.
Sie können einen 2KOHM -Widerstand gegen GND und 1KOHM vom Signal verwenden als auf RX zusammengestellt.
Lora E32 TTL 100 Arduino vollständig verbunden
| M0 | 7 (Spannungsteiler) |
|---|---|
| M1 | 6 (Spannungsteiler) |
| Rx | Pin D2 (Pullup 4,7kΩ & Spannungsteiler) |
| Tx | Pin D3 (Pullup 4,7k Ω) |
| Aux | 5 (Eingabe) |
| VCC | 3.3 V |
| 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äte gültig | 00H-1fh |
|---|
OPTION
Art der Übertragung, Klimmzüge, Weckzeit, FEC, Übertragungsleistung
UART Parity Bit: Der _uart -Modus kann zwischen Kommunikationsparteien unterschiedlich sein
| 7 | 6 | UART Parity Bit | const Value | | --- | --- | --- | --- | --- | | 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.
| 5 | 43 | TTL UART Baud Rate (BPS) | Konstanter Wert |
|---|---|---|---|
| 0 | 0 | 0 | 1200 |
| 0 | 0 | 1 | 2400 |
| 0 | 1 | 0 | 4800 |
| 0 | 1 | 1 | 9600 (Standard) |
| 1 | 0 | 0 | 19200 |
| 1 | 0 | 1 | 38400 |
| 1 | 1 | 0 | 57600 |
| 1 | 1 | 1 | 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 | 19,2K (gleich bis 101) | Air_Data_Rate_110_192 |
| 1 | 1 | 1 | 19,2K (gleich bis 101) | Air_Data_Rate_111_192 |
Ü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.
| 7 | Fixes Transmission aktiviert Bit (Ähnlich wie Modbus) | Konstanter Wert |
|---|---|---|
| 0 | Transparenter Übertragungsmodus | Ft_transparent_transmission |
| 1 | Behobener Übertragungsmodus | Ft_fixed_transmission |
IO-Antriebsmodus: Dieses Bit wird im internen Pull-Up-MODUL-Widerstand verwendet. Es erhöht auch die Anpassungsfähigkeit des Levels bei offenem Abfluss. In einigen Fällen muss jedoch externe Klimmzüge erforderlich sein
Widerstand.
| 6 | IO -Laufwerksmodus (Standard 1) | Konstanter Wert |
|---|---|---|
| 1 | TXD- und Aux-Push-Pull-Ausgänge, RXD-Pull-up-Eingänge | IO_D_MODE_PUSH_PULLS_PULL_UPS |
| 0 | TXD 、 Aux Open-Collector-Ausgänge, RXD Open-Collector-Eingänge | Io_d_mode_open_collector |
WLAN-Weckzeit: Das Sende- und Empfangsmodul funktioniert im Modus 0, dessen Verzögerungszeit ungültig ist und ein willkürlicher Wert sein kann. Der Sender arbeitet im Modus 1 kann den Präambelcode der entsprechenden Zeit kontinuierlich übertragen, wenn der Empfänger im Modus 2 arbeitet. Nur die Daten des Senders, die im Modus 1 arbeiten
erhalten.
| 5 | 4 | 3 | drahtlose Weckzeit | Konstanter Wert |
|---|---|---|---|---|
| 0 | 0 | 0 | 250 ms (Standard) | WAKE_UP_250 |
| 0 | 0 | 1 | 500 ms | WAKE_UP_500 |
| 0 | 1 | 0 | 750 ms | WAKE_UP_750 |
| 0 | 1 | 1 | 1000 ms | WAKE_UP_1000 |
| 1 | 0 | 0 | 1250 ms | WAKE_UP_1250 |
| 1 | 0 | 1 | 1500 ms | WAKE_UP_1500 |
| 1 | 1 | 0 | 1750 ms | WAKE_UP_1750 |
| 1 | 1 | 1 | 2000 ms | WAKE_UP_2000 |
FEC: Nach dem Ausschalten der FEC steigt die tatsächliche Datenübertragungsrate, während die Anti-Interferenz-Fähigkeit abnimmt. Auch die Übertragungsentfernung ist relativ kurz, beide Kommunikationsparteien müssen auf denselben Seiten über die Ein- oder Ausschalten von FEC auftreten.
| 2 | FEC -Schalter | Konstanter Wert |
|---|---|---|
| 0 | Schalten Sie FEC aus | FEC_0_OFF |
| 1 | FEC einschalten (Standard) | Fec_1_on |
Übertragungskraft
Sie können diesen Konstantensatz ändern, indem Sie ein Definie wie SO anwenden:
Anwendung für E32-TTL-100, E32-TTL-100S1, E32-T100S2.
Die externe Leistung muss sicherstellen, dass die Fähigkeit der Stromausgabe mehr als 250 mA und die Stromversorgung innerhalb von 100 mV sicherstellen muss.
Aufgrund der geringen Stromversorgung wird keine Übertragung mit geringer Leistung empfohlen
Effizienz.
| 1 | 0 | Übertragungsleistung (Näherung) | Konstanter Wert |
|---|---|---|---|
| 0 | 0 | 20dbm (Standard) | Power_20 |
| 0 | 1 | 17dbm | Power_17 |
| 1 | 0 | 14dbm | Power_14 |
| 1 | 1 | 10dbm | Power_10 |
Anwendbar für E32-TTL-500。
Die externe Leistung muss sicherstellen, dass die Fähigkeit der Stromausgabe mehr als 700 mA und die Stromversorgung innerhalb von 100 mV sicherstellen muss.
Aufgrund der geringen Stromversorgungseffizienz wird keine geringe Stromversorgung empfohlen.
| 1 | 0 | Übertragungsleistung (Näherung) | Konstanter Wert |
|---|---|---|---|
| 0 | 0 | 27dbm (Standard) | Power_27 |
| 0 | 1 | 24 dbm | Power_24 |
| 1 | 0 | 21dbm | Power_21 |
| 1 | 1 | 18dbm | Power_18 |
Anwendbar für E32-TTL-1W, E32 (433T30S), E32 (868T30S), E32 (915T30s)
Die externe Leistung muss sicherstellen, dass die Fähigkeit der Stromausgabe mehr als 1a und die Stromversorgung innerhalb von 100 mV sicherstellen muss.
Aufgrund der geringen Stromversorgung wird keine Übertragung mit geringer Leistung empfohlen
Effizienz.
| 1 | 0 | Übertragungsleistung (Näherung) | Konstanter Wert |
|---|---|---|---|
| 0 | 0 | 30 dbm (Standard) | Power_30 |
| 0 | 1 | 27 dbm | Power_27 |
| 1 | 0 | 24 dbm | Power_24 |
| 1 | 1 | 21dbm | Power_21 |
Sie können Kanalfrequenz -OLSO mit diesem Define konfigurieren:
Der normale/transparente Übertragungsmodus wird verwendet, um Nachrichten mit gleicher Adresse und Kanal an alle Geräte zu senden.
Lora E32 -Übertragungsszenarien, Linien sind Kanäle
Auf diese Weise erstelle ich eine Methode, die ich mit fester Übertragung verwendet habe
Sie müssen nur die Sendungsmethode ändern, da das Zielgerät die Präambel nicht mit Adresse und Kanal empfängt.
Das feste Übertragung hat mehr Szenarien