三、数字公交

第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. 1分享码初始化 MQTT。
  2. 2T2 站号+=1 并 publish。
  3. 3T3 站号-=1 并 publish。
  4. 4点阵 shows(站号)。

流程示意(可对照左侧文字)

任务:手动切换站号搭出主循环,让程序一直运行…在循环里判断按键:刚按下用…把计算结果映射到可观察输出…载入官方示例后先点运行,对…

五、图形块功能讲解

下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。

图形块分类作用本课用法
math selfcalcu
数学对变量做 +=、-= 等自身运算。T2 站号 += 1,T3 -= 1。
格式化物联网数据
MixIO把数值格式化成可上传字符串。format_str 车号和站号。
创建字典
字典创建字典并赋给变量。{"车号":车号,"站号":站号}。
ESP-NOW 频道
无线广播设置无线电台频道。完整代码 set_channel(1)。
开关无线电台
无线广播打开或关闭 ESP-NOW 收发。完整代码 active(True)。
是否有新无线消息
无线广播查询是否收到新数据。完整代码回调收到新站号。
无线接收
无线广播读取收到的消息。完整代码 int(消息) 当新站号。
无线发送
无线广播广播或发送一条消息。完整代码每 5 秒发送站号+1。

六、知识点讲解

本课核心是站号上报。点阵显示和 MQTT 发布要一起变。

体验

本机按键改站号。

完整代码

同一块板:收到新站号才发布,并定时广播站号+1。

车号

'ABCD'。

  • 过关:能说出体验为什么没有无线电台。

先弄清本课输入与输出,再进编程练习对照现象。

七、编程练习

点「载入」打开 MixVM(board=mixgo_zero_design)。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

3-1-1 手动切换站号.mix。载入后运行。

八、课堂练习

先完成两道判断题,再完成选择题;全部选定后点「检查」。

  1. 判断:体验用 ESP-NOW 接收新站号。

  2. 判断:T2 按下后会发布主题「车辆信息」。

  3. 点阵显示的是?

  4. 完整代码只有当新站号与当前站号不同才?

九、本节小结

记住:体验按键改站号;无线自动站号是完整代码。