单元八
第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,否则点阵屏显示难过表情。要点对齐「发送与接收|先发开锁报文再核对账号口令」。
四、解题思路
任务:用两套程序认识发送与接收——体验程序按键向「Door」发布开锁报文,完整程序核对用户名和口令后再在点阵屏显示。请先分清每套的输入和输出,对照 B1/B2 发出的用户名是否不同。
本课主要用到:体验程序用板载 B1、B2 按键和 MQTT;完整程序用点阵屏滚动 lock 或显示难过表情。
- 1明确任务「安全门锁——发送与接收」:按键发送和点阵核对是一对。
- 2用分享码连上 MQTT,循环等待按键或消息。
- 3体验程序:B1 发布 user1 的开锁报文,B2 发布 user12 的开锁报文。
- 4完整程序:订阅「Door」,解析用户名和口令。
- 5核对通过则点阵屏滚动 lock,否则显示难过表情。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 网络 | 用分享码接入 MQTT。 | 本课编程练习中首次使用,载入后可在工具箱对照。 |
六、知识点讲解
先弄清:按键和点阵屏是例子,要认识的是发送与接收;再进编程练习对照现象。
七、编程练习
点「载入」打开 MixVM(board=sant_design)。默认图形化积木;起步程序与积木优先来自 MixGo Sant 官方示例「教育部教学指南改进版/八年级」。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
官方示例:30-2-1 安全门锁发送.mix。载入后运行。
正在载入编程环境
正在载入 MixGo SANT 仿真编程环境…
八、课堂练习
先完成两道正误判断,再做其余题目;选出后点「检查」。
判断:体验程序按 B1 会向「Door」发布 user 为 user1 的开锁报文。
判断:完整程序不核对用户名和口令,收到消息就滚动 lock。
本课说的「发送与接收」指的是?
体验程序里 B1 和 B2 发出报文的主要差别是?
完整程序收到 user1 且 psd123 的报文,点阵屏应看到?
九、本节小结
前课分清标识,本课认识发送与接收:一端发出带用户名和口令的开锁报文,另一端核对后再显示。体验程序按 B1 向「Door」发布 user1,按 B2 发布 user12;连线失败时串口打印 error。完整程序订阅「Door」,用户名和口令都对时点阵屏滚动 lock,否则显示难过表情。B1 发出的报文应对上滚动 lock;B2 的 user12 应对上难过表情。
