为什么我的 ESP32 连不上学校的 WiFi?

挡住 ESP32 的是学校网络的 WPA2-Enterprise 登录、强制门户和设备管理策略,不是坏掉的板子。要么找 IT 部门开一个 PSK 的物联网 SSID,要么干脆用 ESP-NOW 自组网、BLE 或 LoRa 绕开 WiFi。
太长不看
- ESP32 连不上学校 WiFi,是因为学校网络要的东西单片机根本给不了:WPA2-Enterprise 登录(eduroam 那一套用户名加证书)、必须用浏览器才能过的强制门户,或者 MAC 登记和双因素认证策略。只认 SSID + 密码的固件,第一步就过不去。这是策略和协议的问题,不是板子坏了。
- 最快的正当解法,是向 IT 部门申请一个 PSK 访客 SSID、一个物联网 VLAN,或者把设备加进 MAC 白名单。具体该怎么措辞,本文后面给了原话。
- 手机热点和旅行路由器能撑过一次演示,但它们是在绕开学校的管理策略,可能违反网络使用规范,而且手机一休眠就断。
- 真正长久的答案在架构上:用一个网桥节点带起来的 ESP-NOW 自组网、BLE 配网、跑距离用 LoRa,或者先离线记录、之后再同步。碰学校网络的设备只有一台,甚至一台都没有。
- 同一个毛病在家里和农场还有另一种版本:只支持 WPA1/TKIP 的老路由器,同样连不上新版 ESP32 固件。扫描能看到这个热点,但连接返回 NO_AP_FOUND。把路由器升级到 WPA2 就好了。
课堂物联网里被撞得最多的一堵墙
在任何一个创客论坛里搜“ESP32 school WiFi”,翻出来的都是同一个故事:项目在家里跑得好好的,一拿到学校就上不了网。老师、学生,连开课的讲师都躲不过:
“我现在在一所社区学院当讲师,IT 部门不让我们用学校装的 Wi-Fi 来教 Wi-Fi 开发板(esp32 或别的)。……我们是不是只能自己买一份 Wi-Fi 服务?还是说 IT 部门只是反应过度了。”
“我在做一个水培控制器……跑得很好……连的是一个 2.4 GHz 加密热点。可长期部署能用的两个网络,一个是 Eduroam,另一个是靠强制门户做认证的。”
“我们学校的 wifi 要用户名、密码加双因素认证才能连,所以简单的 wifi(ssid, password) 那一套用不了。有人遇到过类似的问题吗?”
挑课堂套件的老师已经吃过亏,现在会把这一条先问清楚:
“最好是自带面板、不用连学校 wifi 的那种。”
— 一位为课堂选购水培设备的老师,r/Hydroponics,2023 年 12 月
在七个以上的 r/esp32 帖子里,大家给出的标准变通办法都一样:买个随身热点或者旅行路由器。换句话说,人们额外花钱买硬件,只为绕开学校的网络。在掏这笔钱之前,先弄清楚板子究竟为什么被拒之门外,会更有用。
学校 WiFi 为什么拒绝你的板子
1. WPA2-Enterprise 要的是身份,不是密码
家用 WiFi 走的是 WPA2-Personal:所有人共用一个密码(也就是“预共享密钥”,PSK)。而 eduroam 这类中小学和高校网络走的是 WPA2-Enterprise:每个用户都要用用户名、密码,往往还要加一张证书,到中心 RADIUS 服务器上做认证。大多数业余固件和大多数图形化编程环境,压根就没有做这套流程的界面。板子不是出故障,而是被问了一个它无从回答的问题。
2. 强制门户需要浏览器,而你的板子没有
访客网络看上去往往是开放的,但它会把第一个网页请求重定向到登录页:同意条款、输入券码、点一个按钮。这个流程默认操作的是一个有浏览器、有屏幕的人。无头单片机可以和接入点完成关联,却永远点不了那个“同意”,于是就卡在一个上不了真网的围墙花园里。
3. 设备登记、MAC 过滤和双因素策略
不少学校还要求每台设备按 MAC 地址登记,或者在放行之前先往手机 App 推一条双因素验证。学生手里的板子是一台没人纳管、没有登记、也没绑手机的设备。按这套规则,它被挡住是设计使然;而且有些板子会随机化自己的 MAC 地址,这样一来,就算 IT 部门想帮忙,白名单也照样失效。
4. 有时候根本不是技术问题:IT 部门说不行
上面引用的那位讲师,输的不是协议,是 IT 部门直接否了。这种否决通常站得住脚:一个承载着学籍档案和考试材料的网络上,多出几十台没人纳管的单片机,确实是实打实的安全和运维负担。把 IT 部门当成有正当顾虑的利益相关方,而不是当成障碍,成事的概率会高得多。
家庭和农场版本:只支持 WPA1/TKIP 的路由器
还有一种相关的失败,专挑离学校十万八千里的人下手。跑 WPA1 加 TKIP 加密的老路由器,会被新版 ESP32 固件出于安全原因拒绝。症状让人困惑:扫描时网络明明在列表里,可每一次连接都以 NO_AP_FOUND 告终。改代码是没用的。把路由器设成 WPA2(或者干脆换掉),板子就正常入网了。如果你要部署的地方是农场棚屋,或者一间还用着十年前路由器的后院小屋,先查这一条。
真正管用的做法
方案一:用 IT 部门的行话,把请求提对
大多数申请之所以被驳回,是因为听上去像是在说“请把安全性调低一点”。换个说法,去要下面三种网管天天在做、边界清晰的标准方案之一:
- 一个独立的物联网 VLAN:给实验设备划一个隔离网段,用防火墙和行政、教学系统隔开。
- 一个 WPA2-PSK 的 SSID:一个简单的密码保护网络,最好隐藏起来或者调低发射功率,只覆盖机器人教室。
- 一份 MAC 白名单:你提供整套教具固定的 MAC 地址,IT 部门只放行这些设备。
一段值得照抄的申请:“能不能给机器人实验室在一个隔离 VLAN 上开一个 WPA2-PSK 的 SSID,只通外网、不能访问内部系统,并且限定在我提供的 N 个已知 MAC 地址范围内?限速也行,非上课时间关掉也行。”这一句话就表明你理解他们的顾虑,也把一场关于制度的争论,变成了一张例行的变更工单。
方案二:手机热点或旅行路由器,但要心里有数
热点之所以管用,是因为它就是一个由你自己掌控的普通 WPA2-PSK 网络,而 ESP32 这一类板子对 2.4 GHz WiFi 完全没问题。做一次性演示,这样够用。可要撑一整个学期,问题就实打实了:手机一休眠或者被带出教室,整个项目立刻掉线;流量费会越攒越多,这在南非尤其肉疼;而且很多校园把私设无线接入点算作违反网络使用规范,所以要跟 IT 部门报备,别偷偷摸摸装。把旅行路由器插在教室的网口上会稳一些,但它照样得经过 IT 部门点头——既然都要谈,通常还不如直接提方案一。
方案三:把系统设计成不依赖学校网络
最稳的位置,是让学生设备从头到尾都不需要基础设施 WiFi 的架构:
- 一个网桥带起来的 ESP-NOW 自组网:ESP-NOW 是 ESP32 这类板子之间点对点的无线电协议,不需要路由器,也不需要密码。学生的板子彼此直接通信;唯一那条互联网连接,由一个网桥节点持有(可以是热点、教师办公室的网口,或者 IT 部门同意加进白名单的那一个 MAC 地址)。要守的设备从三十台变成一台。
- 用 BLE 做配置和控制:低功耗蓝牙让板子直接和手机或笔记本配对,配网和看板都不用把网络牵扯进来。
- 距离让 WiFi 出局的地方就上 LoRa:校园菜园、气象站和农田地块,LoRa 能把小体量的传感器数据包送出几公里,全程不需要 WiFi。
- 离线优先的数据记录:上课时把数据写进 Flash 或 SD 卡,之后再从你自己掌控的网络同步。在南非的学校,就算不看 WiFi 政策,轮流停电这一条也足以让它成为一个好习惯。
sheen是怎么绕开这堵墙做设计的
正是这堵墙,塑造了我们的硬件选择。sheenbot∞ 板载 WiFi、BLE 和 ESP-NOW 三种无线电,可以完全离线工作,不需要账号、不需要订阅,也不依赖云。在课堂部署里,板子之间组成不用路由器的 ESP-NOW 自组网,由一个网桥节点持有唯一那条网络连接——我们的智能家居改造节点在一块主板网桥后面用的也是同一套架构。sheenIoT 又加上了 BLE 辅助配对,设备不碰学校 WiFi 也能加入设备群;而我们的离网智慧农业系统,在 WiFi 从来就不是选项的地方,用的是太阳能供电、通信距离以公里计的 LoRa 田间节点。纯编程课则可以用 sheen canvas 和 sheen verse 仿真器,它们在老师的浏览器里直接跑真正的 MicroPython,学生不用往网络里接一台设备,就能写和测物联网逻辑。有一条局限我们说在前头:和其他 ESP32 类板子一样,接入 WPA2-Enterprise 或 eduroam 并不是我们支持的课堂路径。我们选择绕开它,而不是硬碰硬。
几种连接方案对比
| 方案 | 搭建难度 | 是否需要 IT 审批 | 覆盖范围 | 课堂适配情况与主要缺点 |
|---|---|---|---|---|
| 学校 WiFi(物联网 VLAN / PSK SSID) | 对你很低,对 IT 部门是一张变更工单 | 是,必不可少 | 整个校园 | 批下来就是最好的长期方案;但审批可能拖上几周,也可能直接被拒 |
| 手机热点 | 极低 | 正式流程上要,实际常被跳过 | 一个房间 | 做演示很好用;手机一休眠就掉线,要花流量费,还可能违反规定 |
| 旅行路由器 | 低到中等 | 要,因为它要插进学校的网络 | 一到两个房间 | 稳定又便宜;但照样要和 IT 部门谈同一件事,所以常常多此一举 |
| ESP-NOW 自组网 + 一个网桥节点 | 中等(需要支持 ESP-NOW 的板子,例如sheenbot∞) | 只有那一个网桥需要;网桥若用热点则完全不需要 | 从一间教室到整栋楼,自组网还能再延伸 | 课堂适配度最高;但能不能上网仍取决于那一条网桥链路 |
| LoRa 节点 | 中等偏高 | 不需要 | 数公里 | 校园菜园、农场、气象站的理想选择;带宽低,只能传传感器数据,还要额外的无线电硬件 |
常见问题
ESP32 能连 eduroam 或其他 WPA2-Enterprise 的 WiFi 吗?
作为课堂上的实用路径,不能。WPA2-Enterprise 需要一个逐用户的身份,并拿到 RADIUS 服务器上核验,而业余固件和图形化编程环境都没有支持这套流程。确实有少数进阶固件版本在尝试,但效果脆弱,而且换一个网络就是另一回事。还是规划一个不依赖它的架构吧。
ESP32 能过强制门户吗?
不能。强制门户等的是一个坐在浏览器前的人去同意条款或者输入验证码。无头板子可以和接入点关联,却永远走不完登录流程,于是一直被困在围墙花园里。要么向 IT 部门申请一个 PSK 网络,要么用一台网桥设备来持有这条连接。
为什么 ESP32 扫描时能看到我的 WiFi,连接却报 NO_AP_FOUND?
如果这发生在家里或农场,路由器多半只支持 WPA1/TKIP。新版 ESP32 固件出于安全原因拒绝这类网络,尽管扫描结果里它们照样会列出来。把路由器的加密方式改成 WPA2(或者换掉路由器),板子就能连上了。
到底该向学校 IT 部门申请什么?
申请一个建在隔离物联网 VLAN 上的 WPA2-PSK SSID:只通外网,限定在你提供的 MAC 白名单之内,可以限速,也只在上课时间开启。这些措辞表明你要的是一套边界清晰的标准配置,而不是让人家给安全策略开口子,而且每一项都能直接对应到 IT 部门手上已有的工具。
完全没有 WiFi,学生还能学物联网吗?
能。板子之间可以在没有路由器的 ESP-NOW 自组网上实时交换传感器数据,可以先离线记录、之后再同步,也可以通过 BLE 配对。而像 sheen verse 这样的浏览器仿真器跑的是真正的 MicroPython,所以在任何一台设备需要联网之前,全班就已经能构建和测试物联网逻辑了。
课堂物联网可以用手机热点吗?
技术上它几乎总能用,因为那就是一个普通的 2.4 GHz WPA2-PSK 网络。允不允许则取决于学校的网络使用规范;很多校园禁止私设无线接入点。先问一声。如果 IT 部门能接受热点,那他们通常也能接受给你开一个正经的 PSK SSID,而后者更好。



