

Чтобы установить библиотеку выполнить следующую команду:
pip install ebyte-lora-e220-circuitpythonЗдесь пример конструктора, вы должны передать интерфейс UART и (если хотите, но он отрекается) The Aux Pin, M0 и 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 )Результат
----------------------------------------
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, 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 )
time . sleep ( 2 )Если вы хотите получить 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' ])
time . sleep ( 2 )Если вы хотите получить 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
Lora Smart Home (LLCC68)-это приемопередатчик Sub-GHZ Lora® для среднего класса для внутренних и внутренних и наружных беспроводных приложений. Интерфейс SPI. PIN-PIN совместим с SX1262. SX1261, SX1262, SX1268 и LLCC68 предназначены для длительного срока службы батареи всего 4,2 мА активного потребления тока приема. SX1261 может передавать до +15 дБм, а SX1262, SX1268 и LLCC68 могут передавать до +22 дБм с высокоэффективными интегрированными усилителями мощности.
Эти устройства поддерживают модуляцию LORA для вариантов использования LPWAN и (g) FSK -модуляции для устаревших вариантов использования. Устройства очень настраиваются для удовлетворения различных требований применения для использования потребителями. Устройство обеспечивает модуляцию LORA, совместимые с Semtech Proccoivers, используемыми спецификацией Lorawan®, выпущенной Lora Alliance®. Радио подходит для систем, нацеленных на соответствие радиоуправлениям, включая, помимо прочего, Etsi EN 300 220, FCC CFR 47 Часть 15, требования к нормативным требованиям Китая и японский ARIB T-108. Непрерывное частотное покрытие от 150 МГц до 960 МГц позволяет поддерживать все основные группы Sub-GHZ ISM по всему миру.
| LLCC68 | SX1278-SX1276 | |
|---|---|---|
| Расстояние | > 11 км | 8 км |
| Скорость (Lora) | 1,76 кбит / с - 62,5 Кбит / с | 0,3 кбит / с - 19,2 кбит / с |
| Потребление мощности сна | 2 мкА | 5 мкА |
Библиотека для Ebyte Lora E220 LLCC68 для Arduino, ESP32 или ESP8266.
| Штифт № | ПИН -элемент | Направление для штифта | Применение |
|---|---|---|---|
| 1 | M0 | Вход (слабый подтягивание) | Работайте с M1 и определите четыре режима эксплуатации. Плавание не допускается; Это может быть земле. |
| 2 | М1 | Вход (слабый подтягивание) | Работайте с M0 и определите четыре режима эксплуатации. Плавание не допускается; Это может быть земле. |
| 3 | Rxd | Вход | Входы TTL UART подключаются к внешнему (MCU, ПК) выходному выводу TXD. Он может быть настроен как вход с открытым дрэном или подтягиванием. |
| 4 | Txd | Выход | Выходы TTL UART Подключаются к внешнему входному выводу RXD (MCU, ПК). Можно настроить в виде выхода открытого дрэна или вывода |
5 | Аукс | Выход | Чтобы указать рабочее состояние модуля и разбудить внешний MCU. Во время процедуры инициализации самообследования штифт выводит низкий уровень. Его можно настроить в виде выхода с открытым дрэном или выводом (плавание разрешено). |
| 6 | Венчурной | Питание 3 В ~ 5,5 В. | |
| 7 | Гнездо | Земля |
Как видите, вы можете установить различные режимы с помощью контактов M0 и M1.
| Режим | М1 | M0 | Объяснение |
|---|---|---|---|
| Нормальный | 0 | 0 | UART и беспроводные каналы открыты, а прозрачная передача включена |
| Wor передатчик | 0 | 1 | Wor передатчик |
| Носит приемник | 1 | 0 | Wor -приемник (поддерживает пробуждение над воздухом) |
| Глубокий спящий режим | 1 | 1 | Модуль ложится спать (автоматически просыпается при настройке параметров) |
Некоторые контакты могут использоваться статически, но если вы подключите их к микроконтроллеру и настраиваете их в библиотеке, вы получаете производительность и сможете управлять всеми режимами через программное обеспечение. Тем не менее, мы собираемся объяснить лучше дальше.
Как я уже сказал, не обязательно подключить все булавки к выходу микроконтроллера; Вы можете поместить контакты M0 и M1 в высокие или низкие, чтобы получить желаемую конфигурацию. Если вы не подключаете Aux, библиотека установила разумную задержку, чтобы убедиться, что операция будет завершена ( если у вас проблемы с замораживанием устройства, вы должны поместить резистор 4.7K на подтягивание или лучше подключиться к устройству. ).
При передаче данных можно использовать для разбуждения внешнего MCU и вернуть высокую отделку передачи данных.
При получении AUX снижается и возвращается высоко, когда буфер пуст.
Он также используется для самостоятельной проверки для восстановления регулярной работы (в режиме питания и программы).
Схема соединения ESP8266 более простая, потому что она работает при том же напряжении логической связи (3.3 В).
Очень важно добавить резистор подтягивания (4,7 км), чтобы получить хорошую стабильность.
| 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 серийных.
| E22 | ESP32 |
|---|---|
| M0 | D21 |
| М1 | D19 |
| Техас | PIN RX2 (подтягивание 4,7 кОм) |
| Rx | PIN TX3 (подтягивание 4,7 кОм) |
| Аукс | PIN D18 (подтягивание 4,7 кОм) (D15, чтобы проснуться) |
| Венчурной | 5 В (но работайте с меньшей мощностью в 3,3 В) |
| Гнездо | Гнездо |
| M0 | 2 (разделитель напряжения) |
| М1 | 3 (разделитель напряжения) |
| Техас | PIN 14 TX (подтягивание 4,7 кОм) |
| Rx | PIN 13 RX (подтягивание 4,7 кОм) |
| Аукс | Петуст 1 (подтягивание 4,7 кОм) |
| Венчурной | 5 В |
| Гнездо | Гнездо |
Вы можете заказать печатную плату здесь
Инженерное видео и сборка на 6 части руководства
Вы можете заказать печатную плату здесь
Инженерное видео и сборка на 6 части руководства
Телеметрия беспроводных данных LORA или длительного диапазона - это технология, которая пионера SEMTECH работает на более низкой частоте, чем NRF24L01 (433 МГц, 868 МГц, или 916 МГц против 2,4 ГГц для NRF24L01), но на расстоянии (от 5000 м до 11000 м).
| Имя | Описание | Адрес |
|---|---|---|
| Адд | Байт высокого адреса модуля (по умолчанию 00H) | 00h |
| Addl | Байт с низким адресом модуля (по умолчанию 00H) | 01H |
| Ускорительный | Информация о бите паритета передачи данных и скорости передачи данных воздуха | 02H |
| ВАРИАНТ | Тип передачи, размер пакета, разрешайте специальное сообщение | 03H |
| Чан | Канал связи (410M + Chan*1M), по умолчанию 17H (433 МГц), действительный только для проверки устройства 433 МГц , чтобы проверить правильную частоту вашего устройства | 04H |
| ВАРИАНТ | Тип передачи, размер пакета, разрешайте специальное сообщение | 05H |
| Передача_моде | Много параметров, которые указывают модальность передачи | 06H |
| Крипта | Шифрование, чтобы избежать перехвата | 07H |
UART Parity Bit: режим UART может отличаться между сторонами связи
| Uart Parity Bit | Постоянное значение |
|---|---|
| 8n1 (по умолчанию) | Mode_00_8n1 |
| 8o1 | MODE_01_8O1 |
| 8e1 | Mode_10_8e1 |
| 8n1 (равна 00) | Mode_11_8n1 |
Скорость бода UART: Скорость передачи бодов UART может отличаться между коммуникационными сторонами (но не отрекомендовано). Скорость бода UART не имеет ничего общего с параметрами беспроводной передачи и не повлияет на функции беспроводной передачи/приема.
| TTL UART -Скорость передачи (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 |
Это максимальная длина пакета.
Когда данные меньше длины подпакета, серийный выходной выход является непрерывным непрерывным выходом. Последовательный порт приема выводит подпакет, когда данные больше длины подпакета.
| Размер пакета | Постоянное значение |
|---|---|
| 200bytes (по умолчанию) | SPS_200_00 |
| 128bytes | SPS_128_01 |
| 64bytes | SPS_064_10 |
| 32bytes | SPS_032_11 |
Эта команда может включить/отключить тип управления RSSI, и важно управлять удаленной конфигурацией. Обратите внимание не параметр RSSI в сообщении.
При включении команды C0, C1, C2, C3 могут быть отправлены в режиме передачи или в режиме передачи WOR для чтения регистра. Регистр 0x00: текущий RSSI RSSI Регистр окружающего шума 0x01: RSSI, когда данные были получены в прошлый раз.
| RSSI окружающий шум | Постоянное значение |
|---|---|
| Давать возможность | Rssi_ambient_noise_enabled |
| Отключить (по умолчанию) | Rssi_ambient_noise_disabled |
Вы можете изменить этот набор констант, применив определение как SO:
#define e220_22 // Значение по умолчанию без установки
Применимо для E220 с 22 дБм в качестве максимальной мощности.
Низкая передача мощности не рекомендуется из -за ее низкой эффективности питания.
| Мощность передачи (приближение) | Постоянное значение |
|---|---|
| 22DBM (по умолчанию) | Power_22 |
| 17 дБм | Power_17 |
| 13 дБм | Power_13 |
| 10 дБм | Power_10 |
Применимо для E220 с 30 дБм в качестве максимальной мощности.
Низкая передача мощности не рекомендуется из -за ее низкой эффективности питания.
#define e220_30
| Мощность передачи (приближение) | Постоянное значение |
|---|---|
| 30 дБм (по умолчанию) | Power_30 |
| 27 дБМ | Power_27 |
| 24 дБМ | Power_24 |
| 21 дБМ | Power_21 |
Вы можете настроить частоту каналов также с этим определением:
// один из #define Частота_433 #define Частота_170 #define Частота_470 #define Частота_868 #define Частота_915
При включении модуль получает беспроводные данные, и он будет следовать за байтом прочности RSSI после выхода через последовательный порт TXD
| Включить RSSI | Постоянное значение |
|---|---|
| Давать возможность | Rssi_enabled |
| Отключить (по умолчанию) | Rssi_disabled |
Режим передачи: первые три байта кадры данных каждого пользователя могут использоваться в качестве высокого/низкого адреса и канала в фиксированном режиме передачи. Модуль меняет свой адрес и канал при передаче. И он вернется к исходной настройке после завершения процесса.
| Фиксированная передача, обеспечивающая бит | Постоянное значение |
|---|---|
| Фиксированный режим передачи | Ft_fixed_transmission |
| Прозрачный режим передачи (по умолчанию) | Ft_transparent_transmission |
При включении беспроводные данные будут контролироваться до их передачи, что в определенной степени избегает помех, но может вызвать задержку данных.
| LBT включает байт | Постоянное значение |
|---|---|
| Давать возможность | Lbt_enabled |
| Отключить (по умолчанию) | Lbt_disabled |
Если WOR передается: после того, как приемник WOR получит беспроводные данные и выведет их через последовательный порт, он будет ждать 1000 мс, прежде чем снова въехать в WOR. Пользователи могут ввести данные последовательного порта и вернуть их через беспроводную связь в течение этого периода. Каждый серийный байт будет обновлен на 1000 мс. Пользователи должны передавать первый байт в течение 1000 мс.
| Беспроводное время пробуждения | Постоянное значение |
|---|---|
| 500 мс | WAKE_UP_500 |
| 1000 мс | WAKE_UP_1000 |
| 1500 мс | WAKE_UP_1500 |
| 2000 мс (по умолчанию) | WAKE_UP_2000 |
| 2500 мс | WAKE_UP_2500 |
| 3000 мс | WAKE_UP_3000 |
| 3500 мс | WAKE_UP_3500 |
| 4000 мс | WAKE_UP_4000 |
Во -первых, мы должны представить простой, но практический метод, чтобы проверить, находится ли что -то в приемном буфере.
int доступен ();
Вернуть, сколько байтов у вас есть в текущем потоке.
Нормальный/прозрачный режим передачи отправляет сообщения на все устройства с одним и тем же адресом и каналом.
Фиксированная передача имеет больше сценариев
Теперь у вас есть вся информация для выполнения вашей работы, но я думаю, что важно показать некоторые реальные примеры, чтобы лучше понять все возможности.
Библиотека GitHub