想让两个Arduino隔几百米甚至几公里还能传数据,普通2.4G模块(如nRF24L01)穿墙就不够使了。LoRa以其低功率、长距离成了远传现场的常客,Ra-02(SX1278,433MHz)就是常见的收发模块。这篇把SPI接线、库收发和供电避坑一次讲清楚。

Ra-02怎么接线:走SPI加控制脚
Ra-02用SPI通信,但控制脚不少:NSS(拉低选中)、SCK、MOSI、MISO、RST复位和DIO0中断输出接到Arduino,供电是3.3V。以UNO为例:NSS接D10、SCK接D13、MOSI接D11、MISO接D12、RST接D9(或任意数字脚)、DIO0接D2;VCC接3.3V、GND接地。务必用3.3V供电,5V会烧模块。

这张接线图把SPI四根线加上RST、DIO0、供电都标了出来。DIO0一般接到能触发中断的引脚,用来告诉Arduino“数据接收完成”。跳线别弄混,SPI线序错了收发就会静默失败。
代码思路:RadioLib一发一收
推荐用RadioLib库,封装得很省事:两端都先include并构建LoRa对象,频率设在433MHz、把带宽/扩频因子/编码率设成一致的参数(两端必须完全相同)。发送端用transmit()把字符串直接发出去,接收端注册一个接收中断回调,在DIO0触发时调用readData()把收到的字节读出来,再用Serial打印。这套流程清清爽爽,几十行就能跑通。
避坑三个点
一是3.3V供电别偷懒,电流也别小(发射瞬间峰值大),供电不足会收发不稳定;二是两端射频参数必须完全一致,frequency、bandwidth、spreadingFactor、codingRate、syncWord有一项对不上就收不到;三是433MHz模块在国内没申请执照只适合本地实验场景,户外远距离实测“标志物距离”时天线方向也对齐会好很多。做农田传感器、无线收发小站都是很典型的长距练手。







SPI就四根线+NSS+几十位,线序别搞混,乱了就静默失败
3.3V供电别小电流,发射瞬间峰值大,供电不足收发会飘
433在国内没执照,本地实验可以,户外远传提前了解下频段
两端射频参数必须一模一样,frequency和扩频因子差一点都收不到