ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

从红外到Wi-Fi与蓝牙:无线通信入门原理与实战选型

从红外到Wi-Fi与蓝牙:无线通信入门原理与实战选型 搞硬件的人大概都有过这样的经历面包板上插了一堆线明明只需要把数据从A点送到B点却要在地板上拉出长长的一串杜邦线稍微一动就松脱最后干脆被线缆绊得没脾气。直到你给两个单片机都装上无线模块数据凭空从一端跳到另一端那种魔法成真的感觉会让很多初学者瞬间对无线通信上瘾。这篇电子世界的奇妙冒险16要聊的正是从红外到Wi-Fi、蓝牙的无线通信入门。我会从最基础的无线原理讲起再分别拆解红外、Wi-Fi、蓝牙这三种最常见的方案最后补充一些其他无线技术和选型思路。无论你是大一刚接触单片机还是自己鼓捣小项目的爱好者只要按照这个顺序走一遍你就能在动手实验中搞清楚无线这件事到底是怎么发生的。1. 先搞清楚一件事无线通信到底是怎么凭空传数据的很多初学者对无线通信的第一反应是这太玄了因为看不见摸不着。但往深了说无线通信的本质和有线通信没有区别——都是把信息编码成信号然后让信号从发送端到达接收端。有线靠铜线里的电流光纤靠玻璃里的光无线则靠电磁波在空气中的传播。1.1 电磁波和频率到底意味着什么电磁波是一层层电场和磁场交替变化的波动它在真空中也能传播。日常说的无线电、红外、蓝牙、Wi-Fi本质上都是电磁波只不过频率不同。频率的单位是赫兹Hz表示一秒内波重复了多少次。简单类比你在水面扔一块石头涟漪是一圈圈往外扩散的每秒产生多少个波峰就是波动的频率。电磁波也是一样Wi-Fi常用的2.4GHz意思是每秒钟电磁场要变化24亿次。频率越高单个波携带的能量越集中理论上同一时间能塞进去的数据也就越多但同时它的直射性更强、穿墙能力更差。这个频率越高、数据越快但越容易受阻的关系是理解后面所有无线技术的关键。1.2 把数据装到电磁波上调制和解调电磁波本身只是一段稳定的载波要让它携带数据就得改变它的某个属性。改变振幅的叫调幅改变频率的叫调频改变相位的叫调相。把数据加在载波上的过程叫调制接收端再把数据提取出来叫解调。红外遥控用的就是一种调制方案先把按键码编码成一段脉冲信号再用38kHz左右的载波背着这段脉冲发出去。Wi-Fi则复杂得多除了调制以外还要考虑多径干扰、频带分配、加密等问题。但不管多复杂前提都是一样的发送方和接收方约定好同一套规则。所以我在做无线实验时最常提醒自己的一句话是无线的本质不是凭空传输而是双方在同一个频率和同一个协议下进行的一场默契对话。如果频率不对或者协议不一致哪怕信号就在眼前你也收不到一个字。2. 红外遥控动手成本最低的无线通信入门课如果说Wi-Fi是高速公路那红外就是乡间小路——窄但有独特的存在价值。红外的波长在电磁波谱里位于可见光和无线电之间物理特性上具有很强的直线传播倾向无法穿透墙壁但这恰恰是它的优势几乎不会串到隔壁房间去。2.1 38kHz载波和NEC协议的套路市面上绝大多数红外遥控器都工作在38kHz的载波频率上。载波的意思是真正传递信息的是有无载波的一串时间间隔而不是载波本身。发送端把按键数据编码成高电平持续多久、低电平持续多久的组合然后用38kHz的载波把它放大发出去。接收端只要检测到特定时长的高/低电平序列就能还原出按键码。最常见的编码协议是NEC协议。它规定了一段引导码9ms高电平加4.5ms低电平后面跟着地址码、地址反码、按键码和按键反码。反码是为了校验——如果某一位反号对不上接收端就知道数据被干扰了直接丢弃。这种正码加反码的校验思路在低速无线通信里非常实用也值得你在自己的协议设计里借鉴。提示自己做红外发射时38kHz载波并不需要特别精确。我实测过用普通定时器产生36kHz到40kHz的信号接收头都能正常解码。但注意别偏离太远偏离到42kHz以上时灵敏度会明显下降距离缩短一大截。2.2 用红外模块做一个无线按键的完整路径入门实验可以从一个最简单的目标开始用红外遥控器控制另一块板子上的LED。你需要的材料只有三样红外接收头常见的是三脚贴片或直插封装、一个遥控器家里废旧的机顶盒遥控器就行、一块开发板。先把接收头接好通常一脚接地、二脚接电源、三脚接数据引脚。然后用一个红外解码库读取数据。你会发现按下遥控器不同的按键串口打印出的十六进制码不同。把其中某个键的码记录下来写一段如果收到码就翻转LED的逻辑实验就通了。这个实验最大的价值不是控制一个LED而是让你体会一次完整的无线数据链路编码、调制、发射、接收、解调、校验、执行。后来我做Wi-Fi和蓝牙时发现虽然协议复杂得多但基本的链路逻辑并没有跳出这套框架。2.3 红外的局限和它的幸存理由红外的缺点是明摆着的必须对准、不能穿墙、传输距离短。手机红外遥控也得把发射管对着家电才能操作。但正因为这些限制红外在很多场合仍然好用。比如客厅里所有家电都用红外遥控各家互不干扰不像Wi-Fi和蓝牙那样有信道冲突和配对问题。又比如在简易机器人里红外寻迹模块成本和功耗都很低用电池跑很久都没问题。如果你想做一个不需要联网的、点对点的、低成本的小装置红外依然是值得优先考虑的选择。3. Wi-Fi没那么玄从更换手机连不上到模块自己发包Wi-Fi是很多人第一个听说过的无线技术也是做联网项目时几乎绕不开的选择。它的本质是让设备接入一个局域网并且通过路由器与互联网连通。对电子爱好者来说最有吸引力的不是连手机而是让单片机自己说话、自己上报数据。3.1 看懂Wi-Fi的常用概念AP、STA、SSID、信道接触Wi-Fi模块时你会频繁看到这些缩写AP接入点也就是发出Wi-Fi信号的路由器、STA站点也就是连接路由器的设备、SSIDWi-Fi名称、信道工作频段内的细分通道。如果把Wi-Fi比作一个对讲机组网AP是主台负责管理和转发STA是成员入网前得喊一声申请加入每个信道相当于不同的通话频道相邻设备要尽量避开同一个频道。常见的Wi-Fi模块一般支持三种模式Station模式连路由器、AP模式自己发Wi-Fi信号让别人连、STAAP共存模式一边连互联网一边提供局域网接入。实操时我最常用的还是Station模式让模块连上家里的路由器再通过MQTT或HTTP把数据发到服务器。3.2 第一次让Wi-Fi模块联网最容易踩的三个坑我第一次做Wi-Fi联网实验时用的是某款ESP系列模块走完固件烧录后问题一个接一个。第一个坑是供电不足。Wi-Fi发射的瞬间电流很大模块在发包时可能从几十毫安跳到几百毫安。如果用USB转串口的小板子直接供电经常出现连接正常、一发送就重启的现象。解决方法是外接一个足够稳的稳压电源或者在电源旁边并联一颗几百微法的电容。第二个坑是天线区域不能盖铜。有些模块的天线直接印在PCB上如果安装时把它压在金属外壳下面信号强度会掉得让你怀疑人生。最好的做法是让天线悬空朝外至少不要贴上金属件。第三个坑是串口乱码。模块出厂时的波特率可能和资料里写的不一样我第一次接通后发现全是乱码最后逐档试才发现实际波特率是74880。这种预期和实际不一致的问题在国产模块上特别常见遇到乱码先别怀疑硬件坏了把波特率档位全部试一遍再说。3.3 从连接路由器到设备自己上报数据联网只是第一步真正有用的是让设备主动发数据。简单方案是用HTTP GET请求把传感器数值拼在URL里发给一个服务器脚本。但更稳定的是MQTT协议它是一种基于发布/订阅模式的轻量级消息协议适合低带宽设备。MQTT里的核心概念是主题。一个设备可以往传感器/温度这个主题推送数据另一个设备订阅这个主题就能收到。这样的好处是耦合度低——发数据的设备不用关心谁在收数据。我在做模拟项目X时用一块Wi-Fi模块采集温湿度每10秒通过MQTT上报一次。设备端逻辑很简单连Wi-Fi连Broker然后循环发布数据。但真正折磨人的不是这些代码而是网络环境的不稳定。家里路由器如果开启了5GHz和2.4GHz混合模式模块可能只支持2.4GHz明明手机连得飞快模块却一直在找不到AP的循环里。手动把路由器设成双频分开问题立即解决。Wi-Fi模块最大的坑在于你以为连上了就万事大吉其实设备会在某个时刻无声无息地断开连接。断线重连机制必须在做项目时就考虑进去否则你的设备可能在运行十几个小时后突然变哑巴。4. 蓝牙的真实分工经典蓝牙和BLE压根不是一回事蓝牙这个名字听起来比Wi-Fi亲切但实际使用时的困惑一点不比Wi-Fi少。最大的误区是很多人以为蓝牙就是蓝牙拿着只能做低功耗数据收发的BLE模块去干低延迟音频传输的活最后发现完全不是那么回事。4.1 经典蓝牙和BLE的分工逻辑蓝牙在早期版本里只有一套标准后来为了满足低功耗应用发展出了两个分支经典蓝牙BR/EDR和低功耗蓝牙BLE。经典蓝牙的特点是传输速率高、延迟低适合连续的数据流比如蓝牙耳机、音箱、手柄。它的连接方式是持续保持链路所以功耗高不适合电池供电的小传感器。BLE的特点是功耗极低设备可以大部分时间处于休眠状态只在需要广播或接收时醒来一小会儿。但它的数据吞吐量比经典蓝牙小得多更适合周期性传输小量数据比如心率计、温湿度计、防丢器。简单记法音箱用经典蓝牙手表用BLE。4.2 BLE的广播、扫描和连接三部曲BLE的工作方式非常有趣不是先连接再传数据而是先广播。设备进入广播状态后会周期性地发出包含设备名、服务UUID等信息的广播包。手机或模块作为扫描端不停监听周围信道里的广播包。当扫描到目标设备后两边才会发起连接进入通信状态。所以BLE项目最常见的流程是模块一上电就广播手机App去扫描扫描到后点击连接连接成功后互相收发数据。这个流程和红外、Wi-Fi都不一样——蓝牙设备要先喊一嗓子让周围知道自己存在再和感兴趣的一方建立稳定连接。我做BLE实验时最直观的感受是广播包的设计很有讲究。广播包里能塞的数据很少通常只有几十字节所以设备名不能太长服务UUID也要提前规划好。如果你拿着手机厂商提供的调试App看广播包就会发现有个厂商自定义数据字段那才是真正放业务数据的地方。4.3 低功耗要省到什么程度一个实测数据很多人听到低功耗觉得只是比较省电实际测试后往往会惊讶。我用一块BLE模块配合普通纽扣电池做过一周测试模块每秒广播一次每次唤醒后读取一个传感器值并发出广播包其余时间全部深度睡眠。一周后测电池电压几乎还是满电。如果把广播间隔从1秒改成5秒理论续航能到数月甚至一年以上。相比之下同样用Wi-Fi模块完成类似任务电池撑几个小时就枯竭了。这就是为什么可穿戴设备和智能家居传感器更愿意用BLE。注意BLE广播间隔越长设备越省电但发现设备需要的扫描时间也越长。如果你想做到按下按钮立刻连接广播间隔就不要设得太长。省电和响应速度之间永远是取舍没有又省电又秒连的白白便宜。5. 剩下那些无线方案ZigBee、433MHz、LoRa和选型思路红外、Wi-Fi、蓝牙是三种最常见的入门方案但做项目时你还会遇到一堆其他无线技术。了解它们各自的位置能帮助你在选型时不至于跑偏。5.1 四种无线技术放在一张表里看技术典型频率传输距离数据速率功耗适合场景红外38kHz几米内需对准几十kbps极低遥控、近距点对点Wi-Fi2.4/5GHz几十米穿墙一般高Mbps级高联网设备、摄像头、交互蓝牙/BLE2.4GHz10-30米BLE约1-2Mbps低可穿戴、传感器ZigBee2.4GHz10-100米250kbps低智能家居组网433MHz433MHz几百米甚至更远低kbps级低遥控开关、门禁、传感器LoRa几百MHz几公里到十几公里极低kbps级极低户外广域物联网看到这张表你会发现没有任何一种方案是全能的。Wi-Fi快但耗电LoRa远但很慢红外便宜但有方向性。选型的第一步不是哪个技术听起来高级而是我的数据到底需要走多远、多久、多大。5.2 433MHz和LoRa在什么时候用得上如果你只是做一个遥控开关比如远程开灯、控制水泵433MHz模块是性价比之王。这种模块的使用方式接近无线串口一端接发送脚另一端接接收脚透明传输连协议都不用自己组。缺点是速率极低、抗干扰一般不适合传图像或大数据。LoRa则完全是为远距离、小数据、长续航而生的。它用扩频技术在低速率下换来了惊人的接收灵敏度在开阔地带做到几公里很轻松。不过LoRa模块的价格和复杂度都更高通常还要配合网关使用。我见过模拟项目X里的户外农业监测方案就是用LoRa把每个田块的土壤湿度数据集中到网关再通过Wi-Fi或4G上传云端。5.3 我的选型心法先定距离和功耗再选技术每次拿到一个新项目我会先问三个问题数据要传多远多久传一次设备靠什么供电如果是同一间屋子里遥控设备红外或者433MHz就够。如果要联网云端只能选Wi-Fi或用网关转网的其他无线方案。如果用电池且要求一年不换BLE、ZigBee、LoRa才是候选。等把这三个问题想清楚再去比对技术参数基本不会犯方向性错误。这种先约束再选型的思路比一上来就想玩最新的技术要靠谱得多。无线通信入门最大的收获不是把每种协议都背熟而是学会根据实际场景做取舍。6. 做完一轮红外、Wi-Fi、蓝牙实验后我想提醒你几件事文章最后我想把这段时间实验里最实在的几个体会写下来。它们不算高深理论但都是容易让新手翻车的细节。6.1 无线实验的调试顺序先本地后远端先单向后双向我的红外实验第一步其实是直接用开发板读遥控器按键码而不是马上接发射管。Wi-Fi模块也先在串口里打印连接状态再考虑加传感器逻辑。无线链路一旦出问题排查起来比有线麻烦得多因为你看不见信号去哪儿了。所以调试时一定要把链路是否通和业务逻辑对不对分开一层一层验。具体做法是先用串口或调试工具确认设备端已经收到了数据再确认设备端发出的数据能被另一端收到。每一步都打印日志日志内容要带上时间戳和关键变量。无线调试最忌讳猜一定要用数据说话。6.2 安全、功耗和天线位置都是项目级问题不是代码问题不少初学者喜欢把无线问题全部归咎于代码或模块坏。但我见过很多案例最终原因其实是天线贴在了金属外壳上、电池电压不够、或者设备在弱信号区反复重连导致功耗飙升。这些问题在实验室里不常见一旦装进真实外壳、放到真实环境马上就暴露出来。所以我建议你在做任何项目前先给无线模块画出三件事供电线路的峰值电流余量、天线摆放位置、设备睡眠时间安排。把这三件事写进需求而不是等出了问题再补会少走很多弯路。6.3 别只学一种无线技术比较着学记得最牢红外、Wi-Fi、蓝牙这三样东西单独看各有各的协议细节但放在一起对比着学会发现很多规律是通用的。比如红外靠电平持续时间编码BLE靠广播包格式组织数据Wi-Fi靠帧和握手流程维持连接——本质上都是在定义什么样的波形/字段代表什么含义。我开始时也觉得学完Wi-Fi再学蓝牙很累但后来发现因为有了红外实验的底子理解蓝牙的广播和连接反而快了很多。所以我的建议是入门阶段不要贪多就按红外、Wi-Fi、蓝牙这个顺序走一遍把三个实验都做通之后再看其他无线技术都会觉得似曾相识。我自己做了一轮下来最大的感受倒不是我会用三种无线模块了而是我终于理解为什么无线通信讲究协议。那些看似烦琐的帧格式、校验码、握手流程全都是为了保证在充满噪声的环境里双方依然能准确传递一个比特。把这个道理刻进脑子里比背任何协议表格都值钱。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表