Firefox 151 里用 Web Serial API 直接连硬件
Firefox 151 新功能:浏览器直连硬件,真的来了
一直想搞硬件项目,却被各种麻烦卡住?装驱动、装软件、兼容性问题……Firefox 151 终于把 Web Serial API 完整支持了。以后在浏览器里就能直接跟硬件对话,这事听起来挺让人期待的。
这到底是什么功能?
Web Serial API 允许网页里的 JavaScript 直接跟串口设备通信。简单说,只要是走 USB 或蓝牙、用串口协议的设备,都能连上。比如 ESP32、Arduino、树莓派 Pico、3D 打印机、乐高设备,还有各种物联网小玩意儿。
以前你得先下对应平台的软件、装驱动,还得祈祷别出问题。现在呢?写几行 JS,浏览器弹个提示让你授权,就能直接连上设备。
实际用处到底有多大?
这功能已经开始落地了,不只是实验室里的玩具。
刷 CircuitPython 固件:Adafruit 用 Web Serial 把刷机流程大幅简化。你只要把 code.py 文件拖到设备上,刷新浏览器,就能直接在单片机上跑 Python。以前要折腾半天,现在基本不用想太多。
监控设备功耗:Mozilla 的工程师做了一个网页版的功率计,能实时读取 USB 功率计的数据,还能直接导入 Firefox Profiler。想看项目耗电情况,点个链接就行。
Home Assistant 智能家居:ESPHome 现在支持通过 Web Serial 快速刷机和配置设备。以前要花一整天搞定,现在可能下午就能搞完。
硬件实时调试:有人做了一个叫 Page Playground 的工具,把网页编辑和硬件反馈结合在一起。浏览器既是编辑器,也是调试工具。
安全吗?Mozilla 怎么处理的
很多人担心网页会不会乱接硬件。Mozilla 在这点上处理得挺谨慎。
权限机制是这样的:
- 默认情况下,网站看不到你连了什么设备
- 想访问串口,必须调用
navigator.serial.requestPort() - 这时浏览器会弹出提示,让你选具体哪个端口
- 授权是按站点、按端口来的,不会一股脑全给
- 网站拿不到设备列表,也没法用来指纹追踪
就像浏览器请求摄像头权限一样,用户说了算,过程透明。
开发者能得到什么好处?
原型开发更快:不用每次都编译、上传固件,直接在网页上改就能看到效果。
跨平台统一:Mac、Windows、Linux 都用同一套代码,不再为“只在我机器上好使”头疼。
协作更方便:把调试界面分享给别人,远程一起调试硬件项目,现在也变得可行。
迭代更快:实时看数据、实时改配置、实时反馈。
教学更简单:老师可以做互动课件,让学生直接在浏览器里改硬件行为。不用装驱动,不用配环境。
哪些设备能用?
几乎所有走串口协议的设备都能用:
- ESP32 / ESP8266
- 树莓派 Pico
- 3D 打印机
- 乐高设备
- 功率计和传感器
- 你自己做的自定义串口设备
只要设备在系统里显示为 COM 口或 /dev/ttyUSB*,Web Serial 基本就能支持。
对域名和托管的启发
硬件和网页越来越走在一起。以后可能用浏览器就能直接控制硬件,开发界面也可以用 AI 帮忙生成代码和建议。Firefox 支持 Web Serial,正好符合我们一直看好的趋势——网页平台在不断扩展边界。
如何开始尝试?
- 更新到 Firefox 151 或更高版本(目前只支持桌面版)
- 试试 Adafruit 的 Web Serial 工具
- 去 MDN 看 Web Serial 的官方文档
- 买一块便宜的 ESP32(大概 30 多块钱)
- 写点 JavaScript 开始实验
门槛已经低到几乎没有了。你一直想做的硬件项目,是不是该开始动了?