Raspberry Pi配网失败排障
本文档用于排查在 Raspberry Pi 上运行 TuyaOpen 应用(如 apps/tuya.ai/your_chat_bot)时遇到的 Wi‑Fi/蓝牙相关问题,例如:配网二维码未输出、蓝牙不可用、Wi‑Fi/蓝牙被系统禁用等。
前置准备
请先阅读 快速开始 及其子章节,了解以下内容:
- 如何搭建 TuyaOpen 开发环境
- 如何获取 TuyaOpen 专用授权码,推荐使用修改头文件的方式进行授权
- 如何进行设备配网
常见现象
- 运行程序后无法进入配网流程,或终端没有打印配网二维码。
- 蓝牙扫描/配网失败(BLE 不工作、找不到设备)。
- Wi‑Fi 或蓝牙被系统禁用(
rfkill显示 blocked)。
首次运行需要扫描配网
应用首次运行时通常需要进行扫码配网(例如通过终端输出的二维码进行配网)。
如果扫描配网或联网失败,可以尝试清理设备信息后重新运行:
- 停止正在运行的程序。
- 删除程序运行目录下的
tuyadb文件夹。
rm -rf tuyadb
- 重新运行程序并再次进入配网流程。
配网二维码未输出到终端
在 Raspberry Pi 上,为了让配网二维码等信息直接输出到当前终端,建议启用“fake UART(stdin/UDP)”。
- 激活
tos.py环境,并进入应用目录(以your_chat_bot为例):
cd apps/tuya.ai/your_chat_bot
- 打开配置菜单:
tos.py config menu
- 进入
Choice a board → LINUX → TKL Board Configuration,勾选:
Enable UARTUse fake UART (stdin/UDP) instead of hardware ttyAMA*
示例界面如下:

启用 fake UART 后,应用在配网时通常会将二维码等信息输出到当前终端,直接使用智能生活APP扫码配网。
检查 Wi‑Fi/蓝牙是否被 rfkill 禁用
- 查看 Wi‑Fi 与蓝牙状态:
rfkill list
示例输出:
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no
其中:
Soft blocked: yes表示设备在软件层面被禁用。Hard blocked: yes表示设备在硬件层面被禁用(例如物理开关),需要先解除硬件禁用。
- 解除软件禁用:
sudo rfkill unblock all
如需只解锁某一项,也可以用:
sudo rfkill unblock wifi
sudo rfkill unblock bluetooth
蓝牙服务与 TuyaOpen 配置项检查
确认 TuyaOpen 启用了蓝牙服务
在 tos.py config menu 中检查:
configure tuyaopen --->
configure tuya cloud service --->
[*] ENABLE_BT_SERVICE: enable tuya bt iot function --->
[ ] ENABLE_NIMBLE: enable nimble stack instead of ble stack in board
一般建议:
开启蓝牙服务,同时关闭 NIMBLE 协议栈。
修改配置后需要重新构建(例如执行 tos.py build),否则配置不会生效。
运行权限提示
在 Raspberry Pi 上运行应用/示例时,Wi‑Fi/蓝牙/外设相关操作往往需要访问 /dev/* 或系统服务接口,建议使用 sudo 运行生成的可执行文件,例如:
sudo ./your_chat_bot_*.elf