ESP32+SX1262节点基于RadioLib(IN865)OTAA入网失败求助
LoRaWAN 1.1 OTAA入网失败(错误-1116)解决方案
针对你用RadioLib 7.2.1 + ESP32+SX1262接入IN865频段ChirpStack 1.1时出现的RADIOLIB_ERR_NO_JOIN_ACCEPT错误,结合你提到的JoinEUI设为0的场景,从ChirpStack配置和RadioLib代码两方面修正:
一、ChirpStack配置修正
- JoinEUI(原AppEUI)匹配设置
LoRaWAN 1.1的OTAA流程必须验证JoinEUI,即使你不想用自定义值,也需要保证节点侧和ChirpStack侧的JoinEUI完全一致:- 在ChirpStack的设备详情页,将JoinEUI设置为
0000000000000000(和你节点侧的全0配置对应)。 - 进入设备所属的**应用(Application)**设置,在
JoinEUI列表中添加0000000000000000,否则ChirpStack会直接拒绝该JoinEUI的入网请求。
- 在ChirpStack的设备详情页,将JoinEUI设置为
- 密钥配置校验
确认ChirpStack中设备的NwkKey和AppKey与你提供的完全一致,注意字节顺序:直接按给定的十六进制值填入(比如28 EC CB 64 AB D0 4D 80 7F 21 86 F9 3B FF B7 B7无需反转)。
二、RadioLib代码配置修正
- 正确设置全0 JoinEUI
RadioLib的LoRaWANNode构造函数需要字节数组类型的JoinEUI参数,不能仅传入数值0,需显式定义全0数组:#include <RadioLib.h> // 硬件引脚配置(根据你的接线调整) SX1262 radio = Module(18, 26, 27, 33); // 节点参数 uint8_t devEUI[] = {0x89, 0x9F, 0x6E, 0xEE, 0x7E, 0x9D, 0x77, 0xF2}; uint8_t joinEUI[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // 全0 JoinEUI uint8_t nwkKey[] = {0x28, 0xEC, 0xCB, 0x64, 0xAB, 0xD0, 0x4D, 0x80, 0x7F, 0x21, 0x86, 0xF9, 0x3B, 0xFF, 0xB7, 0xB7}; uint8_t appKey[] = {0x3E, 0x41, 0x74, 0x2C, 0xD8, 0x65, 0x70, 0xBC, 0x65, 0x95, 0x1A, 0x80, 0x5A, 0xAB, 0x19, 0x7E}; LoRaWANNode node(&radio, joinEUI, devEUI, nwkKey, appKey); void setup() { Serial.begin(115200); delay(1000); // 初始化Radio int state = radio.begin(); if (state != RADIOLIB_ERR_NONE) { Serial.print("Radio初始化失败: "); Serial.println(state); while(true); } // 配置IN865频段 state = node.begin(LORAWAN_REGION_IN865); if (state != RADIOLIB_ERR_NONE) { Serial.print("LoRaWAN初始化失败: "); Serial.println(state); while(true); } // 设置入网重试(可选,提升成功率) node.setJoinRetries(3); node.setJoinDelay(5000); // 重试间隔5秒 // 发起OTAA入网 Serial.println("发起入网请求..."); state = node.join(); if (state == RADIOLIB_ERR_NONE) { Serial.println("入网成功!"); } else { Serial.print("入网失败,错误码: "); Serial.println(state); } } void loop() { // 后续业务逻辑 } - 频段配置确认
确保调用node.begin(LORAWAN_REGION_IN865),RadioLib 7.x版本对IN865频段的信道配置已适配ChirpStack默认设置,无需额外修改。
三、额外排查点
- 查看ChirpStack的Network Server日志,确认是否收到入网请求,以及是否因
JoinEUI未授权或密钥不匹配拒绝下发Join Accept。 - 验证网关的IN865频段信道覆盖,确保节点发送入网请求的信道(默认SF12/125kHz)在网关支持的信道列表中。
- 检查ESP32与SX1262的接线(尤其是DIO1、NSS、RESET引脚),避免硬件通信异常导致入网请求发送不完整。
内容的提问来源于stack exchange,提问作者Harshit Kumar Shakya
相关产品推荐
相关产品推荐

