

在這裡,構造函數的示例,您必須傳遞UART接口,並且(如果需要,但已提及)Aux PIN,M0和M1。
要安裝庫執行以下命令:
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 )結果
# ----------------------------------------
# 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)
# ----------------------------------------
您只能設置當之無愧的參數,另一個將設置為默認值。
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 )我為每個參數創建一個常數類,此處列表:airdatarate,uartbaudrate,uartparity,變速箱功率,forwardErrorCorrectionsWitch,WirelessWakeUptime,iodrivemode,fixeTransmissiment
在這裡,發送數據的示例,您可以傳遞字符串
lora . send_transparent_message ( 'pippo' ) lora . send_fixed_message ( 0 , 2 , 23 , 'pippo' )這裡的接收器代碼
while True :
if lora . available () > 0 :
code , value = lora . receive_message ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
utime . sleep_ms ( 2000 )如果要接收RSSI,也必須在配置中啟用它
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED並將標誌設置為true在接收_message方法中
code , value , rssi = lora . receive_message ( True )結果
Success!
pippo
在這裡,發送數據的示例,您可以傳遞字典
lora . send_transparent_dict ({ 'pippo' : 'fixed' , 'pippo2' : 'fixed2' }) lora . send_fixed_dict ( 0 , 0x01 , 23 , { 'pippo' : 'fixed' , 'pippo2' : 'fixed2' })這裡的接收器代碼
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 )如果要接收RSSI,也必須在配置中啟用它
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED並將標誌設置為true在接收_DICT方法中
code , value , rssi = lora . receive_dict ( True )結果
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
https://downloads.arduino.cc/libraries/logs/github.com/xreef/ebyte_lora_e22_series_library/
您可以在此處訂購PCB
指南的6部分中的指導和集會視頻
您可以在此處訂購PCB
指南的6部分中的指導和集會視頻
我創建了一個庫來管理EBYTE E22系列洛拉設備,非常強大,簡單且便宜的設備。
LORA或遠程無線數據遙測是由Semtech開創的一項技術,其頻率低於NRF24L01(433 MHz,868 MHz,868 MHz或916 MHz,對於NRF24L01,又是2.4 GHz),但距離為4000m至1000000m)。
洛拉E22
您可以在這裡找到Aliexpress(433MHz 4km)-Aliexpress(433MHz 10km)
請參閱我的文章以獲取更新的模式
您可以在這裡找到我的圖書館。
下載。
單擊右上角的下載按鈕,重命名未壓縮文件夾lora_e22。
檢查Lora_E22文件夾是否包含lora_e22.cpp和lora_e22.h。
將lora_e22庫文件夾放置您的 /庫 /文件夾。
如果您的第一個庫,則可能需要創建庫子文件夾。
重新啟動IDE。
E22
| 銷號 | 引腳項目 | 引腳方向 | 引腳應用 |
|---|---|---|---|
| 1 | M0 | 輸入(弱上拉) | 與M1一起工作並確定四種操作模式。不允許進行浮動,可以接地。 |
| 2 | M1 | 輸入(弱上拉) | 與M0一起工作並確定四種操作模式。不允許進行浮動,可以接地。 |
| 3 | rxd | 輸入 | TTL UART輸入,連接到外部(MCU,PC)TXD Outputpin。可以配置為開放式或上拉輸入。 |
| 4 | TXD | 輸出 | TTL UART輸出,連接到外部RXD(MCU,PC)輸入。可以將其配置為開放式或推力輸出 |
5 | 輔助 | 輸出 | per nifeare lo stato di funzionamento del modulo e riattivare l'mcu esterno。 Durante la Pssoceura di Inizializzazione di Autocontrollo,Il Pin Emette una bassa tensione。 puòEssereconformato uscita optrain o輸出pusp-pult-push-pull(dento non metterlo a terra,ma se hai Qualidei,ad esempio ti si freeze iL dispositivod preaveibile mettere una una una una insistenza restistenza restistenza di restistenza di restistenza di restistenza di da 4.7klio collegarlo collegarlo collegarlo collegarlo al depositivo)。 |
| 6 | VCC | 電源2.3V〜5.5V DC | |
| 7 | gnd | 地面 |
如您所見,您可以通過M0和M1引腳設置各種模式。
| 模式 | M1 | M0 | 解釋 |
|---|---|---|---|
| 普通的 | 0 | 0 | UART和無線通道是開放的,透明的傳輸正在打開(通過Special Command在空中支撐配置) |
| 最差模式 | 0 | 1 | 可以定義為較差的發射器和較差的接收器 |
| 配置模式 | 1 | 0 | 用戶可以通過串行端口訪問寄存器以控制模塊的工作狀態 |
| 深度睡眠模式 | 1 | 1 | 睡眠模式 |
如您所見,有一些可以以靜態方式使用的引腳,但是如果您將其連接到庫中獲得的庫,並且可以通過軟件控制所有模式,但是接下來我們將更好地解釋。
正如我已經說的那樣,將所有引腳連接到微控制器的輸出並不重要,您可以將M0和M1引腳放在高或低的位置以獲得應有的配置,如果您不連接AUX,則庫設置了合理的延遲,以確保操作完成。
當傳輸時,數據可用於喚醒外部MCU並返回數據傳輸飾面。
Lora E22輔助引腳在傳輸上
當接收輔助時,緩衝區為空時返回高。
Lora E22輔助引腳接收
它也用於自我檢查以恢復正常操作(在電源和睡眠/程序模式下)。
lora e22 aux pin on自我檢查
ESP8266連接架構更簡單,因為它在邏輯通信(3.3V)的相同電壓下工作。
Lora E22 TTL 100 WEMOS D1完全連接
重要的是添加上拉電阻(4,7kOhm)以獲得良好的穩定性。
| E22 | ESP8266 |
|---|---|
| M0 | D7 |
| M1 | D6 |
| TX | 引腳D2(上拉4,7kΩ) |
| Rx | 引腳D3(上拉4,7kΩ) |
| 輔助 | 引腳D5(上拉4,7kΩ) |
| VCC | 5V(但在3.3V中使用較少的功率) |
| gnd | gnd |
ESP32的類似連接架構,但是對於RX和TX,我們使用RX2和TX2,因為默認情況下ESP32沒有軟焊接,但具有3個序列。
EBYTE LORA E22設備ESP32開發套件V1麵包板完全連接
| E22 | ESP32 |
|---|---|
| M0 | D21 |
| M1 | D19 |
| TX | 引腳RX2(上拉4,7kΩ) |
| Rx | 引腳TX3(上拉4,7kΩ) |
| 輔助 | 引腳D18(上拉4,7kΩ) |
| VCC | 5V(但在3.3V中使用較少的功率) |
| gnd | gnd |
| addh | 模塊的高地址字節(默認00H) | 00h-ffh |
| addl | 模塊的低地址字節(默認00H) | 00h-ffh |
| 加油 | 有關數據速率平價位和空氣數據速率的信息 | |
| 陳 | 通信頻道(410m + Chan(1M),默認17H(433MHz),僅適用於433MHz設備CHEK在下面檢查設備的正確頻率 | 00H-1FH |
| 選項 | 傳輸類型,數據包大小,允許特殊消息 | |
| 傳輸_mode | 許多指定傳輸方式的參數 |
選項
傳輸類型,上拉設置,喚醒時間,FEC,傳輸功率
UART Parity位: UART模式在交流方之間可能有所不同
| 4 | 3 | UART均等位 | 恆定值 |
| 0 | 0 | 8N1(默認) | MODE_00_8N1 |
| 0 | 1 | 8o1 | 模式_01_8O1 |
| 1 | 0 | 8 E1 | MODE_10_8E1 |
| 1 | 1 | 8N1(等於00) | 模式_11_8N1 |
UART BAUD率:UART BAUD率在交流方之間可能有所不同,UART BAUD率與無線傳輸參數無關,並且不會影響無線傳輸 /接收功能。
| 7 | 6 | 5 | TTL UART BAUD率(BPS) | 恆定值 |
| 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(默認) | 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 |
空氣數據速率:空氣數據速率越低,傳輸距離的時間越長,反干擾性能的時間越長,並且較長的傳輸時間,空氣數據速率必須保持相同的通信方。
| 2 | 1 | 0 | 空氣數據率(bps) | 恆定值 |
| 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(默認) | 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 |
####子數據包設置
這是數據包的最大lenght。
當數據小於子數據包長度時,接收端的串行輸出是不間斷的連續輸出。當數據大於子數據包長度時,接收端串行端口將輸出子數據包。
| 7 | 6 | 數據包大小 | 恆定值 |
| 0 | 0 | 240 bytes(默認) | SPS_240_00 |
| 0 | 1 | 128比特 | SPS_128_01 |
| 1 | 0 | 64比特 | SPS_064_10 |
| 1 | 1 | 32比特 | SPS_032_11 |
#### RSSI環境噪聲啟用
此命令可以啟用/禁用RSSI的管理類型,重要的是要管理遠程配置,請注意消息中的RSSI參數。
啟用後,可以以發送模式或Wor Transmitting模式發送C0 C1 C2 C3命令以讀取寄存器。寄存器0x00:當前環境噪聲RSSI寄存器0x01:上次收到數據時。
| 5 | RSSI環境噪聲啟用 | 恆定值 |
| 0 | 使能夠 | rssi_ambient_noise_enabled |
| 1 | 禁用(默認) | rssi_ambient_noise_disabled |
####啟用RSSI
啟用後,該模塊會接收無線數據,並且它將遵循輸出後通過串行端口TXD的RSSI強度字節
####傳輸類型
傳輸模式:在固定傳輸模式下,每個用戶數據框架的前三個字節可用作高/低地址和頻道。傳輸時該模塊更改其地址和通道。完成該過程後,它將恢復為原始設置。
####啟用中繼器功能
####傳輸前監視數據
啟用後,將在傳輸之前監視無線數據,這可以在一定程度上避免干擾,但可能會導致數據延遲。
#### wor
Wor Transmitter:接收和發送功能的模塊已打開,並在傳輸數據時添加喚醒代碼。接收已打開。
Wor接收器:該模塊無法在WOR監視模式下傳輸數據並運行。監視期如下(最差週期),可以節省大量功率。
####最差週期
如果WOR正在傳輸:在WOR接收器接收到無線數據並通過串行端口輸出後,它將等待1000ms,然後再進入WOR。用戶可以輸入串行端口數據並在此期間通過無線返回。每個串行字節將刷新1000ms。用戶必須在1000ms內傳輸第一個字節。
首先,我們必須介紹一種簡單但有用的方法來檢查接收緩衝區中是否有東西
int available ();這只是返回當前流中有多少個字節。
正常/透明傳輸模式用於將消息發送到具有相同地址和頻道的所有設備。
Lora E22傳輸方案,行是通道
固定傳輸有更多方案
Lora E22傳輸方案,行是通道
現在,您可以使用所有信息來完成您的工作,但是我認為重要的是要展示一些現實的例子以消除所有可能性。
EBYTE LORA E22 ARDUINO,ESP32或ESP8266:設置和基本用法
Ebyte Lora E22 Arduino,ESP32或ESP8266:庫
EBYTE LORA E22 ARDUINO,ESP32或ESP8266:配置
Ebyte Lora E22 Arduino,ESP32或ESP8266:固定傳輸和RSSI
EBYTE LORA E22 ARDUINO,ESP32或ESP8266的設備:節省和發送結構化數據
Ebyte Lora E22 Arduino,ESP32或ESP8266:中繼器模式和遠程設置
Ebyte Lora E22 Arduino,ESP32或ESP8266:Wor Microcontroller和Arduino Shield的設備
Ebyte Lora E22 Arduino,ESP32或ESP8266:Wor Microcontroller和Wemos D1 Shield的設備
Ebyte Lora E22 Arduino,ESP32或ESP8266:Wor Microcontroller和ESP32 DEV V1 Shield的設備