English |中文
- Linux 下 LoRaWAN 应用的实现,支持 LoRaWAN1.02 协议
- 支持多个频段
- 使用 cmake 构建,可轻松添加自己的应用代码
- 支持图形化界面进行参数的配置
- 首先需要安装 make、camke、gcc。
- 下载源代码到本地。
- 进入该项目下的 build 文件夹,依次执行下面命令。
rm -rf *
cmake ..
make
- 执行完成之后,将会在 bin 文件夹里面生成可执行文件。
- 在该项目的 build 文件夹下使用如下命令进行配置。
make menuconfig
- 进入该项目的 bin 文件夹,执行启动命令。
./demo
|-- bin #可执行文件
|-- build #构建文件
|-- functional_module #功能模块
| |-- bmp180
| |-- data_conversion
| |-- fifo
| |-- hdc1080
| `-- lora
|-- hardware_driver #驱动模块
| |-- gpio
| |-- i2c
| `-- spi
|-- lib #构建过程中生成的中间库
`-- project
|-- config #配置相关文件
`-- main #主函数
- AS923 region
- AU915 region
- CN470 region
- CN779 region
- EU433 region
- EU868 region
- KR920 region
- IN865 region
- US915 region
- US915_HYBRID region
- AU915 SB2 region
- AS923 AS1 region
- AS923 AS2 region
以bmp180为例
- 在 functional_module 文件夹下添加新建文件名为 bmp180 的文件夹。
- 在 bmp180 文件夹下添加如下文件
bmp180.c
bmp180.h
CMakeLists.txt
README.md
- 编写源文件和头文件内容。
- 编写CMakeList.txt
#添加源文件
aux_source_directory(. BMP180)
#添加需要包含的头文件
include_directories(${PROJECT_SOURCE_DIR}/hardware_driver/i2c)
#添加链接库的路径
link_directories(${PROJECT_SOURCE_DIR}/lib)
#添加数学计算库
LINK_LIBRARIES(-lm)
#链接生成静态库
add_library(bmp180 ${BMP180} )
#将i2c的库链接进来
target_link_libraries(bmp180 i2c )
#设置将当前文件夹作为依赖model1库的头文件的搜索目录
target_include_directories(bmp180 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
- 编写
README.md
说明文档 。 - 在 functional_module/CMakeLists.txt 添加
#添加子目录并构建子目录
add_subdirectory(bmp180)
- 在 project/main/CMakeLists.txt 的链接库选项添加 bmp180
target_link_libraries(${PROJECT_NAME} fifo config lora hdc1080 bmp180 data_conversion)
- 在 main.c 里面面添加自己 bmp180 的头文件,即可调用 bmp180 函数了。
- 找到项目的 Kconfig 文件,在 LORAWAN_APP_DATA 菜单栏里面添加
config BMP180_DATA
bool "bmp180"
- 在 project/config/config.ini 的 LORAWAN_DATA_SELECTION 菜单栏里面添加
;BMP180_DATA=3
- 这个选项的名字和 Kconfig 里面的选项需要一致,都是 BMP180_DATA 。
- 这个选项的数值需要和 main.c 里面准备数据的选项进行配合,其数值都是等于3
typedef enum
{
fixed_data =0,
mkfifo_data,
hdc1080_data,
bmp180_data
}data_selection_num;
- 在 project/config/kconfig_lib/configini_to_kconfig.sh 的 #Configure LoRaWAN upload data selection 里面添加
elif [ $DATA_SELECTION -eq 3 ];then
echo "CONFIG_BMP180_DATA=y" >> $K_CONFIGFILE
- configini_to_kconfig.sh 会同步 C 配置文件去图形界面配置文件。
- 此次添加的 bmp180 配置选项不需要去修改 project/config/kconfig_lib/kconfig_to_configini.sh 文件,因为之前的同步选项已经匹配了 bmp180 。
- kconfig_to_configini.sh 会同步图形界面配置文件去 C 配置文件。
- 在 project/main/main.c 里面添加读取 config.ini 文件。
data_selection = iniparser_getint(ini,"LORAWAN_DATA_SELECTION:data_selection",-1);
-
使用 make menuconfig 去配置 bmp180 选项并保存,这时候在main.c里面读取出来 data_selection = 3 。
-
添加完成,可以在 man.c 里面去通过选项实现相关功能。
非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。
标准 Readme 遵循 Contributor Covenant 行为规范。
感谢以下参与项目的人:
Luckybuyu 🎨 |
Aaron.Lee 💻 |