Skip to content

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

M10 + PicoClaw 实验室助手 Agent

这是一个面向硬件课程期末项目的 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|aht20
  • POST /api/control — 控制执行器
  • POST /api/save_log — 保存传感器日志
  • GET /api/generate_report — 生成报告
  • GET /api/status — 查询最新状态
  • POST /api/remote_command — 远控命令
  • POST /api/classroom_chat — 课堂 AI 对话
  • GET /classroom — 课堂版 WebUI
  • GET /classroom/<filename> — 课堂静态资源

M10 光线传感器返回 light/light_raw 为 0-4095 ADC 原始值,通常越接近 4095 越暗;面向用户展示时优先使用 light_percent 与 light_level。

M10连接验证

默认 USB 网络地址为 10.1.2.3,SSH 默认账号为 root,默认密码为 dfrobot:

python scripts/m10_test_connection.py

如设备地址或密码已修改,可通过环境变量覆盖:M10_HOST、M10_PORT、M10_USERNAME/M10_USER、M10_PASSWORD。

一键部署到 M10(首次或换板)

在 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 WebUI

如果想通过网页和 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 '请用一句话总结当前项目状态'"

课堂版 WebUI

项目 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:限时开启风扇

个人微信通道只作为增强项,答辩主线建议使用飞书或企业微信。

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages