这是一个面向硬件课程期末项目的 AIoT 原型:行空板 M10 负责传感器读取、执行器控制和本地显示,Python 服务负责 HTTP 工具接口与 SQLite 日志,PicoClaw Agent 负责工具编排,飞书/企业微信通道用于远程触发检查、查询状态和生成报告。
- M10 连接检测脚本:
scripts/m10_test_connection.py - 传感器模拟/硬件兼容读取:
src/sensors/ - 阈值告警规则:
src/rules/threshold_checker.py - 远控安全策略:
src/rules/remote_policy.py - 远控命令处理器:
src/remote/command_handler.py - Flask 工具 API:
src/api/app.py - SQLite 日志与报告:
src/db/、src/reports/ - M10 屏幕状态页骨架:
src/gui/status_gui.py - PicoClaw Agent 配置与 skills:
agents/
python src/api/app.py启动后可访问:
GET /api/health— 健康检查GET|POST /api/read_sensor?type=all|light|sound_level|acceleration|gyroscope|motion|temperature|humidity|board|aht20POST /api/control— 控制执行器POST /api/save_log— 保存传感器日志GET /api/generate_report— 生成报告GET /api/status— 查询最新状态POST /api/remote_command— 远控命令POST /api/classroom_chat— 课堂 AI 对话GET /classroom— 课堂版 WebUIGET /classroom/<filename>— 课堂静态资源
M10 光线传感器返回 light/light_raw 为 0-4095 ADC 原始值,通常越接近 4095 越暗;面向用户展示时优先使用 light_percent 与 light_level。
默认 USB 网络地址为 10.1.2.3,SSH 默认账号为 root,默认密码为 dfrobot:
python scripts/m10_test_connection.py如设备地址或密码已修改,可通过环境变量覆盖:M10_HOST、M10_PORT、M10_USERNAME/M10_USER、M10_PASSWORD。
在 Windows PowerShell(建议管理员身份)中设置 API Key:
[Environment]::SetEnvironmentVariable("DEEPSEEK_API_KEY", "你的 DeepSeek API KEY", "User")重新打开终端后运行:
powershell -ExecutionPolicy Bypass -File .\scripts\setup_m10_picoclaw.ps1这个脚本会自动完成:
- 配置 Windows WLAN 到 M10 USB 网段的 NAT
- 通过 SSH 上传项目到 M10
- 安装/修复 M10 运行依赖
- 安装 PicoClaw 并写入 DeepSeek 模型配置
- 启动 Flask API 并运行 PicoClaw LLM smoke test
更换行空板或密码时可传参:
powershell -ExecutionPolicy Bypass -File .\scripts\setup_m10_picoclaw.ps1 `
-M10Host 10.1.2.3 `
-M10User root `
-M10Password dfrobot `
-Model deepseek-v4-flash如果 Windows NAT 已经配置好,可加 -SkipNat。API Key 也可以临时通过 -ApiKey 传入;不要把真实密钥提交到仓库。
首次部署完成后,日常测试只需要运行:
powershell -ExecutionPolicy Bypass -File .\scripts\start_m10_lab_assistant.ps1这个脚本不会重新安装 PicoClaw,也不会重写 API Key;它只会恢复 M10 的网络路由/DNS、启动 Flask API,并运行接口与 PicoClaw smoke test。若 Windows NAT 已经配置好,可加 -SkipNat:
powershell -ExecutionPolicy Bypass -File .\scripts\start_m10_lab_assistant.ps1 -SkipNat如果想通过网页和 PicoClaw/LLM 助手聊天,启动 PicoClaw Launcher:
powershell -ExecutionPolicy Bypass -File .\scripts\start_m10_picoclaw_webui.ps1然后在电脑浏览器打开:
http://10.1.2.3:18800/
如果 WebUI 已经启动但想重启它:
powershell -ExecutionPolicy Bypass -File .\scripts\start_m10_picoclaw_webui.ps1 -Restart也可以不用 WebUI,直接通过 SSH/命令行给 LLM 发一条消息:
ssh root@10.1.2.3 "picoclaw agent -m '请用一句话总结当前项目状态'"项目 Flask API 还提供一个独立的中小学课堂界面,不影响 PicoClaw 默认 WebUI:
powershell -ExecutionPolicy Bypass -File .\scripts\start_m10_classroom_webui.ps1 -SkipNat脚本会恢复 M10 网络路由、启动 Flask API、检查课堂页面和语音输入资源,并自动打开浏览器。若只想启动和自检、不打开浏览器,可加 -NoOpen。
http://10.1.2.3:5000/classroom
课堂版界面包含卡通科学小助手、传感器读数卡片、快捷课堂提问和浏览器语音输入。语音输入依赖浏览器 Web Speech API,建议使用 Chrome 或 Edge。
优先使用:
python -m pytest -q如果开发机尚未安装 pytest,可以先运行语法检查:
python -m compileall src scripts tests也可以运行无 pytest 依赖的轻量测试入口:
python scripts/run_local_tests.py/check:检查当前环境并写入日志/status:查询最近状态/report today:生成当天报告/alert on/off:开关异常提醒/fan on 30s:限时开启风扇
个人微信通道只作为增强项,答辩主线建议使用飞书或企业微信。