随着物联网、互联汽车、M2M、工业4.0等的出现,LoRa越来越受欢迎。由于其能够以非常低的功率进行长距离通信,因此它非常适合设计人员用于发送/接收来自电池供电的数据。我们已经讨论了LoRa的基础知识以及如何在Arduino中使用LoRa。尽管该技术最初旨在使LoRa节点与LoRa网关通信,但是在许多情况下,LoRa节点必须与另一个LoRa节点通信以长距离交换信息。

因此,在本篇文章中,我们将学习如何使用树莓派Raspberry的LoRa模块SX1278与连接到Arduino微控制器的另一个SX1278进行通信。这种方法在很多地方都可以派上用场,因为Arduino可以作为服务器从传感器获取数据并通过LoRa远程发送到树莓派,然后作为客户端的树莓派可以接收这些信息并将其上传到云平台,因为它可以访问互联网。听起来很有意思吧?那么,让我们开始吧。

所需的材料

●    SX1278 433MHz LoRa模块

●    433MHz LoRa天线

●    Arduino UNO开发板

●    树莓派3

注意:始终使用带有433 MHz天线的SX1278 LoRa模块;否则模块可能会损坏。

连接Raspberry Pi与LoRa

在我们开始编写软件之前,让我们先准备好硬件。 SX1278是一款16引脚Lora模块,可通过SPI进行通信。 Raspberry pi还支持3.3V逻辑电平,并具有内置SPI端口和3.3V稳压器。所以我们可以直接将LoRa模块与Raspberry Pi连接起来。连接表如下所示

树莓派SX1278模块

3.3V3.3V

GroundGround

GPIO 10MOSI

GPIO 9MISO

GPIO 11SCK

GPIO 8Nss / Enable

GPIO 4DIO 0

GPIO 17DIO 1

GPIO 18DIO 2

GPIO 27DIO 3

GPIO 22RST

您也可以使用下面的电路图作为参考。请注意,电路图是使用RFM9x模块创建的,与SX1278模块非常相似,因此下图中的外观可能不同。

Circuit-Diagram-for-Connecting-Raspberry-Pi-with-LoRa.png (43.93 KB, 下载次数: 29)

2019-5-22 09:55 上传

连接非常简单,唯一您可能遇到的问题是SX1278模块不兼容面包板,因此您必须直接使用连接线进行连接或使用两个小型面包板,如下所示。此外,很少有人建议使用单独的3.3V电源为LoRa模块供电,因为树莓派可能无法提供足够的电流。然而,作为低功率模块的Lora应该在Pi的3.3V上工作,我测试了它并发现它没有任何问题。但是,仍然需要一点点注意。树莓派与LoRa模块的实际连接设置如下所示

Circuit-Hardware-for-Connecting-Raspberry-Pi-with-LoRa.png (125.59 KB, 下载次数: 12)

2019-5-22 09:57 上传

将Arduino与LoRa连接起来

Arduino模块的连接与我们之前教程中使用的连接一样。唯一的区别是没有使用Sandeep Mistry的库,我们将使用基于Radio head的Rspreal库,我们将在本项目的后面讨论。电路如下

Circuit-Diagram-for-Connecting-Arduino-with-LoRa.png (26.5 KB, 下载次数: 17)

2019-5-22 09:57 上传

您可以再次使用Arduino Uno上的3.3V引脚或使用单独的3.3V稳压器。在这个项目中,我使用了板载稳压器。下面给出了引脚连接表,以帮助您轻松建立连接。

LoRa SX1278模块Arduino UNO开发板

3.3V3.3V

En/NssD10

G0 / DIO0D2

SCKD13

MISOD12

MOSID11

RSTD9

由于模块不适合面包板,我直接使用连接线进行连接。连接建立完成后,Arduino LoRa设置将如下所示

Circuit-Hardware-for-Connecting-Arduino-with-LoRa.png (76.56 KB, 下载次数: 10)

2019-5-22 10:01 上传

用于Raspberry Pi的pyLoRa

有许多python包可以与LoRa一起使用。通常,Raspberry Pi用作LoRaWAN以从多个LoRa节点获取数据。但是,在本文中,我们的目标是在两个Raspberry Pi模块之间或Raspberry Pi和Arduino之间进行点对点通信。所以,我决定使用pyLoRa包。它有一个rpsreal LoRa Arduino和rpsreal LoRa Raspberry pi模块,可用于Arduino和Raspberry Pi环境。现在,让我们关注Raspberry Pi环境。

