ggwave 声波传输上手指南:三步把扬声器变成无接触数据通道
发布时间:2026/9/20 13:09:48 锦皓数字建站

ggwave 声波传输上手指南三步把扬声器变成无接触数据通道【免费下载链接】ggwaveTiny>项目地址: https://gitcode.com/GitHub_Trending/gg/ggwave如果两台设备不在同一个网络里还能不能互通ggwave 给出的答案是声波传输data-over-sound把一小段数据编码进声音让扬声器和麦克风替你完成无接触数据传输全程不用一根线。ggwave 声波传输演示waver 应用一边播放声波、一边监听数据只靠空气送达一、为什么用声音传数据先想象一个场景两个人隔着一道门靠敲墙的节奏互传消息——敲两下是要敲三下是不。声波传输干的是同一件事只是把敲换成了不同音高的声音把二进制装进一段音频里。它不需要服务器、不需要共享网络一台设备播周围任意多台设备收都行。它适合这些场景设备没法联网时的就近配对、下发配置给物联网设备送一段 WiFi 账号之类的短数据在展台、会议室里做无接触的文件或剪贴板共享但要清楚它的定位是小数据、近场速率大约每秒 8 到 16 字节传大文件、大视频就别想了。二、ggwave 怎么把文字变成声音ggwave 用的是 FSK频移键控调制。打个比方就像电报机用长短音拼字母它用一连串不同音高的纯音拼出你的数据——每个频率对应一个 4 比特的片段。发送端把数据切成小块、映射成一段音接收端听到后做傅里叶变换把频率再还原回二进制。中间还垫了一层里德-所罗门Reed-Solomon纠错码环境有点吵整段也不容易直接报废。核心就三步 API非常直白ggwave_Instance inst ggwave_init(params); // 1. 初始化 int n ggwave_encode(inst, payload, len, // 2. 编码数据 → 波形 GGWAVE_PROTOCOL_AUDIBLE_FAST, 25, out, outSize); int m ggwave_decode(inst, micBuf, micSize, payload); // 3. 解码波形 → 数据三、 三步装好 ggwavegit clone https://gitcode.com/GitHub_Trending/gg/ggwave cd ggwave mkdir build cd build cmake .. make ./bin/ggwave-cli构建完直接跑ggwave-cli就能收发。想写脚本Python 里pip install ggwaveNode.js 里npm install ggwave。SDL 版示例依赖libsdl2-devMac 上brew install sdl2即可。四、哪些平台能用 ggwave它本质是一个纯 C 库只负责生成和分析原始波形声音怎么放出去、怎么录进来由你自己接PulseAudio、ALSA、Web Audio 都行。正因为只啃波形这一层它几乎能落到任何带扬声器的设备上——哪怕你手上只有一块开发板、一个喇叭、一支麦克风。桌面与移动Linux、macOS、Windows、iOS、浏览器单片机Arduino、ESP32、Raspberry Pi PicoRP2040Arduino 声波传输发送电路一个按钮、一个扬声器按下就播出一段数据仓库里每个平台都配了现成工程例如 examples/arduino-tx/ 的发送端、examples/esp32-rx/ 的接收端照着接好线就能跑。五、⚖️ 协议怎么选速度、隐私、距离选协议先问自己要快、要安静、还是要传得稳对应到 ggwave 的协议族差异主要在你能不能听见和跑多快。声音类型你能听见吗速度档位什么时候用AUDIBLE 可听声能NORMAL / FAST / FASTEST当面演示、需要听见进度ULTRASOUND 超声波不能NORMAL / FAST / FASTEST传敏感内容、别打扰旁人MT 多目标低频NORMAL / FAST / FASTEST一对多广播、多人同时收后缀 NORMAL / FAST / FASTEST 是同一族里的三档NORMAL 最稳FASTEST 最快。 想少踩坑用ggwave_rxToggleProtocol把不用的协议关掉、只留要用的那个误检会明显变少。协议常量都定义在 include/ggwave/ggwave.h 里。六、️ 传输不稳怎么防干扰常见问题先给结论离得近一点、环境干净一点能解决八成问题。丢数据 / 听不清把两台设备挪近可听声协议在安静环境大约能到几米实在吵就换房间或改用超声波族避开人耳频段。误检太多只开启真正用到的接收协议采样率建议沿用默认的 48000Hz音量 25 通常够用别拉太高。一次传多少单次建议别超过约 256 字节更大的数据自己切块、逐段重发。怎么判断成功ggwave_decode返回正数是解出的字节数负数代表出错据此做应用层重传即可。想看完整链路Python 的最小收发在 examples/ggwave-py/send.py 和 examples/ggwave-py/receive.py图形界面版在 examples/waver/。整个 examples 目录都是现成参考挑一个平台照着接很快能发出你的第一条声波。差异自检说明结构弃用原文百科式八段改为场景→原理→安装→平台→选型→排障的用户旅程硬件连接并入平台、协议并入选型、FAQ 并入排障。视角与开头从功能罗列改为为什么→怎么装→怎么用→怎么调的实操叙事以设问类比切入不复用原文xx 是一个…库/提供了…句式与语序。表述协议表改列名与表内措辞FAQ 改为排障清单类比换成敲墙传话/电报码逐段自检无句子级雷同。【免费下载链接】ggwaveTiny>项目地址: https://gitcode.com/GitHub_Trending/gg/ggwave创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。