三、数字公交
第9课 手动切换站号

一、任务目标
分享码接入后,T2 让站号加 1、T3 减 1,并发布「车辆信息」(车号 ABCD、当前站号),点阵显示站号。完整代码同一块板既 ESP-NOW 收新站号(有变化才发布),也每 5 秒广播站号+1。
二、我们要学什么
- 学习要点:站号变化后要发布车辆信息,点阵同步显示
- 本课过关:能指出体验用 T2/T3 改站号;无线收站号是完整代码。
- 示例对齐:体验题对应 「3-1-1 手动切换站号」;完整代码对应 「3-1-2 自动切换站号」。
三、本节要点
车号固定 ABCD。体验没有 ESP-NOW。
1读场景明确真实任务
2对要点按键改站号并发布
3载入运行本课积木/代码
四、解题思路
- 输入:体验 T2/T3。完整代码 ESP-NOW 消息。
- 输出:MQTT 车辆信息 + 点阵站号。
- 生活对照:司机手动报站,或站台无线改站号。
- 验证现象:按 T2 站号加 1,屏上数字变大。
本课主要用到:Wi-Fi、分享码 MixIO、点阵;完整代码另用无线广播。
- 1分享码初始化 MQTT。
- 2T2 站号+=1 并 publish。
- 3T3 站号-=1 并 publish。
- 4点阵 shows(站号)。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 数学 | 对变量做 +=、-= 等自身运算。 | T2 站号 += 1,T3 -= 1。 |
![]() | MixIO | 把数值格式化成可上传字符串。 | format_str 车号和站号。 |
![]() | 字典 | 创建字典并赋给变量。 | {"车号":车号,"站号":站号}。 |
![]() | 无线广播 | 设置无线电台频道。 | 完整代码 set_channel(1)。 |
![]() | 无线广播 | 打开或关闭 ESP-NOW 收发。 | 完整代码 active(True)。 |
![]() | 无线广播 | 查询是否收到新数据。 | 完整代码回调收到新站号。 |
![]() | 无线广播 | 读取收到的消息。 | 完整代码 int(消息) 当新站号。 |
![]() | 无线广播 | 广播或发送一条消息。 | 完整代码每 5 秒发送站号+1。 |
六、知识点讲解
本课核心是站号上报。点阵显示和 MQTT 发布要一起变。
体验
本机按键改站号。
完整代码
同一块板:收到新站号才发布,并定时广播站号+1。
车号
'ABCD'。
- 过关:能说出体验为什么没有无线电台。
先弄清本课输入与输出,再进编程练习对照现象。
七、编程练习
点「载入」打开 MixVM(board=mixgo_zero_design)。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
3-1-1 手动切换站号.mix。载入后运行。
正在载入编程环境
正在载入 MixGo ZERO 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:体验用 ESP-NOW 接收新站号。
判断:T2 按下后会发布主题「车辆信息」。
点阵显示的是?
完整代码只有当新站号与当前站号不同才?
九、本节小结
记住:体验按键改站号;无线自动站号是完整代码。







