![]() | ![]() |
|---|---|
| 这是带有RAK1906环境传感器的Wisblock环境传感器(Wisblock套件4)的示例代码 |
此示例是使用我的Wisblock API,该API有助于创建低功耗应用程序并承担负载以从肩膀上处理通信。
所有这些模块都可以与匹配的外壳一起购买,因为Wisblock套件4
MCU和LORA收发器进入测量周期之间的睡眠模式,以节省功率。我可以测量整个系统40UA的睡眠电流。
这些库都列在platformio.ini中,并在编译项目时自动安装。
可以通过三种不同的方式来定义洛万设置。
使用Wisblock工具箱,您可以通过BLE连接到Wisblock,并设置所有Lorawan参数(例如)
可以在Wisblock工具箱中找到更多详细信息
该设备仅在电源后的前30秒就通过BLE进行广告,然后在唤醒后再次进行15秒进行测量。该设备作为RAK-ENVS-xx广告,其中XX是设备的BLE MAC地址。
使用AT命令接口可以通过USB端口设置Wisblock。
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 AT命令不兼容。
void api_read_credentials(void);
void api_set_credentials(void);如果需要对Lorawan凭据进行硬编码(例如区域,发送重复时间,...)可以在setup_app()中完成。首先,必须使用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传感器ID。这使得在MyDevices Cayenne中可视化传感器数据非常容易。
编译的文件位于./generated文件夹中。每个成功的编译版本都被称为WisBlock_ENV_Vx.y.z_YYYYMMddhhmmss
XYZ是版本号。版本编号是在./platformio.ini文件中设置的。
yyyymmddhhmmss是编译的时间戳。
生成的.zip文件也可以使用Wisblock工具箱或Nordic NRF工具箱或NRF Connect通过BLE更新设备
调试输出可以通过platformio.ini中的定义来控制
lib_debug控制SX126X-Arduino Lorawan库的调试输出
my_debug控制应用程序本身的调试输出
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设备相同的格式编码。 Chirpstack,TTN和DataCake的有效负载解码器可在Rakwireless_standardized_payload github repo中找到。
实时数据
