HC-12 433MHz无线串口模块怎么接线?Arduino两块板1公里级无线通信串口透传避坑

2026-10-19 09:45:15 36阅读

想让两块Arduino隔着一两百米甚至上千米互相传数据,又不想写复杂的2.4G协议,HC-12就是那个“傻瓜式”的答案。它工作在433兆赫兹ISM频段,内部是Si4463射频芯片加一颗单片机,对外就是一个透明串口——你发什么它就无线发什么,接收端原样吐出来,号称通讯距离可达上千米。这篇讲接线、配置和代码。

HC-12引脚和接线

模块引脚不多:VCC、GND、TXD、RXD,再加一个SET(配置脚)和一根天线。接Arduino是交叉连法——模块TXD接Arduino的接收脚、模块RXD接Arduino的发送脚。用软串口时,常在Arduino上用D10做RX、D11做TX,VCC接5V、GND共地。想进AT配置模式时把SET拉低即可,平时悬空或拉高就正常透传。

HC-12无线模块与Arduino UNO接线及引脚定义图

这张图把接线和引脚定义都摆了清楚:VCC进电源、GND共地、TXD交叉到Arduino的RX、RXD交叉到TX,SET空着。两块板各接一块HC-12,默认同频同波特率,通电就能互相“喊话”。

两块Arduino无线串口通信的代码

思路极简——把要发的数据丢给HC-12挂的软串口,收到就转发到串口监视器。用SoftwareSerial定义hc12(10,11),开始9600波特率;loop里如果USB串口有输入就写进hc12,反过来hc12有数据就打印到USB串口。同一份代码烧给两块板子,一块打字另一块就能看到,一个无线透明链路就成了。默认波特率、频道都一样,两块板出厂就能直接对通。

两个Arduino各接HC-12模块实现433MHz无线串口通信的场景

这就是一套典型的双节点无线串口实景——两个Arduino各带一块HC-12,中间没有线,靠433MHz把数据隔空传过去。想传传感器数据,就用逗号把它们拼成一个字符串发过去,接收端再按逗号拆开解析,一个简易无线监测站就搭起来了。

配置和距离的三个要点

一是想换波特率或频道、调发射功率,把SET拉低重启进入AT模式,发AT+Cxxx、AT+FUx这类指令配置。注意AT模式下波特率固定9600。二是想拉长距离:官方标称1到1.8公里,实际城市环境有遮挡时大多只有二三百米到一公里,想远就把天线竖高、选空旷场地,或切到FU4长距离模式(波特率降到500,速度慢但距离近翻倍)。三是模块是半双工,别在发和收同时高频率冲突,串口塞太满容易丢字节——按场景控制发送频率或加帧结构带校验,最稳。


作者:开源复现员
链接:https://www.aiddithome.com/p/8ef60debc727.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
入门没多久的新手
1楼 · 2026-10-19 09:45:17

FU4长距离模式要降波特率,远是远了但别太贪速度

线比代码多
2楼 · 2026-10-19 09:45:17

半双工,说话别同时发太猛,加个简单帧结构带校验最稳

拆开看看再说
3楼 · 2026-10-19 09:45:16

交叉接TXD/RXD最容易记反,接反了两块板互听不见

刷着刷着入坑了
4楼 · 2026-10-19 09:45:16

城市里遮挡多,实测距离没标称那么玄,天线竖高会好很多