电子说
这篇文章来源于DevicePlus.com英语网站的翻译稿。
点击这里阅读 LoRaLib 库 >
您有没有想过如何让Arduino实现几百米的无线通信距离?有没有想过要创建一个小型物联网设备,但是后来因为远程通信需要较大功率而放弃?或者是否想过构建一个能够在外面探索世界的机器人,而您则坐在椅子上悠然自得地遥控?别急,现在有解决方案了!在本文中,我将向您介绍“LoRenz-Arduino开发板”,不仅能完成所有这些任务,而且还能给您带来更多功能。此外,更重要的是,LoRenz软件和硬件都是完全开源的!
硬件
2块 Arduino UNO/Mega
2套 LoRenz Rev. B 开发板和模块分组板(Eagle和Fritzing文件请参阅 GitHub)
2个 SX1278 模块
该开发板到底能做什么?它与Arduino UNO和Arduino ega兼容,能够提供数百米的通信距离,同时传输时的功率成本低至80mA。这仅相当于5个普通LED的功耗。除此之外,我还构建了一个库,这使得整套系统非常容易使用,即使对于初学者也是如此。真的!您想发送消息吗?输入一个命令!好了,发送成功!
法律免责声明
我们开始之前,我必须声明:虽然LoRa技术的通信频率为免许可频段,比如433MHz或868MHz等(通常叫做ISM – 工业、科学 和 医疗),但是您居住的地区仍然可能会受到法律限制。限制可能包括功率输出限制、带宽限制,甚至传输和接收的数据类型都受限。我不知道读者住在哪个州或哪个国家,因此我只能给您最一般的建议:
请始终遵守您所在地区的现行法律规定!
使用LoRenz开发板或LoRaLib时,作者和DevicePlus.com都不对您的操作承担任何责任。
现在,如果大家遵守相关法律,那么我们就从开发板的核心功能——LoRa调制——开始讲起。
LoRa 调制
LoRa –– Long Range 的简写——是一种巧妙的电磁信号调制方式。信号调制就是将更多信息通过编码载入无线信号中,这种方式本身非常聪明。调制的历史比较悠久,事实上,它们可以追溯到19世纪末期和无线电发明期间。事实上,由于收音机的存在,大多数人都熟悉“调制”这个术语:大家总听说过AM(幅度调制)或FM(频率调制)吧?幅度调制时,信息通过载波幅度的变化进行编码。类似地,频率调制时,载波的频率会发生变化。使用调制的主要原因是我们可以将低频信息(比如语音或音乐)“拟合”到高频载波中。
图1.幅度调制和频率调制
那么,LoRa是哪一种调制?两者都不是。LoRa是一种不同类型的调制,尽管它与FM有一些相似之处。LoRa实际上是CSS调制——啁啾扩频调制。该技术本身是专有技术,并具有专利,但是基本原则是利用啁啾对信息进行编码——载波频率随时间逐渐增加或减少。
图2.啁啾扩频调制
这种调制抗噪声甚至是多普勒效应能力很强,因此在低功率长距离通信时非常有用。幸运的是,采用这种技术的模块非常便宜且易于使用。最流行的当属Semtech制造的SX1278芯片,搭载这种芯片的模块价格可低至7美元。请用Google搜索“SX1278模块”,您会看到很多出售该产品的商店。
现在我们已经了解了LoRa是什么以及如何获得,那么我们来看一下开发板本身——首先,如何获得这种开发板呢?
LoRenz 开发板
不幸的是,您无法从商店购买这种开发板,因为没有人生产。该开发板完全是定制的,所以必须从我的 GitHub 下载Eagle文件,购买所有元件、找个地方加工PCB板,然后将所有元件焊接在一起。板上元件的总价应该在20美元左右,所以该开发板并不昂贵。事实上,在我开发这个产品时,最昂贵的部分实际上是PCB的运费。但即使包括运费,每块开发板的价格也不应超过30美元——当然,这取决于您居住的地区。
接下来我们看一下开发板上的所有元件及其功能:
3.3 V 电源稳压器 由于Arduino板载电源只能提供150 mA的电流,因此我决定添加一个单独的1117稳压器——能够提供至少800 mA的电流。这比理论上的功率要大得多,然而,留些余地总是更好一些。
螺丝接线端 通过该端子您可以用几乎任何类型的电池为开发板供电!允许的电压范围是6-20V,但是该电源同样也为Arduino供电,所以我建议使用7到12V之间的电池。
UNO/Mega 排针 SX1278模块通过SPI总线与Arduino进行通信。该总线在Arduino UNO上用的是10-13引脚,但是在Mega上却是50-52引脚。我想让开发板尽可能通用,因此我添加了这个排针接头。使用Arduino UNO时,只需保留所有三对短接跳线。使用Mega时,请移除短路跳线并根据下图连接相应引脚即可。
图3.将LoRenz开发板连至Arduino Mega
从器件选择排针 这可能有点矫枉过正,但是如果万一您想在单个Arduino上使用多个LoRenz开发板呢?凭借这个排针,您最多可以使用四块(!)开发板!只需短接不同位置即可。
SX1278 模块插槽 您可以用此插槽将任何类型的SX1278模块连至开发板,只需确保电源为3.3V。我建议使用精密插槽接头,保持开发板整体高度越小越好。
逻辑电平转换器 据我所知,目前市场上的所有SX1278模块都使用3.3V逻辑。要连接Arduino——用的是5V逻辑,我们需要进行某种逻辑电平转换。这就是这两个IC的作用。其中一个将Arduino输出从5 V转换为3.3 V,另一个将SX1278输出从3.3 V转换为5 V。这样,即使电池电量较低,系统也非常稳定。
LED指示灯 为了指示SX1278的活动状态,我在开发板上设置了一个LED指示灯。要启用LED,您必须用焊锡短接EN焊盘。如果之后不想用LED指示灯了,只需把EN焊盘的焊锡去掉,LED就不会再消耗宝贵的电流。
实验区域 我在开发板上的空余地方设计了一个实验区域,方便大家添加额外的设计。该区域自带3.3V、5V和GND连接!
图4.LoRenz Rev.B开发板
您还需要一块扩展板。由于市场上有几种不同类型的SX1278模块,我们需要某种“适配器”,以便将所有模块都能连至LoRenz开发板。这就是这块小板子的作用。我们将SX1278模块焊接在扩展板上,然后整体将其插入开发板的插槽中即可。这些扩展板还配有一个同轴电缆接头,可以连接外部天线以获得更长的通信距离!
图5.空扩展板(左)和SX1278模块焊接完毕的扩展板(右)
这些部件看起来还不错,对吧?但是,现在我们还缺少一个非常重要的部分。硬件需要软件才能工作。在下一篇文章中,我将介绍 LoRaLib——我专门为SX1278开发的开源Arduino库。凭借该用户友好API,我们就可以尝试开展LoRa通信了。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !