Arduino-LoRaWAN 项目教程
1. 项目的目录结构及介绍
arduino-lorawan/
├── examples/
│ ├── MCCI_LoRaWAN_LMIC_library_examples/
│ ├── MCCI_LoRaWAN_LMIC_library_test/
│ └── MCCI_LoRaWAN_LMIC_library_tutorials/
├── src/
│ ├── lmic/
│ ├── hal/
│ ├── crypto/
│ └── config/
├── library.properties
├── LICENSE
└── README.md
- examples/: 包含项目的示例代码,分为示例、测试和教程三个子目录。
- src/: 项目的核心源代码,包括 LMIC 库、硬件抽象层、加密模块和配置文件。
- library.properties: 项目的元数据文件,包含库的名称、版本、作者等信息。
- LICENSE: 项目的开源许可证文件。
- README.md: 项目的介绍文档,包含项目的概述、安装说明和使用指南。
2. 项目的启动文件介绍
项目的启动文件通常位于 examples/
目录下,例如 examples/MCCI_LoRaWAN_LMIC_library_examples/ttn-otaa-feather-us915/ttn-otaa-feather-us915.ino
。这个文件是一个 Arduino 的 .ino
文件,包含了项目的初始化代码和主循环。
#include <lmic.h>
#include <hal/hal.h>
#include <SPI.h>
// 初始化 LoRaWAN 配置
void os_getArtEui (u1_t* buf) { }
void os_getDevEui (u1_t* buf) { }
void os_getDevKey (u1_t* buf) { }
// 主循环
void loop() {
os_runloop_once();
}
// 初始化函数
void setup() {
// 初始化硬件
// 配置 LoRaWAN
}
setup()
: 初始化硬件和 LoRaWAN 配置。loop()
: 主循环,调用os_runloop_once()
来处理 LoRaWAN 事件。
3. 项目的配置文件介绍
项目的配置文件通常位于 src/config/
目录下,例如 src/config/lmic_project_config.h
。这个文件包含了项目的全局配置选项。
#ifndef _lmic_project_config_h_
#define _lmic_project_config_h_
// 定义硬件平台
#define CFG_eu868 1
// 定义调试级别
#define LMIC_DEBUG_LEVEL 1
// 其他配置选项
#define DISABLE_PING
#define DISABLE_BEACONS
#endif // _lmic_project_config_h_
CFG_eu868
: 定义硬件平台,例如eu868
表示欧洲 868MHz 频段。LMIC_DEBUG_LEVEL
: 定义调试级别,1
表示启用调试信息。DISABLE_PING
和DISABLE_BEACONS
: 禁用某些功能,例如 Ping 和 Beacons。
通过这些配置文件,用户可以根据自己的需求调整项目的功能和性能。