Этот проект предоставляет прошивку модема для плат микроконтроллеров с радиомодулем RF95 и последовательным интерфейсом, таким как устройство Adafruit Feather M0 Lora или модули Heltec Oled Lora 32. На различных платах на основе ESP32, дополнительные функции, такие как OLED -дисплей, GPS, BLE или поддержка WiFi могут быть включены.
Текущая конфигурация по умолчанию предназначена для устройства с 868,1 МГц. Это можно изменить в src/modem.h со следующей строкой: #define RF95_FREQ 868.1
Поддерживаются следующие доски:
Рекомендуемый способ создания и установки радиопрограммы - иметь рабочую установку платформы (http://platformio.org/) в вашей системе.
Важно отредактировать platformio.ini , чтобы добавить свою целевую платформу и настроить радиочастоты в флагах сборки!
Установите на вашем устройстве с помощью pio run -t upload -e heltec_wifi_lora_32_ble
Необязательно активировать поддержку отображения: pio run -t upload -e heltec_wifi_lora_32_display_ble
В настоящее время каждый может подключиться к сервису BLE, это все открытый текст. Одна характеристика опубликована для отправки команд, и одна из них предназначена для того, чтобы сделать вывод доступными с помощью уведомлений.
Все команды, отправленные через BLE, должны быть прекращены с помощью n . Режим работы по умолчанию - это разделение всего на 20 байтовых кусков, что - в соответствии с спецификациями BLE - является максимальным размером пакета. На iPhone 8 и 11 мы также смогли отправлять и получать гораздо большие пакеты BLE (> 100 байтов). Следовательно, можно активировать большие модные режимы BLE-Frames через AT+BFB=1 . Команда распознается даже без тяги n , а также делает n необязательным. Это особенно полезно, поскольку какое -то программное обеспечение отладки BLE, такое как LightBlue Explorer, не отправляет возврата перевозки или линейные каналы в конце операции записи.
Если один из профилей Wi -Fi установлен на совместимой MCU ESP, устройство может действовать как точка доступа. Учетные данные настроены в platformio.ini и по умолчанию устанавливаются на: WIFI_SSID="rf95modem" и WIFI_PSK="rf95modemwifi" Эта точка доступа принимает до 4 клиентов в соответствии с Espressif SDK, а по умолчанию есть IP 192.168.4.1 .
Есть два способа общения с модемом:
RF95Modem отвечает на пакеты вещания UDP на порт 1666 . Для получения вывода предоставляется простой прослушитель UDP ( extras/udp_receiver.py ). Для отправки команд в модем netcat достаточно, например, echo "at+tx=414141" | ncat -u 192.168.4.255 1666
Просто подключитесь к 192.168.4.1 на порту 1666 с использованием TCP и используйте его как последовательное соединение, например, ncat 192.168.4.1 1666 .
Поддерживается только одно соединение за раз!
Некоторые устройства, такие как TTGOS T-Beam, также включают GPS-чип. Это также может быть запрошено через прошивку модема через команду AT+GPS . Получение первоначальной блокировки для вашей позиции может занять несколько минут в зависимости от вашей атенны, позиции и чипа GPS на устройстве. Поскольку это также значительно увеличивает потребление энергии (~ 50 мА), можно временно отключить его через AT+GPS=0 .
Скорочная скорость по умолчанию установлена на 115200 ( src/main.cpp Line 17 ).
Список команд:
AT+HELP Print this usage information.
AT+TX=<hexdata> Send binary data.
AT+RX=<0|1> Turn receiving on (1) or off (2).
AT+BFB=<0|1> Turn send Big Fine BLE-Frames on (1) or off (0).
AT+GPS Print GPS information.
AT+GPS=<0|1> Turn GPS power on (1) or off (0).
AT+FREQ=<freq> Changes the frequency.
AT+INFO Output status information.
AT+MODE=<NUM> Set modem config:
0 - medium range (default)
Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on.
1 - fast+short range
Bw = 500 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on.
2 - slow+long range
Bw = 31.25 kHz, Cr = 4/8, Sf = 512chips/symbol, CRC on.
3 - slow+long range
Bw = 125 kHz, Cr = 4/8, Sf = 4096chips/symbol, CRC on.
4 - slow+long range
Bw = 125 kHz, Cr = 4/5, Sf = 2048chips/symbol, CRC on.
Чтобы получить текущую конфигурацию, которую можно использовать AT+INFO
> AT+INFO
+STATUS:
firmware: 0.7.3
features: MCU BLE WIFI GPS
modem config: 0 | medium range
max pkt size: 251
frequency: 868.10
rx listener: 1
BFB: 0
GPS: 1
rx bad: 0
rx good: 0
tx good: 0
+OK
Из этого вывода вы можете увидеть, какие функции, где они скомпилированы в прошивку и какова ее версия. Также отображаются текущая конфигурация модема и выбранная частота.
Чтобы изменить частоты на может использовать команду AT+FREQ .
> AT+FREQ=868.20
+FREQ: 868.20
Остерегайтесь: любой номер поплавки можно добавить здесь, значение напрямую передается приемопередатке Lora!
Изменение режима предварительно настроенного модема так же просто:
> AT+MODE=2
+OK
AT+TX=414141 Отправляет пакет с AAA в качестве контента. Максимальный размер пакета может варьироваться в зависимости от радиопрограммы.
AT+RX=1 активировать слушатель приема, по умолчанию включено.
Входящие данные автоматически записываются в последовательный порт: +RX 3,414141,-15,8 -кадр с «AAA», поскольку полезная нагрузка была получена с RSSI -15 и SNR 8.
Если GPS активируется ( AT+GPS=1 ), а прошивка работает на устройстве, способствующем GPS, таким как TTGO T-Beam, можно легко запросить текущее местоположение и время. Без пропитора GPS -блокировки все возвращаемые значения установлены на ноль.
> at+gps=1
+OK
> at+gps
Latitude : 0.00000
Longitude : 0.00000
Altitude : 0.00M
Satellites: 0
Time : 00:00:00
Date : 00.00.2000
Timestamp : 943920000
+OK
Есть несколько сторонних библиотек программирования, чтобы облегчить интеграцию RF95Modem.
Если вы используете этот код в академических публикациях, пожалуйста, укажите следующую статью:
@INPROCEEDINGS{baumgaertner2018monitoring,
author={L. {Baumgärtner} and A. {Penning} and P. {Lampe} and B. {Richerzhagen} and R. {Steinmetz} and B. {Freisleben}},
booktitle={2018 IEEE Global Humanitarian Technology Conference (GHTC)},
title={Environmental Monitoring Using Low-Cost Hardware and Infrastructureless Wireless Communication},
year={2018},
pages={1-8},
doi={10.1109/GHTC.2018.8601883},
month={Oct},
}