一、远程灯光
第1课 远程开关灯

一、任务目标
连上无线路由后订阅「开灯」:消息 '1' 开 1 号灯,'0' 关。主循环必须 check_msg。完整代码另用 T2 发布 '1'、T3 发布 '0'。
二、我们要学什么
- 学习要点:先订阅再循环检查消息,灯才会跟远端变
- 本课过关:能指出体验只收不发;本机按键发布是完整代码。
- 示例对齐:体验题对应 「1-1-1 远程开关灯」;完整代码对应 「1-1-2 遥控开关灯」。
三、本节要点
联网用 MAC c18cbd7b5450、频道 16。socket.config 写在回调外面。
1读场景明确真实任务
2对要点订阅开灯并 check_msg
3载入运行本课积木/代码
四、解题思路
- 输入:MQTT 开灯;完整代码另用 T2/T3。
- 输出:1 号灯。
- 生活对照:手机开关灯,或本机当遥控器。
- 验证现象:收到 1 灯亮,收到 0 灯灭。
本课主要用到:无线路由、MixIO、板载灯;完整代码另用按键发布。
- 1定义回调:1 开 0 关。
- 2连接无线路由与 MixIO。
- 3订阅开灯。
- 4循环 check_msg。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 网络 | 连接到无线路由(MAC + 频道)。 | socket.config(hub='c18cbd7b5450', channel=16, txpower=4)。 |
![]() | MixIO | 登录物联网平台。 | init_MQTT_client。 |
![]() | MixIO | 订阅主题以接收数据。 | 订阅主题「开灯」。 |
![]() | 控制 | 按条件反复执行内部积木;条件为「真」时相当于 while True 无限循环。 | 载入后可在工具箱对照本课用法。 |
![]() | MixIO | 检查平台连接或消息。 | 主循环 check_msg。 |
![]() | 函数 | 封装一段可重复调用的积木。 | 回调 method(client, topic, msg)。 |
![]() | 控制 | 满足条件时执行对应分支,用于按键、传感阈值的判断。 | 载入后可在工具箱对照本课用法。 |
![]() | 逻辑 | 比较两个值(大于/等于/小于等),得到真或假。 | 载入后可在工具箱对照本课用法。 |
![]() | 变量 | 读取变量当前值。 | 载入后可在工具箱对照本课用法。 |
![]() | 板载执行 | 打开或关闭指定 LED。 | msg=='1'/'0' 开关 1 号灯。 |
![]() | 板载传感 | 边沿检测:这一瞬间是否刚按下(适合触发一次动作)。 | 完整代码 T2 发 1、T3 发 0。 |
![]() | MixIO | 向主题发布数据。 | 完整代码 publish 开灯。 |
六、知识点讲解
本课核心是订阅 + 检查。回调里改灯,主循环不 check_msg 就收不到。
字符串
比较的是 '1' 和 '0'。
位置
连接无线路由必须在函数外面。
遥控
完整代码本机按键去 publish。
- 过关:能说出体验为什么没有 T2。
先弄清本课输入与输出,再进编程练习对照现象。
七、编程练习
点「载入」打开 MixVM(board=mixgo_zero_design)。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
1-1-1 远程开关灯.mix。载入后运行。
正在载入编程环境
正在载入 MixGo ZERO 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:体验程序用 T2、T3 向「开灯」发布 1 和 0。
判断:主循环需要反复 check_msg 才会进入回调。
收到消息 '1' 会?
本课示例无线路由 MAC 是?
九、本节小结
记住:体验只收开灯;T2/T3 发布是完整代码。











