![]() | ![]() |
|---|---|
| Это пример кода для датчика окружающей среды Wisblock (Wisblock Kit 4) с Rak1906 Sensor Environment |
Этот пример использует мой API Wisblock, который помогает создать применение низкого энергопотребления и принять нагрузку для обработки связи с плеча.
Все эти модули можно купить вместе с подходящим корпусом в виде Wisblock Kit 4
Приемопередатчик MCU и LORA входят в режим сна между циклами измерения, чтобы сохранить мощность. Я мог бы измерить ток сна 40 UA всей системы.
Все библиотеки перечислены в platformio.ini и автоматически устанавливаются при составлении проекта.
Настройки Lorawan могут быть определены тремя различными способами.
Использование инструментов Wisblock вы можете подключиться к Wisblock по BLE и настроить все параметры Lorawan, такие как
Более подробную информацию можно найти в наборе инструментов Wisblock
Устройство рекламирует только первые 30 секунд после питания, а затем снова в течение 15 секунд после пробуждения для измерений. Устройство рекламирует как RAK-ENVS-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() . Когда API Wisblock проверяет, если необходимо сохранить какие -либо изменения, измененные значения будут сохранены только на первой загрузке после прошивки приложения.
Пример:
// 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_ENV_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
- DAPI_DEBUG =0 ; 0 Disable WisBlock API 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
adafruit/Adafruit BME680 Library
beegee-tokyo/WisBlock-API
extra_scripts = pre:rename.pyПолезная нагрузка кодируется в том же формате, что и устройства Rakwireless Wisnode. Декодер полезной нагрузки для чирпстака, TTN и DataCake можно найти в rakwireless_standardized_payload github Repo.
Данные в реальном времени
