

Здесь пример конструктора, вы должны передать интерфейс UART и (если хотите, но он отрекается) The 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, ResmingPower, ForwardErrorCorrectionSwitch, WirelessWakeuptime, iodriVemode, FixedTransmission
Здесь пример отправки данных, вы можете передать строку
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 в методе CETER_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 в методе CETED_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/
Вы можете заказать печатную плату здесь
Инженерное видео и сборка на 6 части руководства
Вы можете заказать печатную плату здесь
Инженерное видео и сборка на 6 части руководства
Я создаю библиотеку для управления серией устройства LORA Ebyte E22, очень мощным, простым и дешевым устройством.
Телеметрия беспроводной передачи LORA или длительного диапазона - это технология, впервые с помощью SEMTECH, которая работает на более низкой частоте, чем NRF24L01 (433 МГц, 868 МГц или 916 МГц снова 2,4 ГГц для NRF24L01), но на расстоянии (от 4000 м до 10000 м).
Лора E22
Вы можете найти здесь Aliexpress (433mhz 4 км) - Aliexpress (433 МГц 10 км)
Пожалуйста, обратитесь к моей статье, чтобы получить обновленную схему
Вы можете найти мою библиотеку здесь.
Для скачивания.
Нажмите кнопку Загрузки в правом верхнем углу, переименована в несущественную папку LORA_E22.
Убедитесь, что папка LORA_E22 содержит LORA_E22.CPP и LORA_E22.H.
Поместите папку библиотеки LORA_E22, папку / библиотеки / библиотеки.
Возможно, вам понадобится создать подпапку библиотек, если это ваша первая библиотека.
Перезагрузите IDE.
E22
| Штифт № | ПИН -элемент | Направление для штифта | Применение |
|---|---|---|---|
| 1 | M0 | Вход (слабый подтягивание) | Работать с M1 и определить четыре режима эксплуатации. Площение не допускается, может быть основано. |
| 2 | М1 | Вход (слабый подтягивание) | Работа с M0 и определить четыре режима работы. Площение не разрешено, может быть основано. |
| 3 | Rxd | Вход | TTL UART входы, подключается к внешнему (MCU, ПК) TXD OutputPin. Можно настроить как вход с открытым дризоном или подтягиванием. |
| 4 | Txd | Выход | TTL UART выходы, подключается к внешнему RXD (MCU, ПК) InputPin. Можно настроить в виде выхода открытого дрэна или вывода |
5 | Аукс | Выход | Per indicare lo stato di funzionamento del modulo e riattivare l'ccu Esterno. Durante la Procecuura di inizializzazione di AutoControllo, IL PIN Emette Una Bassa Tensione. Può Essere Configurato приходите USCITA Open-Drain O PULP-PULL (è NONERTITO НЕ МЕТТЕРЛО A TERRA, MA SE HAI Проблема, ad esempio ti si freeze il ilsitivo è pretibile mettere una restistenza di-up da 4.7ko meglio collegarlo al dispositivo). |
| 6 | Венчурной | Питания 2,3 В ~ 5,5 В. | |
| 7 | Гнездо | Земля |
Как видите, вы можете установить различные режимы с помощью контактов M0 и M1.
| Режим | М1 | M0 | Объяснение |
|---|---|---|---|
| Нормальный | 0 | 0 | UART и беспроводной канал открыты, прозрачная передача (поддерживает конфигурацию по воздуху через специальную команду) |
| WOR Режим | 0 | 1 | Можно определить как передатчик и приемник WOR |
| Режим конфигурации | 1 | 0 | Пользователи могут получить доступ к регистрации через последовательный порт для управления рабочим состоянием модуля |
| Глубокий спящий режим | 1 | 1 | Спящий режим |
Как видите, есть некоторые булавки, которые можно использовать статичным образом, но если вы подключите их к библиотеке, которую вы получаете в производительности, и вы можете управлять всем режимом через программное обеспечение, но мы собираемся лучше объяснить.
Как я уже говорю, не важно подключить весь PIN -код к выходу микроконтроллера, вы можете поместить контакты M0 и M1 к высоким или низким, чтобы получить желательную конфигурацию, и если вы не подключаете Aux, библиотека установит разумную задержку, чтобы убедиться, что операция завершена .
При передаче данных можно использовать для разбуждения внешнего MCU и вернуть высокую отделку передачи данных.
Lora E22 Aux Pin на передаче
При получении AUX поступает низко и возвращайте высокий уровень, когда буфер пуст.
LORA E22 AUX PIN
Он также используется для самостоятельной проверки для восстановления нормальной работы (в режиме питания и сна/программы).
Lora E22 Aux Pin
Схема соединения ESP8266 более проста, потому что она работает при одинаковом напряжении логической связи (3,3 В).
Lora E22 TTL 100 Wemos D1 Полностью подключен
Важно добавить резистор подтягивания (4,7kOM), чтобы получить хорошую стабильность.
| E22 | ESP8266 |
|---|---|
| M0 | D7 |
| М1 | D6 |
| Техас | Петуст D2 (подтягивание 4,7 кОм) |
| Rx | Пыли D3 (подтягивание 4,7 кОм) |
| Аукс | Пыли D5 (подтягивание 4,7 кОм) |
| Венчурной | 5 В (но работайте с меньшей мощностью в 3,3 В) |
| Гнездо | Гнездо |
Аналогичная схема соединения для ESP32, но для RX и TX мы используем RX2 и TX2, потому что по умолчанию ESP32 не имеет мягкого, но имеет 3 последовательных.
Ebyte Lora E22 Устройство ESP32 Dev Kit v1 k1
| E22 | ESP32 |
|---|---|
| M0 | D21 |
| М1 | D19 |
| Техас | PIN RX2 (подтягивание 4,7 кОм) |
| Rx | PIN TX3 (подтягивание 4,7 кОм) |
| Аукс | PIN D18 (подтягивание 4,7 кОм) |
| Венчурной | 5 В (но работайте с меньшей мощностью в 3,3 В) |
| Гнездо | Гнездо |
| Адд | Байт с высоким адресом модуля (по умолчанию 00H) | 00h-ffh |
| Addl | Байт с низким адресом модуля (по умолчанию 00H) | 00h-ffh |
| Ускорительный | Информация о бите паритета передачи данных и скорости передачи данных воздуха | |
| Чан | Канал связи (410M + Chan*1M), по умолчанию 17H (433 МГц), действительный только для устройства 433 МГц ниже, чтобы проверить правильную частоту вашего устройства | 00H-1FH |
| ВАРИАНТ | Тип передачи, размер пакета, разрешайте специальное сообщение | |
| Передача_моде | Много параметров, которые указывают модальность передачи |
ВАРИАНТ
Тип трансмиссии, настройки подтягивания, время пробуждения, FEC, мощность передачи
UART Parity Bit: режим UART может отличаться между сторонами связи
| 4 | 3 | Uart Parity Bit | Постоянное значение |
| 0 | 0 | 8n1 (по умолчанию) | Mode_00_8n1 |
| 0 | 1 | 8o1 | MODE_01_8O1 |
| 1 | 0 | 8 E1 | Mode_10_8e1 |
| 1 | 1 | 8n1 (равна 00) | Mode_11_8n1 |
Скорость бода UART: Скорость передачи бодов UART может отличаться между сторонами связи, скорость бода UART не имеет ничего общего с параметрами беспроводной передачи и не повлияет на функции беспроводной передачи / приема.
| 7 | 6 | 5 | TTL UART -Скорость передачи (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,3к | 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 |
#### Настройка подпакета
Это максимальный лист пакета.
Когда данные меньше длины подпакета, серийный выходной выход является непрерывным непрерывным выходом. Когда данные больше длины подпакета, последовательный порт приема выводит подпакет.
| 7 | 6 | Размер пакета | Постоянное значение |
| 0 | 0 | 240bytes (по умолчанию) | SPS_240_00 |
| 0 | 1 | 128bytes | SPS_128_01 |
| 1 | 0 | 64bytes | SPS_064_10 |
| 1 | 1 | 32bytes | SPS_032_11 |
#### RSSI Ambient Shoot включает
Эта команда может включить/отключить тип управления RSSI, важно управлять удаленной конфигурацией, обращение внимание не является параметром RSSI в сообщении.
При включении команда C0 C1 C2 C3 может быть отправлена в режиме передачи или в режиме передачи WOR для чтения регистра. Регистр 0x00: текущий RSSI RSSI Регистр окружающего шума 0x01: RSSI, когда данные были получены в прошлый раз.
| 5 | RSSI окружающий шум | Постоянное значение |
| 0 | Давать возможность | Rssi_ambient_noise_enabled |
| 1 | Отключить (по умолчанию) | Rssi_ambient_noise_disabled |
#### включить RSSI
При включении модуль получает беспроводные данные и будет следовать за байтом прочности RSSI после выхода через последовательный порт TXD
#### Тип передачи
Режим передачи: в режиме фиксированной передачи первые три байта рамы данных каждого пользователя могут использоваться в качестве высокого/низкого адреса и канала. Модуль меняет свой адрес и канал при передаче. И это вернется к исходной настройке после завершения процесса.
#### Включить функцию повторителя
#### Мониторинг данных перед передачей
При включении беспроводные данные будут контролироваться до их передачи, что может в определенной степени избежать помех, но может вызвать задержку данных.
#### wor
Передатчик WOR: включаются функции, получающие и передачу модуля, а при передаче данных добавляется код пробуждения. Прием включен.
Приемник WO: модуль не может передавать данные и работает в режиме мониторинга WOR. Период мониторинга заключается в следующем (цикл WOR), который может сэкономить много энергии.
#### wor цикл
Если WOR передается: после того, как приемник WOR получит беспроводные данные и выведет их через последовательный порт, он будет ждать 1000 мс, прежде чем снова въехать в WOR. Пользователи могут ввести данные последовательного порта и вернуть их через беспроводную связь в течение этого периода. Каждый серийный байт будет обновлен на 1000 мс. Пользователи должны передавать первый байт в течение 1000 мс.
Сначала мы должны представить простой, но полезный метод, чтобы проверить, есть ли что -то в приемном буфере
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 и Arduino Shield
Ebyte Lora E22 Устройство для Arduino, ESP32 или ESP8266: микроконтроллер WOR и Wemos D1 Shield
Ebyte Lora E22 Устройство для Arduino, ESP32 или ESP8266: микроконтроллер WOR и ESP32 Dev v1 Shield