![]() | ![]() | ![]() |
|---|
Это пример кода для Wisblock Weather Kit с RAK1901, RAK1902 и RAK1903.
Этот пример использует мой Wisblock Api-V2
Все эти модули можно купить вместе с соответствующим корпусом в качестве Wisblock Kit 1
Приемопередатчик MCU и LORA входят в режим сна между циклами измерения, чтобы сохранить мощность. Я мог бы измерить ток сна 40 UA всей системы.
Все библиотеки перечислены в platformio.ini и автоматически устанавливаются при составлении проекта.
Настройки Lorawan могут быть определены тремя различными способами.
Использование инструментов Wisblock
Более подробную информацию можно найти в наборе инструментов Wisblock
Устройство рекламирует только первые 30 секунд после питания, а затем снова в течение 15 секунд после пробуждения для измерений. Устройство рекламирует как RAK-GNSS-xx , где xx-BLE MAC-адрес устройства.
Используя командный интерфейс AT, Wisblock может быть настроен над USB -портом.
Подробное руководство по командам AT находится в командировке
Вот пример для типичных команд, необходимых для подготовки устройства (примеры EUI и ключи):
// Setup AppEUI
AT+APPEUI=70b3d57ed00201e1
// Setup DevEUI
AT+DEVEUI=ac1f09fffe03efdc
// Setup AppKey
AT+APPKEY=2b84e0b09b68e5cb42176fe753dcee79
// Set automatic send interval in seconds
AT+SENDINT=60
// Set data rate
AT+DR=3
// Set LoRaWAN region (here US915)
AT+BAND=5
// Reset node to save the new parameters
ATZ
// After reboot, start join request
AT+JOIN=1,0,8,10
Формат команд AT, используемый здесь, не совместим с RAK5205/RAK7205 в командах.
void api_read_credentials(void);
void api_set_credentials(void); Если учетные данные Lorawan должны быть в твердом кодировании (например, в регионе, время отправки, ...) это можно сделать в setup_app() . Сначала сохраненные учетные данные должны быть прочитаны из Flash с api_read_credentials(); , тогда учетные данные могут быть изменены. После изменения учетных данных должно быть сохранено с помощью api_set_credentials() . По мере того, как Wisblock API проверяет, если необходимо сохранить какие -либо изменения, измененные значения будут сохранены только на первой загрузке после прошивки приложения.
Пример:
// Read credentials from Flash
api_read_credentials ();
// Make changes to the credentials
g_lorawan_settings.send_repeat_time = 240000 ; // Default is 2 minutes
g_lorawan_settings.subband_channels = 2 ; // Default is subband 1
g_lorawan_settings.app_port = 4 ; // Default is 2
g_lorawan_settings.confirmed_msg_enabled = LMH_CONFIRMED_MSG; // Default is UNCONFIRMED
g_lorawan_settings.lora_region = LORAMAC_REGION_AS923_3; // LoRa region
// Save hard coded LoRaWAN settings
api_set_credentials (); Замечание 1
Жестко закодированные учетные данные должны быть установлены в void setup_app(void) !
Замечание 2
Имейте в виду, что параметры, которые изменяются с этим методом, могут быть изменены по команде или BLE , но будут сброшены после перезагрузки !
Замечание 3
Кодирование данных основано на идентификаторах датчика Cayenne LPP. Это очень легко визуализировать данные датчика в MyDevices Cayenne.
Скомпилированные файлы расположены в папке ./Generated. Каждая успешная скомпилированная версия названа как
WisBlock_WEA_Vx.y.z_YYYYMMddhhmmss
XYZ - номер версии. Номер версии настраивается в файле ./platformio.ini.
Yyyymmddhhmmss - это временная метка компиляции.
Сгенерированный файл .zip можно также использовать для обновления устройства по BLE, используя либо инструментальный ящик для Wisblock, либо на инструментирование NRF или NRF Connect
Вывод отладки можно управлять определением в platformio.ini
LIB_DEBUG CONTROLS DENAKUG
MY_DEBUG CONTROLS DENAKUG Вывод самого приложения
CFG_DEBUG управляет выходом отладки NRF52 BSP. Рекомендуется держать это
[env:wiscore_rak4631]
platform = nordicnrf52
board = wiscore_rak4631
framework = arduino
build_flags =
; -DCFG_DEBUG=2
- DSW_VERSION_1 =1 ; major version increase on API change / not backwards compatible
- DSW_VERSION_2 =0 ; minor version increase on API change / backward compatible
- DSW_VERSION_3 =0 ; patch version increase on bugfix, no affect on API
- DLIB_DEBUG =0 ; 0 Disable LoRaWAN debug output
- DMY_DEBUG =0 ; 0 Disable application debug output
- DNO_BLE_LED =1 ; 1 Disable blue LED as BLE notificator
lib_deps =
beegee-tokyo/SX126x-Arduino
beegee-tokyo/WisBlock-API-V2
sparkfun/SparkFun SHTC3 Humidity and Temperature Sensor Library
adafruit/Adafruit LPS2X
closedcube/ClosedCube OPT3001
extra_scripts = pre:rename.py