

Di sini contoh konstruktor, Anda harus melewati antarmuka UART dan (jika Anda mau, tetapi direkomendasikan) pin aux, m0 dan m1.
Untuk menginstal perpustakaan, jalankan perintah berikut:
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 )Hasilnya
# ----------------------------------------
# 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)
# ----------------------------------------
Anda hanya dapat mengatur parameter yang terpencil, yang lain akan diatur ke nilai default.
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 )Saya membuat kelas konstanta untuk setiap parameter, di sini daftar: AirDataRate, uartbaudrate, uartparity, transmissionpower, ForwardErrorCorrectionWitch, WirelessWakeUptime, iodrivemode, FixedTransmission
Di sini contoh data kirim, Anda dapat melewati string
lora . send_transparent_message ( 'pippo' ) lora . send_fixed_message ( 0 , 2 , 23 , 'pippo' )Di sini kode penerima
while True :
if lora . available () > 0 :
code , value = lora . receive_message ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
utime . sleep_ms ( 2000 )Jika Anda ingin menerima RSSI juga, Anda harus mengaktifkannya dalam konfigurasi
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDdan atur bendera ke true dalam metode penerimaan_message
code , value , rssi = lora . receive_message ( True )Hasil
Success!
pippo
Di sini contoh data kirim, Anda dapat melewati kamus
lora . send_transparent_dict ({ 'pippo' : 'fixed' , 'pippo2' : 'fixed2' }) lora . send_fixed_dict ( 0 , 0x01 , 23 , { 'pippo' : 'fixed' , 'pippo2' : 'fixed2' })Di sini kode penerima
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 )Jika Anda ingin menerima RSSI juga, Anda harus mengaktifkannya dalam konfigurasi
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDdan atur bendera ke true dalam metode penerimaan_dict
code , value , rssi = lora . receive_dict ( True )Hasil
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
https://downloads.arduino.cc/libraries/logs/github.com/xreef/ebyte_lora_e22_series_library/
Anda dapat memesan PCB di sini
Video Instruksi dan Perakitan di 6 bagian dari panduan ini
Anda dapat memesan PCB di sini
Video Instruksi dan Perakitan di 6 bagian dari panduan ini
Saya membuat perpustakaan untuk mengelola perangkat Lora seri Ebyte E22, perangkat yang sangat kuat, sederhana dan murah.
Telemetri Data Nirkabel Lora atau Long Range adalah teknologi yang dipelopori oleh Semtech yang beroperasi pada frekuensi yang lebih rendah daripada NRF24L01 (433 MHz, 868 MHz atau 916 MHz lagi 2,4 GHz untuk NRF24L01) tetapi pada jarak tiga kali (dari 4000m hingga 10000m).
Lora E22
Anda dapat menemukan di sini AliExpress (433MHz 4km) - AliExpress (433MHz 10km)
Silakan merujuk ke artikel saya untuk mendapatkan skema yang diperbarui
Anda dapat menemukan perpustakaan saya di sini.
Untuk mengunduh.
Klik tombol Unduhan di sudut kanan atas, ganti nama folder Lora_E22 yang tidak terkompresi.
Periksa bahwa folder LORA_E22 berisi lora_e22.cpp dan lora_e22.h.
Tempatkan folder perpustakaan lora_e22 Anda / pustaka / folder Anda.
Anda mungkin perlu membuat subfolder perpustakaan jika ini perpustakaan pertama Anda.
Mulai ulang IDE.
E22
| Pin No. | Item pin | Arah pin | Aplikasi pin |
|---|---|---|---|
| 1 | M0 | Input (pull-up lemah) | Bekerja dengan M1 & Tentukan Empat Mode Pengoperasian. FLOATING TIDAK DIPERLUKAN, dapat ditumbuk. |
| 2 | M1 | Input (pull-up lemah) | Bekerja dengan M0 & Tentukan Empat Mode Operasi. FLOATING TIDAK DIPERLUKAN, bisa menjadi ground. |
| 3 | Rxd | Masukan | Input TTL UART, terhubung ke External (MCU, PC) TXD OutputPin. Dapat dikonfigurasi sebagai input terbuka atau pull-up. |
| 4 | Txd | Keluaran | Output UART TTL, terhubung ke inputpin RXD eksternal (MCU, PC). Dapat dikonfigurasi sebagai output terbuka atau tarik-tarik |
5 | Aux | Keluaran | 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 tensione. Può essere configurato datang uscita open-drain o output push-pull (è consentito non metterlo a terra, ma se hai problemi, ad esempio ti si freeze il dispositivo è preferensi mete-mettere una resistenza di pull-up da 4.7ko meglio collegoLo aldosiVo). |
| 6 | Vcc | Catu Daya 2.3V ~ 5.5V DC | |
| 7 | Gnd | Tanah |
Seperti yang Anda lihat, Anda dapat mengatur berbagai mode melalui pin M0 dan M1.
| Mode | M1 | M0 | Penjelasan |
|---|---|---|---|
| Normal | 0 | 0 | UART dan saluran nirkabel terbuka, transmisi transparan aktif (mendukung konfigurasi melalui udara melalui perintah khusus) |
| Mode WOR | 0 | 1 | Dapat didefinisikan sebagai pemancar Wor dan penerima WOR |
| Mode Konfigurasi | 1 | 0 | Pengguna dapat mengakses register melalui port serial untuk mengontrol status kerja modul |
| Mode tidur yang dalam | 1 | 1 | Mode tidur |
Seperti yang Anda lihat ada beberapa pin yang dapat digunakan dengan cara statis, tetapi jika Anda menghubungkannya ke perpustakaan yang Anda dapatkan dalam kinerja dan Anda dapat mengontrol semua mode melalui perangkat lunak, tetapi kami akan menjelaskan lebih baik berikutnya.
Seperti yang sudah saya katakan tidak penting untuk menghubungkan semua pin ke output mikrokontroler, Anda dapat meletakkan pin M0 dan M1 ke tinggi atau rendah untuk mendapatkan konfigurasi yang jelas, dan jika Anda tidak menghubungkan AUX, perpustakaan menetapkan penundaan yang masuk akal untuk memastikan bahwa operasi selesai .
Saat mentransmisikan data dapat digunakan untuk membangunkan MCU eksternal dan kembali tinggi pada finish transfer data.
Pin lora e22 aux pada transmisi
Saat menerima aux menjadi rendah dan kembali tinggi saat buffer kosong.
Lora e22 aux pin pada penerimaan
Ini juga digunakan untuk memeriksa sendiri untuk memulihkan operasi normal (pada mode power-on dan sleep/program).
Lora e22 aux pin pada pemeriksaan sendiri
Skema koneksi ESP8266 lebih sederhana karena bekerja pada tegangan komunikasi logis yang sama (3.3V).
Lora e22 ttl 100 wemos d1 terhubung sepenuhnya
Penting untuk menambahkan resistor pull-up (4,7kohm) untuk mendapatkan stabilitas yang baik.
| 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 | 5V (tetapi bekerja dengan lebih sedikit kekuatan dalam 3.3V) |
| Gnd | Gnd |
Skema koneksi yang serupa untuk ESP32, tetapi untuk RX dan TX kami menggunakan RX2 dan TX2, karena secara default ESP32 tidak memiliki softwareserial tetapi memiliki 3 serial.
E22 E22 E22 Device Esp32 Dev Kit V1 Breadboard Connection Penuh
| 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 | 5V (tetapi bekerja dengan lebih sedikit kekuatan dalam 3.3V) |
| Gnd | Gnd |
| Addh | Byte alamat tinggi modul (default 00h) | 00h-ffh |
| Addl | Byte alamat rendah modul (default 00h) | 00h-ffh |
| Melaju | Informasi tentang bit paritas data laju dan tingkat data udara | |
| Chan | Saluran Komunikasi (410m + Chan*1M), default 17h (433MHz), hanya berlaku untuk perangkat 433MHz Chek di bawah ini untuk memeriksa frekuensi perangkat Anda yang benar | 00H-1FH |
| PILIHAN | Jenis transmisi, ukuran paket, izinkan pesan khusus | |
| Transmisi_mode | Banyak parameter yang menentukan modalitas transmisi |
PILIHAN
Jenis transmisi, pengaturan pull-up, waktu bangun, FEC, daya transmisi
UART Parity Bit: Mode UART dapat berbeda antara pihak komunikasi
| 4 | 3 | UART parity bit | Nilai konstan |
| 0 | 0 | 8n1 (default) | Mode_00_8n1 |
| 0 | 1 | 8o1 | Mode_01_8o1 |
| 1 | 0 | 8 E1 | Mode_10_8e1 |
| 1 | 1 | 8n1 (sama dengan 00) | Mode_11_8n1 |
UART baud rate: UART baud rate dapat berbeda antara pihak komunikasi, UART baud rate tidak ada hubungannya dengan parameter transmisi nirkabel & tidak akan mempengaruhi fitur transmit / menerima nirkabel.
| 7 | 6 | 5 | Ttl uart baud rate (bps) | Nilai konstan |
| 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 (default) | 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 |
Laju Data Udara: Semakin rendah laju data udara, semakin lama jarak transmisi, kinerja anti-gangguan yang lebih baik dan waktu transmisi lebih lama, laju data udara harus menjaga hal yang sama untuk kedua pihak komunikasi.
| 2 | 1 | 0 | Laju data udara (bps) | Nilai konstan |
| 0 | 0 | 0 | 0.3k | AIR_DATA_RATE_000_03 |
| 0 | 0 | 1 | 1.2k | AIR_DATA_RATE_001_12 |
| 0 | 1 | 0 | 2.4k (default) | 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 |
Pengaturan Sub Paket ####
Ini adalah max lenght dari paket.
Ketika data lebih kecil dari panjang sub -paket, output serial dari ujung penerima adalah output kontinu yang tidak terputus. Ketika data lebih besar dari panjang sub paket, port serial ujung penerima akan menghasilkan paket sub.
| 7 | 6 | Ukuran paket | Nilai konstan |
| 0 | 0 | 240bytes (default) | SPS_240_00 |
| 0 | 1 | 128bytes | SPS_128_01 |
| 1 | 0 | 64bytes | SPS_064_10 |
| 1 | 1 | 32bytes | SPS_032_11 |
#### RSSI Ambient Noise Enable
Perintah ini dapat mengaktifkan/menonaktifkan jenis manajemen RSSI, penting untuk mengelola konfigurasi jarak jauh, perhatikan bukan parameter RSSI dalam pesan.
Saat diaktifkan, perintah C0 C1 C2 C3 dapat dikirim dalam mode transmisi atau mode transmisi WOR untuk membaca register. Daftar 0x00: Noise ambient saat ini RSSI Register 0x01: RSSI Saat data diterima terakhir kali.
| 5 | RSSI Ambient Noise Enable | Nilai konstan |
| 0 | Memungkinkan | Rssi_ambient_noise_enabled |
| 1 | Nonaktifkan (default) | Rssi_ambient_noise_disabled |
#### Aktifkan RSSI
Saat diaktifkan, modul menerima data nirkabel dan akan mengikuti byte kekuatan RSSI setelah output melalui port serial TXD
Jenis transmisi ####
Mode Transmisi: Dalam mode transmisi tetap, tiga byte pertama dari bingkai data masing -masing pengguna dapat digunakan sebagai alamat dan saluran tinggi/rendah. Modul mengubah alamat dan salurannya saat mengirim. Dan itu akan kembali ke pengaturan asli setelah menyelesaikan proses.
#### Aktifkan fungsi repeater
#### Monitor data sebelum transmisi
Saat diaktifkan, data nirkabel akan dipantau sebelum ditransmisikan, yang dapat menghindari gangguan sampai batas tertentu, tetapi dapat menyebabkan penundaan data.
#### Wor
Pemancar Wor: Modul yang menerima dan mentransmisikan fungsi dihidupkan, dan kode bangun ditambahkan saat mengirimkan data. Menerima dihidupkan.
Wor Receiver: Modul tidak dapat mengirimkan data dan bekerja dalam mode pemantauan WOR. Periode pemantauan adalah sebagai berikut (siklus WOR), yang dapat menghemat banyak daya.
#### Siklus Wor
Jika Wor sedang mentransmisikan: Setelah penerima WOR menerima data nirkabel dan mengeluarkannya melalui port serial, ia akan menunggu 1000ms sebelum memasukkan Wor lagi. Pengguna dapat memasukkan data port serial dan mengembalikannya melalui nirkabel selama periode ini. Setiap byte serial akan disegarkan untuk 1000ms. Pengguna harus mengirimkan byte pertama dalam 1000ms.
Pertama -tama kita harus memperkenalkan metode yang sederhana tapi bermanfaat untuk memeriksa apakah ada sesuatu yang ada di buffer penerima
int available ();Ini hanya mengembalikan berapa banyak byte yang Anda miliki di aliran saat ini.
Mode transmisi normal/transparan digunakan untuk mengirim pesan ke semua perangkat dengan alamat dan saluran yang sama.
Lora E22 Skenario pengiriman, garis adalah saluran
Pemasangan transmisi memiliki lebih banyak skenario
Lora E22 Skenario pengiriman, garis adalah saluran
Sekarang Anda memiliki semua informasi untuk melakukan pekerjaan Anda, tetapi saya pikir penting untuk menunjukkan beberapa contoh yang realistis untuk membatalkan dan lebih baik semua kemungkinan.
Perangkat Ebyte Lora E22 untuk Arduino, ESP32 atau ESP8266: Pengaturan dan Penggunaan Dasar
Perangkat Ebyte Lora E22 untuk Arduino, ESP32 atau ESP8266: Perpustakaan
Perangkat Ebyte Lora E22 untuk Arduino, ESP32 atau ESP8266: Konfigurasi
Perangkat Ebyte Lora E22 untuk Arduino, ESP32 atau ESP8266: Transmisi Tetap dan RSSI
Perangkat Ebyte Lora E22 untuk Arduino, ESP32 atau ESP8266: Penghematan Daya dan Pengiriman Data Terstruktur
Perangkat Ebyte Lora E22 untuk Arduino, ESP32 atau ESP8266: Mode Repeater dan Pengaturan Jarak Jauh
Perangkat Ebyte Lora E22 untuk Arduino, ESP32 atau ESP8266: Wor Microcontroller dan Arduino Shield
Perangkat Ebyte Lora E22 untuk Arduino, ESP32 atau ESP8266: WOR Microcontroller dan Wemos D1 Shield
Perangkat Ebyte Lora E22 untuk Arduino, ESP32 atau ESP8266: WOR Microcontroller dan ESP32 Dev V1 Shield