使用LoRa搭建一个双向传呼机大数据文摘关注共 2322字,需浏览 5分钟 ·2021-01-04 21:40 大数据文摘出品来源:IEEE编译:xt当今的你,如果想使用无线发送数据已经拥有了很多选择:Wi-Fi,蓝牙,Zigbee,以及蜂窝连接都是一些常用的选项。 但有一项比较新生的协议正在逐渐流行起来:基于LoRa的通信提供中距范围内(2公里至15公里)低功耗、低带宽的通讯——其通讯距离取决于周围环境的杂乱程度。 本文作者就自己动手做了一个基于LoRa的双向传呼机,一起来看看~ LoRa源于迅猛发展的物联网,是使用分散光谱传输将远程传感器和嵌入式设备连接到中心节点的技术。数据传输率通常在0.3-27kb/s,上限速率可达50kb/s:较慢的数据传输对应着更长的传输距离。LoRa在最初版本专注于机器-机器通讯,但它极低的功耗吸引了喜欢鼓捣的人们去开发其他应用。 正如一部分人总是对尝试新的硬件技术感兴趣,我也想知道LoRa这项技术是否能用于人类间的通讯。数据传输的速率过低所以通话功能是不现实的,但有一种令人充满敬意的设备怎么样呢:我或许能做一只基于LoRa的双向传呼机。 虽然作为一名硬件工程师的我工作内容包含天线分析,但我对射频电路本身却不太熟悉。因此第一步我订购了两个AI-Thinker的Ra-o2 LoRa模块和两个基于ATmega328的微控制器(即单片机),翻出我的面包板,搭建概念验证设计。不久之后,我就实现了在屏幕上显示发送和接收到的字母和数字组成的字符串,使用的屏幕是一块为Nokia手机设计的84*48像素的LCD屏。 当然,你是不能拿一块面包板直接去做场地测试的,所以我设计了一个印刷电路原型,这个原型机复制了我面包板的设计,还带上了电池和一些控制按钮。 场地测试时正好是德国的寒冬,我和一位伙伴可不想在户外长距离跋涉,但我们证实了一公里开外的距离的通信可行。严寒的天气也暴露出一个意料之外的问题:传呼机中的一只用镍氢电池供电,另一只则使用锂离子电池。用镍氢电池的一只在低温中使用无虞,但锂离子驱动的那只则由于电压跌落导致了微控制器的重启。 这只双向传呼机使用LoRa的低功耗广播协议,有效传输距离在10公里至15公里。一个现成的LoRa接收器模块适配在定制的PCB板上,同时附带一个用户友好的显示屏以及导航控制。一个实时时钟模块负责追踪当地时间。 接下来我们需要一个更精致的设计。 最明显的升级体现在屏幕上,我用了一块128*64像素分辨率的LCD屏。同时也对微处理器进行了升级:我需要更多的算力,但也仍然想待在Arduino适配的生态中,所以我选择了Atmel SAMD21 Cortex Mo,可以用一系列“后AVR(Automatic Voltage Regulation,自动电压调整)”的Arduino微控制器驱动。 我还把AI-Thinker的模块替换为更流行的RFM95W接收器。最终的设计还包含了一只用于静音模式的传呼机马达,一个用于操作的3向导航开关,以及一个SD卡适配器。由于我天线分析的经验,PCB板二代迭代中大部分微调都专用于确保连接接收器到天线的走线要是最佳的50欧姆阻抗。传输线在PCB的另一边使用了接地面,所以利用PCB的厚度计算后得出我需要一条1mm宽的走线。对于接地面连接天线基座和接收器模块的方式我也多加调整,以便获得最佳的高频表现。 此外,我选择了时髦的黑色作为PCB板阻焊层,结果产生了又一个意外结果。我用来贴片的回流焊机使用红外加热器,在我第一次贴片的时候,表面的黑色阻焊层受热比我常用的绿色PCB板更快。结果就是焊点呈现出经典过热金-棕色污渍——我竟成了时尚的受害者! 在我进行调整搞定一切组装后,开始测试电路板,这时候我意识到开关按钮控制存在一个问题:按下电源键时,电压调节器开始向SAMD21的微处理器施加3.3V电压。 其中存在一项安全功能,如果控制器未在2s内收到来自处理器启动的确认,就会中断供电。但SAMD21需要2.5s才能做出应答!我只好去查控制器规格书,发现了终极解决方案,规格书里一条说明表示该控制器可以通过调节参数实现10s等待。随着新开关控制器的到位,我用热风枪把新部件固定到了相应位置。 传呼机平台:Arduino适配的微处理器控制LoRa模块,而用户可以把任何现成的外围设备,配合支持I2C协议的Arduino库使用,外围设备直接通过PCB板上的专用插座连接。 测试中还出现了另一个小问题:我把板载实时时钟的数据线接反了,这是用来计当地时间,并通过I2C协议和SAMD21相连的。修好这个问题后,我的传呼机正式完成,我将它命名为LoRaNicator。 因为相比编程我对硬件设计更感兴趣,整个系统软件构成十分基础,仅仅负责用户间的文本信息交换。我希望其他人或许能够将LoRaNicator当作一个开源平台,利用好这一低功耗、基础构造简单的通讯方式,制作出更多更复杂的应用。我也在尝试让LoRaNicator硬件扩展变得更容易,通过一系列可外接I2C设备的外部针脚,让它能够连接诸如GPS单元或其他类型的传感器。 相关报道:https://spectrum.ieee.org/geek-life/hands-on/build-a-twoway-pager-with-lora志愿者介绍后台回复“志愿者”加入我们点「在看」的人都变好看了哦! 浏览 51点赞 评论 收藏 分享 手机扫一扫分享分享 举报 评论图片表情视频评价全部评论推荐 快上车!使用 Node.js 搭建一个 API 网关编程微刊0SHViewPagerExampleiOS视图传呼机SHViewPagerExample实现了一个简单的iOS上的ViewPager效果。【NLP】使用堆叠双向 LSTM 进行情感分析机器学习初学者0Linux使用LAMP搭建Apache+PHP+MySQL服务器卧梅又闻花0使用wifipumpkin3快速搭建钓鱼WIFI字节脉搏实验室0JupyterLab Server 搭建与使用笔记Python中文社区0一文使用PyTorch搭建GAN模型!公众号CVer0利用 GitHub 从零开始搭建一个博客FightingCoder0搭建一个 Vite 版 React 项目勾勾的前端世界0使用 kube-vip 搭建高可用 Kubernetes 集群仙人技术0点赞 评论 收藏 分享 手机扫一扫分享分享 举报