为LoRa模块配置Raspberry Pi

如前所述,LoRa模块使用SPI通信,因此我们必须在树莓派上启用SPI,然后安装pylora软件包。打开Pi的终端窗口后,按照以下步骤执行相同操作。再次,我使用putty连接到树莓派,你可以使用方便的方法。

第1步:使用以下命令进入配置窗口。要获得以下窗口,使用以下指令:

sudo raspi-config复制代码

Configure-Pi-for-LCD.png (24.25 KB, 下载次数: 11)

2019-5-22 10:05 上传

Change-Login-Configuration-in-Pi.png (24.08 KB, 下载次数: 10)

2019-5-22 10:05 上传

第2步:导航到接口选项并启用SPI,如下图所示。我们必须启用SPI接口,因为我们讨论过LCD和PI通过SPI协议进行通信

Enabling-SPI-Interface-In-Raspberry-Pi-for-Lora.png (6.2 KB, 下载次数: 5)

2019-5-22 10:06 上传

第3步:保存更改并返回终端窗口。确保更新了pip和python,然后使用以下命令安装RPi.GPIO程序包。

pip install RPi.GPIO复制代码

该封装类将帮助我们控制Pi上的GPIO引脚。如果安装成功,界面将如下所示

Installig-GPIO-Package-in-Pi-for-Lora.png (46.89 KB, 下载次数: 8)

2019-5-22 10:11 上传

第4步:类似地继续使用以下命令安装spidev包。 Spidev是Linux的python绑定,可用于在Raspberry Pi上执行SPI通信。

pip install spidev复制代码

如果安装成功,终端应如下所示。

Installing-SPIDEV-Package-in-Pi-for-Lora.png (46.19 KB, 下载次数: 86)

2019-5-22 10:12 上传

第5步:接下来让我们使用以下pip命令安装pyLoRa包。该软件包安装与LoRa关联的Radio模型。

pip install pyLoRa复制代码

如果安装成功,您将看到以下界面。

Installing-PyLora-Package-in-Pi-for-Lora.png (45.5 KB, 下载次数: 11)

2019-5-22 10:09 上传

PyLoRa软件包还支持加密通信,可以无缝地与Arduino和Raspberry Pi一起使用。这将改善您的通信中的数据安全性。但是你必须在这一步之后安装单独的包,我没有这样做,因为加密不在本文的范围内。您可以按照上面的github链接获取更多详细信息。

之后,在此步骤中,您可以将包路径信息添加到pi,并尝试使用最后给出的python程序。但我无法成功添加路径,因此必须手动下载库并直接使用相同的程序。所以我不得不继续以下步骤

第6步:使用以下命令下载并安装python-rpi.gpio包和spidev包。

sudo apt-get install python-rpi.gpio python3-rpi.gpio

sudo apt-get install python-spidev python3-spidev复制代码

在两次安装之后,终端窗口应该显示类似的内容。

Installed-GPIO-Package-in-Pi-for-Lora.png (45.79 KB, 下载次数: 9)

2019-5-22 10:07 上传

Installed-SPIDEV-Package-in-Pi-for-Lora.png (50.08 KB, 下载次数: 7)

2019-5-22 10:08 上传

第7步:还要安装git,然后用它来克隆我们的Raspberry Pi的python目录。您可以使用以下命令执行此操作。

sudo apt-get install git

sudo git clone https://github.com/rpsreal/pySX127x复制代码

Installing-git-in-Pi-for-Lora.png (42.1 KB, 下载次数: 3)

2019-5-22 10:12 上传

完成此步骤后,您应在Raspberry Pi主文件夹中找到SX127x子目录。这将包含与库关联的所有必需文件。

