

Untuk menginstal perpustakaan, jalankan perintah berikut:
pip install ebyte-lora-e220-circuitpythonDi sini contoh konstruktor, Anda harus melewati antarmuka UART dan (jika Anda mau, tetapi direkomendasikan) pin aux, m0 dan m1.
from lora_e220 import LoRaE220
import busio
import board
uart2 = busio . UART ( board . TX2 , board . RX2 , baudrate = 9600 )
lora = LoRaE220 ( '400T22D' , uart2 , aux_pin = board . D15 , m0_pin = board . D21 , m1_pin = board . D19 ) code = lora . begin ()
print ( "Initialization: {}" , ResponseStatusCode . get_description ( code )) from lora_e220 import LoRaE220 , print_configuration
from lora_e220_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( "Retrieve configuration: {}" , ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )Hasilnya
----------------------------------------
Initialization: {} Success
Retrieve configuration: {} Success
----------------------------------------
HEAD : 0xc1 0x0 0x8
AddH : 0x0
AddL : 0x0
Chan : 23 -> 433
SpeedParityBit : 0b0 -> 8N1 (Default)
SpeedUARTDatte : 0b11 -> 9600bps (default)
SpeedAirDataRate : 0b10 -> 2.4kbps (default)
OptionSubPacketSett: 0b0 -> 200bytes (default)
OptionTranPower : 0b0 -> 22dBm (Default)
OptionRSSIAmbientNo: 0b0 -> Disabled (default)
TransModeWORPeriod : 0b11 -> 2000ms (default)
TransModeEnableLBT : 0b0 -> Disabled (default)
TransModeEnableRSSI: 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 . 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 . 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 . OPTION . subPacketSetting = SubPacketSetting . SPS_064_10
configuration_to_set . TRANSMISSION_MODE . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
configuration_to_set . TRANSMISSION_MODE . WORPeriod = WorPeriod . WOR_1500_010
configuration_to_set . TRANSMISSION_MODE . enableLBT = LbtEnableByte . LBT_DISABLED
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED
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 )
time . sleep ( 2 )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' ])
time . sleep ( 2 )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
Lora Smart Home (LLCC68) adalah transceiver RF Sub-GHZ Lora® untuk aplikasi nirkabel indoor dan indoor ke luar ruangan. Antarmuka SPI. Pin-to-pin kompatibel dengan SX1262. SX1261, SX1262, SX1268, dan LLCC68 dirancang untuk masa pakai baterai yang lama dengan hanya 4,2 mA dari konsumsi penerimaan aktif saat ini. SX1261 dapat mentransmisikan hingga +15 dBm, dan SX1262, SX1268, dan LLCC68 dapat mentransmisikan hingga +22 dBm dengan amplifier daya terintegrasi yang sangat efisien.
Perangkat ini mendukung modulasi LORA untuk kasus penggunaan LPWAN dan (g) modulasi FSK untuk kasus penggunaan lama. Perangkat sangat dapat dikonfigurasi untuk memenuhi persyaratan aplikasi yang berbeda untuk penggunaan konsumen. Perangkat ini memberikan modulasi LORA yang kompatibel dengan transceiver semtech yang digunakan oleh spesifikasi Lorawan® yang dirilis oleh Lora Alliance®. Radio ini cocok untuk sistem yang menargetkan kepatuhan dengan peraturan radio, termasuk tetapi tidak terbatas pada ETSI EN 300 220, FCC CFR 47 Bagian 15, persyaratan peraturan China, dan ARIB T-108 Jepang. Cakupan frekuensi berkelanjutan dari 150MHz hingga 960MHz memungkinkan dukungan dari semua pita ISM sub-GHz utama di seluruh dunia.
| Llcc68 | SX1278-SX1276 | |
|---|---|---|
| Jarak | > 11km | 8km |
| Tarif (lora) | 1.76kbps - 62.5kbps | 0.3kbps - 19.2kbps |
| Konsumsi daya tidur | 2μA | 5μA |
Perpustakaan untuk perangkat Ebyte Lora E220 LLCC68 untuk Arduino, ESP32 atau ESP8266.
| Pin No. | Item pin | Arah pin | Aplikasi pin |
|---|---|---|---|
| 1 | M0 | Input (pull-up lemah) | Bekerja dengan M1 & Tentukan Empat Mode Operasi. Mengambang tidak diperbolehkan; itu bisa menjadi tanah. |
| 2 | M1 | Input (pull-up lemah) | Bekerja dengan M0 & Tentukan Empat Mode Operasi. Mengambang tidak diperbolehkan; itu bisa menjadi tanah. |
| 3 | Rxd | Masukan | Input UART TTL Sambungkan ke pin output TXD Eksternal (MCU, PC). Ini dapat dikonfigurasi sebagai input drain terbuka atau pull-up. |
| 4 | Txd | Keluaran | Output TTL UART Sambungkan ke pin input RXD (MCU, PC) eksternal. Dapat dikonfigurasi sebagai output terbuka atau tarik-tarik |
5 | Aux | Keluaran | Untuk menunjukkan status kerja modul & membangunkan MCU eksternal. Selama prosedur inisialisasi periksa sendiri, pin menghasilkan level rendah. Ini dapat dikonfigurasi sebagai output drain terbuka atau tarik-tarik (diizinkan diizinkan). |
| 6 | Vcc | Catu Daya 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 | Saluran UART dan nirkabel terbuka, dan transmisi transparan aktif |
| Pemancar wor | 0 | 1 | Pemancar wor |
| Wor Wor | 1 | 0 | Wor Receiver (dukungan bangun di udara) |
| Mode tidur yang dalam | 1 | 1 | Modul menjadi tidur (secara otomatis bangun saat mengkonfigurasi parameter) |
Beberapa pin dapat digunakan secara statis, tetapi jika Anda menghubungkannya ke mikrokontroler dan mengonfigurasinya di perpustakaan, Anda mendapatkan kinerja dan dapat mengontrol semua mode melalui perangkat lunak. Namun, kami akan menjelaskan lebih baik berikutnya.
Seperti yang sudah saya katakan, tidak penting untuk menghubungkan semua pin ke output mikrokontroler; Anda dapat menempatkan pin M0 dan M1 ke tinggi atau rendah untuk mendapatkan konfigurasi yang diinginkan. Jika Anda tidak menghubungkan AUX, perpustakaan menetapkan penundaan yang masuk akal untuk memastikan bahwa operasi selesai ( jika Anda memiliki masalah dengan pembekuan perangkat, Anda harus meletakkan resistor 4.7K pull-up atau lebih baik terhubung ke perangkat. ).
Saat mentransmisikan data dapat digunakan untuk membangunkan MCU eksternal dan kembali tinggi pada finish transfer data.
Saat menerima, Aux menjadi rendah dan kembali tinggi saat buffer kosong.
Ini juga digunakan untuk memeriksa sendiri untuk memulihkan operasi reguler (pada mode power-on dan sleep/program).
Skema koneksi ESP8266 lebih mudah karena bekerja pada tegangan komunikasi logis yang sama (3.3V).
Sangat 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 | ESP32 |
|---|---|
| M0 | D21 |
| M1 | D19 |
| Tx | Pin RX2 (pullup 4,7kΩ) |
| Rx | Pin TX3 (pullup 4,7kΩ) |
| Aux | Pin D18 (pullup 4,7kΩ) (D15 untuk bangun) |
| Vcc | 5V (tetapi bekerja dengan lebih sedikit kekuatan dalam 3.3V) |
| Gnd | Gnd |
| M0 | 2 (pembagi tegangan) |
| M1 | 3 (pembagi tegangan) |
| Tx | Pin 14 TX (pullup 4,7kΩ) |
| Rx | Pin 13 Rx (pullup 4,7kΩ) |
| Aux | Pin 1 (pullup 4,7kΩ) |
| Vcc | 5v |
| Gnd | Gnd |
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
Telemetri data nirkabel Lora atau jarak jauh adalah teknologi yang dipelopori oleh Semtech yang beroperasi pada frekuensi yang lebih rendah daripada NRF24L01 (433 MHz, 868 MHz, atau 916 MHz terhadap 2,4 GHz untuk NRF24L01) tetapi pada jarak tiga kali (dari 5000m hingga 11000m).
| Nama | Keterangan | Alamat |
|---|---|---|
| Addh | Byte alamat tinggi modul (default 00h) | 00h |
| Addl | Byte alamat rendah dari modul (default 00h) | 01h |
| Melaju | Informasi tentang bit paritas data laju dan tingkat data udara | 02H |
| PILIHAN | Jenis transmisi, ukuran paket, izinkan pesan khusus | 03H |
| Chan | Saluran Komunikasi (410m + Chan*1M), default 17h (433MHz), hanya berlaku untuk perangkat 433MHz pemeriksaan di bawah ini untuk memeriksa frekuensi perangkat Anda yang benar | 04H |
| PILIHAN | Jenis transmisi, ukuran paket, izinkan pesan khusus | 05h |
| Transmisi_mode | Banyak parameter yang menentukan modalitas transmisi | 06H |
| RUANG BAWAH TANAH | Enkripsi untuk menghindari intersepsi | 07H |
UART Parity Bit: Mode UART dapat berbeda antara pihak komunikasi
| UART parity bit | Nilai konstan |
|---|---|
| 8n1 (default) | Mode_00_8n1 |
| 8o1 | Mode_01_8o1 |
| 8e1 | Mode_10_8e1 |
| 8n1 (sama dengan 00) | Mode_11_8n1 |
UART Baud Rate: UART Baud Rate dapat berbeda antara partai komunikasi (tetapi tidak direkomendasikan). UART Baud Rate tidak ada hubungannya dengan parameter transmisi nirkabel & tidak akan mempengaruhi fitur transmit/menerima nirkabel.
| Ttl uart baud rate (bps) | Nilai konstan |
|---|---|
| 1200 | UART_BPS_1200 |
| 2400 | UART_BPS_2400 |
| 4800 | UART_BPS_4800 |
| 9600 (default) | UART_BPS_9600 |
| 19200 | UART_BPS_19200 |
| 38400 | UART_BPS_38400 |
| 57600 | UART_BPS_57600 |
| 115200 | UART_BPS_115200 |
Laju Data Udara: Semakin rendah laju data udara, semakin lama jarak transmisi, kinerja anti-interferensi yang lebih baik, dan waktu transmisi lebih lama; Laju data udara harus konstan untuk kedua pihak komunikasi.
| Laju data udara (bps) | Nilai konstan |
|---|---|
| 2.4k | AIR_DATA_RATE_000_24 |
| 2.4k | AIR_DATA_RATE_001_24 |
| 2.4k (default) | AIR_DATA_RATE_010_24 |
| 4.8k | AIR_DATA_RATE_011_48 |
| 9.6k | AIR_DATA_RATE_100_96 |
| 19.2k | AIR_DATA_RATE_101_192 |
| 38.4k | AIR_DATA_RATE_110_384 |
| 62.5k | AIR_DATA_RATE_111_625 |
Ini adalah panjang maksimum paket.
Ketika data lebih kecil dari panjang subpacket, output serial dari ujung penerima adalah output kontinu yang tidak terputus. Port serial end penerima akan mengeluarkan subpacket ketika data lebih besar dari panjang subpacket.
| Ukuran paket | Nilai konstan |
|---|---|
| 200bytes (default) | SPS_200_00 |
| 128bytes | SPS_128_01 |
| 64bytes | SPS_064_10 |
| 32bytes | SPS_032_11 |
Perintah ini dapat mengaktifkan/menonaktifkan jenis manajemen RSSI, dan 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.
| RSSI Ambient Noise Enable | Nilai konstan |
|---|---|
| Memungkinkan | Rssi_ambient_noise_enabled |
| Nonaktifkan (default) | Rssi_ambient_noise_disabled |
Anda dapat mengubah rangkaian konstanta ini dengan menerapkan define seperti demikian:
#define E220_22 // Nilai default tanpa set
Berlaku untuk E220 dengan 22dBm sebagai Max Power.
Transmisi daya rendah tidak dianjurkan karena efisiensi catu daya yang rendah.
| Daya transmisi (perkiraan) | Nilai konstan |
|---|---|
| 22dbm (default) | Power_22 |
| 17dbm | Power_17 |
| 13dbm | Power_13 |
| 10dbm | Power_10 |
Berlaku untuk E220 dengan 30dBm sebagai Max Power.
Transmisi daya rendah tidak dianjurkan karena efisiensi catu daya yang rendah.
#define E220_30
| Daya transmisi (perkiraan) | Nilai konstan |
|---|---|
| 30dbm (default) | Power_30 |
| 27dbm | Power_27 |
| 24dbm | Power_24 |
| 21DBM | Power_21 |
Anda dapat mengonfigurasi frekuensi saluran juga dengan define ini:
// salah satunya #define frekuensi_433 #define frekuensi_170 #define frekuensi_470 #define frekuensi_868 #define frekuensi_915
Saat diaktifkan, modul menerima data nirkabel, dan akan mengikuti byte kekuatan RSSI setelah output melalui port serial TXD
| Aktifkan RSSI | Nilai konstan |
|---|---|
| Memungkinkan | Rssi_enabled |
| Nonaktifkan (default) | Rssi_disabled |
Mode Transmisi: Tiga byte pertama dari bingkai data masing -masing pengguna dapat digunakan sebagai alamat tinggi/rendah dan saluran dalam mode transmisi tetap. Modul mengubah alamat dan salurannya saat ditransmisikan. Dan itu akan kembali ke pengaturan asli setelah menyelesaikan proses.
| Memperbaiki bit pengaktifan transmisi | Nilai konstan |
|---|---|
| Memperbaiki mode transmisi | Ft_fixed_transmission |
| Mode transmisi transparan (default) | Ft_transparent_transmission |
Saat diaktifkan, data nirkabel akan dipantau sebelum ditransmisikan, menghindari gangguan sampai batas tertentu, tetapi dapat menyebabkan penundaan data.
| LBT mengaktifkan byte | Nilai konstan |
|---|---|
| Memungkinkan | Lbt_enabled |
| Nonaktifkan (default) | Lbt_disabled |
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.
| Waktu bangun nirkabel | Nilai konstan |
|---|---|
| 500ms | Wake_up_500 |
| 1000ms | Wake_Up_1000 |
| 1500ms | Wake_Up_1500 |
| 2000ms (default) | Wake_Up_2000 |
| 2500ms | Wake_Up_2500 |
| 3000ms | Wake_Up_3000 |
| 3500ms | Wake_Up_3500 |
| 4000ms | Wake_Up_4000 |
Pertama, kita harus memperkenalkan metode sederhana namun praktis untuk memeriksa apakah ada sesuatu yang ada di buffer penerima.
int tersedia ();
Sederhana untuk mengembalikan berapa banyak byte yang Anda miliki di aliran saat ini.
Mode transmisi normal/transparan mengirim pesan ke semua perangkat dengan alamat dan saluran yang sama.
Pemasangan transmisi memiliki lebih banyak skenario
Sekarang Anda memiliki semua informasi untuk melakukan pekerjaan Anda, tetapi saya pikir penting untuk menunjukkan beberapa contoh nyata untuk memahami semua kemungkinan yang lebih baik.
Perpustakaan GitHub