AI脑洞板
完整教案
自学课件
第 15 课 · 共 35 课

两块板互相说话

你好呀,我是吴老师。

上一课板子学会了连 WiFi。但连 WiFi 得有个条件:得有个路由器。

今天要讲一件更神奇的事:

两块板可以不用路由器、不用网,直接对着说话。

只要离得够近。

一、先想一个问题

你要给对方传张纸条,有几种办法?

办法需要什么缺点
写纸条递过去就在旁边远了就不行
中间找个同学转交得有人愿意帮忙那个人就是"路由器"
直接喊一声就在旁边,喊得到得知道对方叫什么

WiFi 是第二种 —— 中间得有个路由器帮你转。

今天要用的,是第三种。 板子用的技术叫 ESP-NOW —— 名字不重要,记住这一句就够了:

它不需要路由器,两块板直接对着喊。

二、把两条路摆在一起看

同一句「你好」,走的路可以完全不同。

先点左边的「走 WiFi」,再点右边的「走 ESP-NOW」 —— 盯着那颗跑动的小点(那就是消息),看它走的是哪条路:

看出区别了吗?

中间那个路由器
走 WiFi亮着,消息要绕着它转一圈
走 ESP-NOW是灰的 —— 这条路根本用不上它

再点一下「拔掉路由器 ⚡」试试。

⚠️ 你会看到:WiFi 那条路当场断掉,两块板说不上话了。

这就是"路由器是必经之路"的样子 —— 它一没,整条路就没了。

而 ESP-NOW 那条路,压根不关心路由器在不在。

💡 顺便看一眼表格里"能传多远"那一行。 ESP-NOW 不用路由器,但代价是离得近才行 —— 天底下没有只占便宜不吃亏的事。

三、⚠️ 一条硬规矩:不能同时用 WiFi

这一条必须先说,因为它是这块板子的物理限制:

esp_link(板间通信)和 wifi_setup(连 WiFi)不能同时用。

一个应用里只能选一个。

为什么? 因为它们都要用同一套无线电 —— 就像一个人不能同时用同一张嘴说两套话。

你想做的应用该用
问 AI、听电台、查天气wifi_setup
和对方的板子传东西、对讲、对战esp_link

⚠️ 两个都要 = 互相打架,网络会时通时断,看上去像"两个功能都坏了"。

先想清楚你这个应用是哪一类,再动手。

四、第一件事:先"找到"对方

开无线之前,得先跟对方打个招呼。板上是这么做的:

它去找另一块板 → 两边都按一下确认。

确认这一步很重要 —— 教室里有好多块板,你得确认自己连的是对方那块板:

配对确认页:两块板都要按一下,才不会连错人

它最多找 30 秒。 找到了就往下走;没找到,你的应用得给个说法 —— 不能就干等着:屏幕上要写清"没找到另一块板",再给一个"再找一次"的按钮。

⭐ 每块板都有自己的代号,像 #A3F2。 它就是靠这个才分得清"我连的是哪一块" —— 不然连错了都不知道。

五、两条规矩

发和收各有一条规矩。都不长,但都很要紧。

规矩一:一次最多发 4KB

想传更大的东西(一张图、一段录音),得切成几块、一块一块发,对面收齐了再拼起来。

💡 就像寄一本厚书,得分几个包裹 —— 一次寄不完。

规矩二:⚠️⚠️ 收消息,要"每一帧问一次"

这是这一课最容易踩的坑,也是唯一一个"错了还不报错"的地方:

消息来的时候,板子不会敲门。

它只是把消息搁在那儿,得你自己不停去看。 你若隔很久才看一次,中间来的那几条就丢了 —— 而且一点提示都没有。

现象长这样:我这边发了,他那边没反应。 真实原因:他那边忘了收。

⭐ 所以这类应用的每一轮循环里,都必须问一次"有消息来了吗"。 这句话你写不出来没关系 —— 让 AI 写的时候,一定要叮嘱它这一条。

六、这类应用长什么样

不管你做对讲机、传纸条还是双人小游戏,骨架全是一样的。

板间应用的循环骨架:每转一圈问三件事

看着这张图,其实只有一个循环:

转一圈问三件事为什么必须问
① 有人按了退出吗?不问,学生就退不出去
② 有人发消息来了吗?不问,消息就永远收不到(就是规矩二)
③ 把画面推上屏幕不推,前面画的全看不见

就这么点东西。 剩下的全是"画成什么样、收到之后干什么"的花样。

⭐ 想通这一步,你会发现这类应用特别好做 —— 难点从来不在写代码,在想清楚"收到消息该干什么"。

💡 想加新花样? 都往第 ②步里塞: 收到"分数"就加分、收到"画一笔"就画上去、收到"我来了"就把对方画出来。 骨架一个字都不用改。

七、动手做

任务一:找到对方

请帮我做一个「找对方」的应用:
1. 打开的时候去找另一块板
2. 屏幕上显示找到没有
3. 找到了就显示对方的代号
4. 没找到就给一个「再找一次」的按钮
5. 用中文注释

⚠️ 做这个任务要两台板子(或者和对方合作)。 一个人做不出来 —— 因为没有"对面"。

做好之后屏幕上就是这样 —— 找到了,屏幕上会显示对方的代号:

找对方:屏幕上显示找到的对方代号

任务二:悄悄话(这一课的主作品)

两块板接上线之后,长这样 —— 一台发,另一台就收到了:

两块板互发消息:左边是我发的,右边是对方发来的

请帮我做一个「悄悄话」应用:
1. 先找另一块板,找到了才继续
2. 屏幕上有一个输入框一样的地方,能打字
3. 点「发送」就把这句话发过去
4. 对方发来的话,显示在屏幕上
5. 用中文注释

做这个任务有两点要注意:

注意什么为什么
打字怎么办?屏幕小,自己画键盘很麻烦。可以先发几个固定的话("你好""在吗""收到"),做成按钮
每帧都要 recv()忘了调它,消息就永远收不到 —— 而且不报错,最难查

💡 第二点是这节课最容易踩的坑。 现象是"我这边发了,他那边没反应" —— 但其实是那边忘了收。

做完请做两件事:

  1. 两块板各发一句,都收到了吗?
  2. 把一块板拿走,走到另一个房间 —— 还收得到吗?(试试它的距离)

八、只改一个条件

挑一个来改,先说出你的预测,再动手:

✏️ 可以直接在表格里填写
我改的条件我预测会怎样实际怎样
把 recv() 从循环里删掉
两块板拉开到十几米
同时开一个要连 WiFi 的应用
发一条超过 4KB 的长消息

💡 第三个会看到两个功能都不正常 —— 这就是"抢同一套无线电"的样子。 最后一个会直接报错:一次发不了那么大的东西。

九、自检小测

正在加载本课自检小测…

十、还想玩点什么

想做什么可以这样描述给 AI
两块板一起计分一边加分,另一边跟着变
隔空对讲配合第 11、12 课,把录音发过去放出来
点名器两块板互相报自己的代号,凑齐了算一组
双人游戏一人控制一半,靠消息同步
传作品把做好的应用发给对方(系统里的「分享」就是这么做的)

⭐ 下一节课,我们要让板子听网络电台。

那会是"联网能干什么"里最好玩的一个 —— 板子连上网,就能听全国各地的电台,还能自己搜台。

有意思的是:它得先"找台",才能"放台" —— 这是两件事。

本节演示

找对方

找对方

不用路由器,直接找到另一块板

悄悄话

悄悄话

两块板互发消息,像聊天一样