arduino lora通讯_Arduino开发板和树莓派之间实现Lora点对点通讯相关推荐

  1. arduino编译器_Arduino开发板“四剑客”里,谁最“快”?

    在<都2020年了,还有必要学Arduino吗>一文中,小编提到过随着嵌入式平台和框架之间的相互学习和融合,Arduino爱好者的工具箱里的工具也越来越多了,比如时下最流行的支持Ardui ...

  2. Arduino 下初试 stm32开发板

    Arduino 下初试 stm32开发板 1.实验环境 1.野火STM32指南者(STM32F103VET6) 2.Arduino IDE 1.8.13(下载链接) 3.STM32 Flash loa ...

  3. 【物联网(IoT)开发】Arduino IDE的工具开发板菜单中找到我的开发板型号怎么办?

    Arduino IDE的工具>开发板菜单中找到我的开发板型号怎么办? 最近刚买的 WeMos D1 WiFi Arduino UNO 开发板ESP8266 连接电脑后,驱动也安装成功了,但是在A ...

  4. 兼容arduino的linux开发板,Arduino的各种常用开发板

    Arduino开发板大全,来看看你玩过哪些? 昨天认识了Arduino,今天来看看Arduino的各种常用开发板. 它有各种型号的,如Arduino Uno.Arduino Leonardo.Ardu ...

  5. 友善之臂 MINI2440开发板与SecureCRT之间的通信

    友善之臂 MINI2440开发板与SecureCRT之间的通信配置 (SecureCRT 与 win10 系统下的RS232驱动下载链接将在文章末尾给出) 初衷 emmm 我在用MINI2440开发板 ...

  6. 用SignalR 2.0开发客服系统[系列3:实现点对点通讯]

    用SignalR 2.0开发客服系统[系列3:实现点对点通讯] 原文:用SignalR 2.0开发客服系统[系列3:实现点对点通讯] 前言 目录: 用SignalR 2.0开发客服系统[系列1:实现群 ...

  7. 在这里,TQ2416系列----开发板与虚拟机之间搭建NFS

    TQ2416  开发板与虚拟机之间搭建NFS 在实际的开发中,当我们在开发板上搭建好ARM+LINUX的开发环境(uboot,linux内核,文件系统都裁剪幷移植到开发板上),专注于应用程序的开发的时 ...

  8. Arduino上手动添加开发板

    最近一个在一个项目上想在树莓派3B+上使用9dof-razor-imu传感器,,搭建开发环境的时候根据其官网说明选了Arduino.然而在添加他的第三方SparkFun开发板时出了问题,因为他的开发板 ...

  9. 【Arduino学习】01.开发板选择和环境的搭建

    1.Arduino是一款便捷灵活.方便上手的开源电子原型平台.包含硬件(各种型号的Arduino板)和软件(Arduino IDE).由一个欧洲开发团队于2005年冬季开发. 2.做嵌入式开发有一点不 ...

最新文章

  1. 聊聊springboot elasticsearch healthIndicator
  2. String与StringBuffer 理解
  3. 【万字长文详解】Python库collections,让你击败99%的Pythoner
  4. 有效的字母异位词---简单
  5. css3正方体选中父层 子层解体_CSS3 :nth-child(n)选择器 匹配属于其父元素的第N个子元素...
  6. si4438 与 si4432通讯
  7. 关于单点登录的简单原理和实现步骤
  8. 【C++】1079:计算分数加减表达式的值(信息学奥赛)
  9. java406错误_Java项目部署遇到406错误
  10. 秋天的第一杯奶茶?NO,是第一份大数据学习宝典
  11. error C2084 函数“”已有主体
  12. 用于 VMware vSphere ESXi 4/5/6 的HP智能阵列B140i SATA RAID控制器驱动程序
  13. 互联网早报:哈啰科技发布新款助力车“白鸥”、小哈能量站等多款新产品
  14. 【云和恩墨大讲堂】尹涛 - 由DRM引起的ORA-00481错误
  15. 学习笔记-应用光学-7-6 摄影光学系统
  16. Spring Security Web : AbstractAuthenticationTargetUrlRequestHandler
  17. c语言实现偶数阶乘,c语言实现阶乘的方法
  18. 好诗分享_《我想和你一起生活 》
  19. JavaScript | 正则表达式
  20. 虚拟现实项目开发流程

热门文章

  1. 程序设计基石与实践之实现数字七段显示与发扑克牌问题
  2. java 虚拟打印机_纯java虚拟打印机
  3. 从零开始整合spingMVC
  4. 你肯定不知道的19位美国总统的佚事
  5. 牛油果AvoDerm狗粮介绍
  6. 如何选购计算机硬件,DIY攒机经验之谈:十年老司机教你组装电脑如何选购硬件...
  7. matlab 随机骨料程序,基于matlab的混凝土三维圆形骨料模型随机投放方法.pdf
  8. 2021年山东省安全员C证考试题库及山东省安全员C证证考试
  9. 使用VideoPlayer播放mp4(隐藏控件,点击全屏,窗口自适应父级)
  10. POI Excel 08 读取重写Excel,单元格中使用\n换行符