1 个不稳定版本
0.4.0 | 2021年1月14日 |
---|---|
0.3.2 |
|
0.1.0 |
|
#1353 in 嵌入式开发
35KB
964 行
Drogue IoT RAK811
通过UART连接的RAK811的网络驱动程序。
目前需要将RAK811刷写为2.x版本的AT固件。
最初,必须配置UART并将其传递给驱动程序。uart必须实现embedded_hal::serial
traits。
使用方法
let (uarte_tx, uarte_rx) = uarte
.split(ctx.resources.tx_buf, ctx.resources.rx_buf)
.unwrap();
let driver = rak811::Rak811Driver::new(
uarte_tx,
uarte_rx,
port1.p1_02.into_push_pull_output(Level::High).degrade(),
)
.unwrap();
为了连接到网关,LoRa节点需要配置以下内容
- 频段 - 这取决于您所在的位置。
- 操作模式 - 这可以是LoRa P2P,允许节点直接从另一个LoRa节点发送和接收数据,或者LoRaWAN,将节点连接到网关。
驱动程序可以用于以这种方式配置属性
driver.set_band(rak811::LoraRegion::EU868).unwrap();
driver.set_mode(rak811::LoraMode::WAN).unwrap();
此外,还必须设置TTN控制台中以下设置
- 设备EUI
- 应用EUI
- 应用密钥
driver.set_device_eui(&[0x00, 0xBB, 0x7C, 0x95, 0xAD, 0xB5, 0x30, 0xB9]).unwrap();
driver.set_app_eui(&[0x70, 0xB3, 0xD5, 0x7E, 0xD0, 0x03, 0xB1, 0x84])
// Secret generated by network provider
driver .set_app_key(&[0x00]).unwrap();
加入网络并发送数据包
driver.join(rak811::ConnectMode::OTAA).unwrap();
// Port number can be between 1 and 255
driver.send(rak811::QoS::Confirmed, 1, b"hello!").unwrap();
依赖关系
~2MB
~35K SLoC