项目>行空板 K10>行空板 K10 综合项目实战

行空板 K10 综合项目实战

摘要:把板载传感器、屏幕、阈值告警和 SIoT 上报串成一个教室环境监测小站,走一遍从需求到联调的完整项目流程。

要做的东西

一块 K10、一根数据线、一台跑着 SIoT 的电脑,不外接任何模块。板子周期性读温湿度与环境光,本地屏幕显示数值,超阈值时亮 RGB 灯并推一条告警,同时把数据发到局域网的 SIoT,电脑大屏上看曲线。

这个形态在官方与公开课程案例里很常见,校园气象站、智能温室大棚、桌面智慧台历都是同一套骨架。好处是几乎把 K10 的板载资源全用上了,又不依赖额外硬件,特别适合做阶段性的综合练习。

先画数据流再写程序

  1. 上电连 WiFi,注意只支持 2.4 GHz
  2. 连接 SIoT 服务,确认账号、密码与主题名
  3. 循环读取温湿度与环境光
  4. 本地判断阈值,异常时亮灯并推送告警
  5. 把数值发到数据主题,屏幕在循环末尾统一刷新
  6. 加延时,按数据变化快慢分别设采样周期

关键是把采集、判断、上报、显示拆成四段,任何一段出问题都能单独测。别一上来就写成一个大循环,出了毛病根本定位不到。

主题怎么分

主题 内容 大屏组件
siot/light 环境光单值 仪表盘或数值
siot/env 温度与湿度,逗号拼接 图表,数据列数设为 2
siot/alert 告警文本 提醒组件

温湿度两个数要拼成一条形如「温度,湿度」的消息,大屏图表的数据列数必须设成 2、列名分别对应温度与湿度,否则画不出双曲线。这是整个项目最容易卡住的一处配置,数值发对了却看不到曲线,先查这里。

最小可运行示例:读值、显示、上报各跑一遍

按 MicroPython 路线分两段跑。第一段不依赖网络,先在板上读三个板载传感器并把数值显示到屏幕;第二段再按「行空板 K10 WiFi 与 SIoT 物联网」页的官方示例把数值发到 SIoT。

from unihiker_k10 import temp_humi, light, screen
screen.init(dir=2)
temp = temp_humi.read_temp()
humi = temp_humi.read_humi()
lux = light.read()
screen.draw_text(text="T:%s H:%s L:%s" % (temp, humi, lux), x=10, y=0, font_size=24, color=0xFF0000)
screen.show_draw()

上报前先在电脑上用 start SIoT.bat 启动 SIoT,浏览器打开电脑 IP 的 8080 端口,用默认账号 siot、密码 dfrobot 登录。上报这一段沿用「行空板 K10 WiFi 与 SIoT 物联网」页的官方示例:先按该页的 WiFi 与 MQTT 代码连上 WiFi 和局域网里的 SIoT 服务,再用 mqttclient.publish(topic="siot/env", content="%s,%s" % (temp, humi)) 把上面读到的温度、湿度按「温度,湿度」格式发到 siot/env。官方示例里的 mqttclient.connect(...) 片段,以及服务器 IP、账号 siot、密码 dfrobot,都在该页逐字列出;示例里的热点名、密码、服务器 IP 都是演示值,照做时换成自己的 WiFi 名称、密码与电脑 IP。

按运行顺序,每一步的预期结果:

  1. 读值:temp_humi.read_temp()、read_humi() 拿到摄氏温度与相对湿度,light.read() 拿到环境光数值。
  2. 屏幕显示:draw_text 把三个读数写进缓存,show_draw() 提交后屏幕显示这一行读数。
  3. 上报:mqttclient.publish 把温度、湿度按「温度,湿度」发到 siot/env,刷新 SIoT 网页能看到这个主题和刚发出的消息。

整体验下来,屏幕留着那行读数、网页 siot/env 下出现一条消息,这一轮就算通了,可以按联调顺序往下加阈值告警和大屏组件。要持续监测,把读值、显示与上报这一轮放进循环,按前面数据流里定的采样周期加延时。

三个让项目变稳的细节

  • 采样间隔分开设:光照变化快可以一秒一次,温湿度变化慢可以拉长,既省算力也让曲线更好看
  • 告警加状态变量:只在从正常变成异常时发一次,避免每轮循环重复刷屏
  • 界面统一在主循环刷新:MQTT 收到消息先存变量,别在接收回调里直接刷屏
板载温湿度传感器会受主板自身发热影响,若要更高精度,可按站内实测文章的做法外接温湿度传感器做校正。

联调顺序

  1. 先只做本地读值加屏幕显示,完全不联网
  2. 再加 WiFi 与 SIoT 连接,确认网页能收到一条数据
  3. 再加阈值告警与 RGB 灯反馈
  4. 最后配大屏组件与曲线

每轮只加一个变量,比全功能一起上快得多。前面各页讲过的端口、烧录、2.4 GHz、TF 卡这些坑,在这个阶段会集中冒出来,按现象回故障排查页查就行。

还能往哪扩

  • 多台 K10 用不同主题,比如 siot/env_zone1 与 siot/env_zone2,大屏放多个图表做分区监测
  • 加语音播报或二维码识别,做成交互入口
  • 由大屏下发指令反向控制设备,形成双向闭环

这些都是公开案例里验证过的方向,按需要挑一个加就好,别一次全堆上。

下一步

项目跑通后若遇到异常,去行空板 K10 常见问题与故障排查按现象排查;想回看整体路线,参考行空板 K10 快速开始。

资料来源

  • Mind+ 官方文档
  • DFRobot 官方产品资料库
  • 硅基部落社区实测文章
  • 行空板 K10 官方快速使用教程

相关内容

给特斯拉自动插枪的小车、“陆空两栖”四足机器人、到点捞菜的火锅机器实践基于行空板K10的地震波模拟探测装置实践行空板K10制作旋转展示台:语音控制灯光与转盘实践STEM教育 · 行空板M10:3D智能客厅课堂项目实践BME688传感器配行空板K10:室内环境监测实战实践ESP-Mosaico智能套件上手:AI编码与模块化扩展实践