

要安裝庫執行以下命令:
pip install ebyte-lora-e220在這裡,構造函數的示例,您必須傳遞UART接口,並且(如果需要,但已提及)Aux PIN,M0和M1。
from lora_e220 import LoRaE220
from machine import UART
uart2 = UART ( 2 )
lora = LoRaE220 ( '400T22D' , uart2 , aux_pin = 15 , m0_pin = 21 , m1_pin = 19 ) 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 )結果
----------------------------------------
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)
----------------------------------------
您只能設置當之無愧的參數,另一個將設置為默認值。
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 )我為每個參數創建一個常數類,此處列表: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
Lora Smart Home(LLCC68)是中型室內室內和室內室內無線應用程序的Sub-GHzLora®RF收發器。 SPI接口。銷與銷釘與SX1262兼容。 SX1261,SX1262,SX1268和LLCC68的設計用於長時間的電池壽命,僅4.2 mA Active接收電流。 SX1261可以傳輸到+15 dBM,而SX1262,SX1268和LLCC68可以使用高效的集成功率放大器傳輸到+22 dbm。
這些設備支持LPWAN用例的LORA調製,以及(G)FSK調製遺留用例。這些設備可高度配置,以滿足消費者使用的不同應用要求。該設備提供了與LoraAlliance®發布的Lorawan®規範使用的Semtech收發器兼容的LORA調製。該無線電適合針對符合無線電法規的系統,包括但不限於ETSI EN 300 220,FCC CFR 47第15部分,中國監管要求和日本ARIB T-108。從150MHz到960MHz的連續頻率覆蓋範圍可以支持世界各地所有主要的Sub-GHz ISM頻段。
| LLCC68 | SX1278-SX1276 | |
|---|---|---|
| 距離 | > 11公里 | 8公里 |
| 費率(洛拉) | 1.76kbps - 62.5kbps | 0.3kbps - 19.2kbps |
| 睡眠動力消耗 | 2µA | 5µA |
EBYTE LORA E220 LLCC68 ARDUINO,ESP32或ESP8266的庫。
| 銷號 | 引腳項目 | 引腳方向 | 引腳應用 |
|---|---|---|---|
| 1 | M0 | 輸入(弱上拉) | 與M1一起工作並確定四種操作模式。不允許漂浮;它可以是地面的。 |
| 2 | M1 | 輸入(弱上拉) | 使用M0並決定四種操作模式。不允許漂浮;它可以是地面的。 |
| 3 | rxd | 輸入 | TTL UART輸入連接到外部(MCU,PC)TXD輸出引腳。它可以配置為開放式或上拉輸入。 |
| 4 | TXD | 輸出 | TTL UART輸出連接到外部RXD(MCU,PC)輸入引腳。可以將其配置為開放式或推力輸出 |
5 | 輔助 | 輸出 | 指示模塊的工作狀態並喚醒外部MCU。在自我檢查初始化過程中,銷釘輸出低水平。可以將其配置為開放式或推扣輸出(允許浮動)。 |
| 6 | VCC | 電源3V〜5.5V DC | |
| 7 | gnd | 地面 |
如您所見,您可以通過M0和M1引腳設置各種模式。
| 模式 | M1 | M0 | 解釋 |
|---|---|---|---|
| 普通的 | 0 | 0 | UART和無線通道是開放的,並且透明傳輸正在打開 |
| 最差的發射器 | 0 | 1 | 最差的發射器 |
| 最差的接收器 | 1 | 0 | 較差的接收器(支撐在空中醒來) |
| 深度睡眠模式 | 1 | 1 | 該模塊進入睡眠狀態(配置參數時會自動醒來) |
有些引腳可以在靜態上使用,但是如果將它們連接到微控制器並將其配置在庫中,則可以在性能中獲得併可以通過軟件控制所有模式。儘管如此,接下來我們將更好地解釋。
正如我已經說過的,將所有引腳連接到微控制器的輸出並不是必不可少的。您可以將M0和M1引腳置於高或低點以獲得所需的配置。如果您不連接AUX,則庫設置合理的延遲以確保操作完成(如果您在設備凍結方面遇到麻煩,則必須將上拉4.7K電阻器或更好地連接到設備。 )。
當傳輸時,數據可用於喚醒外部MCU並返回數據傳輸飾面。
接收時,輔助速度低並在緩衝區為空時返回高。
它也用於自我檢查以恢復常規操作(在電動和睡眠/程序模式下)。
ESP8266連接模式更為簡單,因為它在邏輯通信的相同電壓(3.3V)的相同電壓下工作。
至關重要的是要添加下拉電阻器(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個序列。
| E22 | ESP32 |
|---|---|
| M0 | D21 |
| M1 | D19 |
| TX | 引腳RX2(上拉4,7kΩ) |
| Rx | 引腳TX3(上拉4,7kΩ) |
| 輔助 | 引腳D18(上拉4,7kΩ)(D15醒來) |
| VCC | 5V(但在3.3V中使用較少的功率) |
| gnd | gnd |
| M0 | 2(電壓分隔器) |
| M1 | 3(電壓分隔器) |
| TX | 引腳14 TX(上拉4,7kΩ) |
| Rx | 引腳13 RX(上拉4,7kΩ) |
| 輔助 | 引腳1(上拉4,7kΩ) |
| VCC | 5V |
| gnd | gnd |
您可以在此處訂購PCB
指南的6部分中的指導和集會視頻
您可以在此處訂購PCB
指南的6部分中的指導和集會視頻
LORA或遠程無線數據遙測是一項由Semtech開創的技術,其頻率低於NRF24L01(433 MHz,868 MHz,或916 MHz,或916 MHz,而NRF24L01的2.4 GHz),但距離為5000m至11000m。
| 姓名 | 描述 | 地址 |
|---|---|---|
| addh | 模塊的高地址字節(默認00H) | 00h |
| addl | 模塊的低地址字節(默認00H) | 01H |
| 加油 | 有關數據速率平價位和空氣數據速率的信息 | 02H |
| 選項 | 傳輸類型,數據包大小,允許特殊消息 | 03H |
| 陳 | 通信通道(410m + Chan(1M),默認為17H(433MHz),僅適用於433MHz設備,請檢查下面的設備,以檢查設備的正確頻率 | 04H |
| 選項 | 傳輸類型,數據包大小,允許特殊消息 | 05H |
| 傳輸_mode | 許多指定傳輸方式的參數 | 06H |
| 地下室 | 加密以避免攔截 | 07H |
UART Parity位: UART模式在交流方之間可能有所不同
| UART均等位 | 恆定值 |
|---|---|
| 8N1(默認) | MODE_00_8N1 |
| 8o1 | 模式_01_8O1 |
| 8e1 | MODE_10_8E1 |
| 8N1(等於00) | 模式_11_8N1 |
UART BAUD率:溝通各方之間的UART波特率可能有所不同(但不建議)。 UART BAUD率與無線傳輸參數無關,並且不會影響無線傳輸/接收功能。
| TTL UART BAUD率(BPS) | 恆定值 |
|---|---|
| 1200 | UART_BPS_1200 |
| 2400 | UART_BPS_2400 |
| 4800 | UART_BPS_4800 |
| 9600(默認) | UART_BPS_9600 |
| 19200年 | UART_BPS_19200 |
| 38400 | UART_BPS_38400 |
| 57600 | UART_BPS_57600 |
| 115200 | UART_BPS_115200 |
空氣數據速率:空氣數據速率越低,傳輸距離的時間越長,反干擾性能越長,並且傳輸時間越長;兩個通信方必須恆定的空氣數據速率。
| 空氣數據率(bps) | 恆定值 |
|---|---|
| 2.4k | air_data_rate_000_24 |
| 2.4k | air_data_rate_001_24 |
| 2.4k(默認) | 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 |
這是數據包的最大長度。
當數據小於子包裝長度時,接收端的串行輸出是不間斷的連續輸出。當數據大於子包長度時,接收端串行端口將輸出子包。
| 數據包大小 | 恆定值 |
|---|---|
| 200 bytes(默認) | SPS_200_00 |
| 128比特 | SPS_128_01 |
| 64比特 | SPS_064_10 |
| 32比特 | SPS_032_11 |
此命令可以啟用/禁用RSSI的管理類型,並且必須管理遠程配置。請注意消息中的RSSI參數。
啟用時,可以以發送模式或WOR Transmitting模式發送C0,C1,C2,C2,C3命令以讀取寄存器。寄存器0x00:當前環境噪聲RSSI寄存器0x01:上次收到數據時。
| RSSI環境噪聲啟用 | 恆定值 |
|---|---|
| 使能夠 | rssi_ambient_noise_enabled |
| 禁用(默認) | rssi_ambient_noise_disabled |
您可以通過應用這樣的定義來更改這組常數:
#define E220_22 //默認值未設置
適用於E220,具有22DBM作為最大功率。
由於其低電源效率,不建議使用低電源。
| 傳輸功率(近似) | 恆定值 |
|---|---|
| 22DBM(默認) | Power_22 |
| 17dBm | Power_17 |
| 13DBM | Power_13 |
| 10dBm | Power_10 |
適用於E220,具有30dBm作為最大功率。
由於其低電源效率,不建議使用低電源。
#Define E220_30
| 傳輸功率(近似) | 恆定值 |
|---|---|
| 30DBM(默認) | Power_30 |
| 27dBm | Power_27 |
| 24dBm | Power_24 |
| 21dBm | Power_21 |
您也可以使用此定義配置通道頻率:
//之一 #Define頻率_433 #Define頻率_170 #Define頻率_470 #Define頻率_868 #Define頻率_915
啟用後,該模塊會接收無線數據,並且它將遵循通過串行端口TXD輸出後的RSSI強度字節
| 啟用RSSI | 恆定值 |
|---|---|
| 使能夠 | rssi_enabled |
| 禁用(默認) | rssi_disabled |
傳輸模式:每個用戶數據框的前三個字節可以用作固定傳輸模式下的高/低地址和通道。傳輸時該模塊更改其地址和通道。完成過程後,它將恢復為原始設置。
| 固定傳輸啟用位 | 恆定值 |
|---|---|
| 固定傳輸模式 | ft_fixed_transmission |
| 透明傳輸模式(默認) | ft_transparent_transmission |
啟用後,將在傳輸之前監視無線數據,以避免在一定程度上進行干擾,但可能會導致數據延遲。
| LBT啟用字節 | 恆定值 |
|---|---|
| 使能夠 | lbt_enabled |
| 禁用(默認) | lbt_disabled |
如果WOR正在傳輸:在WOR接收器接收到無線數據並通過串行端口輸出後,它將等待1000ms,然後再進入WOR。用戶可以輸入串行端口數據並在此期間通過無線返回。每個串行字節將刷新1000ms。用戶必須在1000ms內傳輸第一個字節。
| 無線喚醒時間 | 恆定值 |
|---|---|
| 500ms | wake_up_500 |
| 1000ms | wake_up_1000 |
| 1500ms | wake_up_1500 |
| 2000毫秒(默認) | wake_up_2000 |
| 2500ms | wake_up_2500 |
| 3000ms | wake_up_3000 |
| 3500ms | wake_up_3500 |
| 4000ms | wake_up_4000 |
首先,我們必須引入一種簡單但實用的方法來檢查接收緩衝區中是否有東西。
int可用();
返回當前流中有多少個字節很容易。
普通/透明傳輸模式將消息發送到具有相同地址和頻道的所有設備。
固定傳輸有更多方案
現在,您可以完成所有信息,但是我認為重要的是要顯示一些真實的例子以更好地了解所有可能性。
Github庫