单元八

第32课 安全门锁——发送与接收

任务场景:安全门锁——发送与接收
任务场景:安全门锁——发送与接收

一、任务目标

先发开锁报文,对端核对账号口令后再决定是否开锁。

二、我们要学什么

  • 学习要点:发送与接收|先发开锁报文再核对账号口令
  • 本课过关:能完成:说出发送是按键发布带用户名和口令的开锁报文,接收是核对后再显示;载入体验程序,指出按 B1 向「Door」发布 user1 和 psd123,按 B2 发布 user12 和 psd123,连线失败时串口打印 error;再运行完整程序,指出它订阅「Door」,用户名和口令都对时点阵屏滚动 lock 字段,否则显示难过表情。
  • 示例对齐:体验题对应 「教育部教学指南改进版/八年级/30-2-1 安全门锁发送」;完整代码对应 「教育部教学指南改进版/八年级/30-2-2 安全门锁接收」。

三、本节要点

前课分清本机编号和远程身份,本课把发送和接收看成一对。体验程序用分享码连上 MQTT,按 B1 发正确用户 user1,按 B2 发错误用户 user12,报文里都有 lock=open 和口令 psd123。完整程序订阅「Door」,核对 user 为 user1 且 passwd 为 psd123 才滚动 lock,否则点阵屏显示难过表情。要点对齐「发送与接收|先发开锁报文再核对账号口令」。

1读场景明确真实任务
2对要点发送与接收|先发开锁报文再核对账号口令
3载入运行官方积木/代码

四、解题思路

任务:用两套程序认识发送与接收——体验程序按键向「Door」发布开锁报文,完整程序核对用户名和口令后再在点阵屏显示。请先分清每套的输入和输出,对照 B1/B2 发出的用户名是否不同。

本课主要用到:体验程序用板载 B1、B2 按键和 MQTT;完整程序用点阵屏滚动 lock 或显示难过表情。

  1. 1明确任务「安全门锁——发送与接收」:按键发送和点阵核对是一对。
  2. 2用分享码连上 MQTT,循环等待按键或消息。
  3. 3体验程序:B1 发布 user1 的开锁报文,B2 发布 user12 的开锁报文。
  4. 4完整程序:订阅「Door」,解析用户名和口令。
  5. 5核对通过则点阵屏滚动 lock,否则显示难过表情。

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

发送与接收:报文要对核分享码连网,循环等待B1发user1,B2发user12完整订阅Door,核对口令通过则滚动lock,否则难过

五、图形块功能讲解

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

图形块分类作用本课用法
EMQX 共享码连接
网络用分享码接入 MQTT。本课编程练习中首次使用,载入后可在工具箱对照。

六、知识点讲解

发送与接收要成对工作:发送端把 lock、user、passwd 打成一条报文发到「Door」;接收端解开报文,只有用户名为 user1 且口令为 psd123 才在点阵屏滚动 lock 字段,否则显示难过表情。前课打印标识,本课用 B1 发正确用户、B2 发错误用户作例子,说明对端必须核对身份才能开锁。

先弄清:按键和点阵屏是例子,要认识的是发送与接收;再进编程练习对照现象。

七、编程练习

点「载入」打开 MixVM(board=sant_design)。默认图形化积木;起步程序与积木优先来自 MixGo Sant 官方示例「教育部教学指南改进版/八年级」。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

官方示例:30-2-1 安全门锁发送.mix。载入后运行。

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:体验程序按 B1 会向「Door」发布 user 为 user1 的开锁报文。

  2. 判断:完整程序不核对用户名和口令,收到消息就滚动 lock。

  3. 本课说的「发送与接收」指的是?

  4. 体验程序里 B1 和 B2 发出报文的主要差别是?

  5. 完整程序收到 user1 且 psd123 的报文,点阵屏应看到?

九、本节小结

前课分清标识,本课认识发送与接收:一端发出带用户名和口令的开锁报文,另一端核对后再显示。体验程序按 B1 向「Door」发布 user1,按 B2 发布 user12;连线失败时串口打印 error。完整程序订阅「Door」,用户名和口令都对时点阵屏滚动 lock,否则显示难过表情。B1 发出的报文应对上滚动 lock;B2 的 user12 应对上难过表情。