当前位置:首页 > 物联网 > IoT设计分享
[导读]无论是物联网、M2M还是工业4.0,LoRa都是最流行的无线通信媒介之一。LoRa网络日益普及,在世界各地都有许多LoRaWAN网络。它消耗非常低的功率,可以进行远程通信。以前我们使用LoRa进行Arduino到Arduino和ESP32到ESP32的通信。

无论是物联网、M2M还是工业4.0,LoRa都是最流行的无线通信媒介之一。LoRa网络日益普及,在世界各地都有许多LoRaWAN网络。它消耗非常低的功率,可以进行远程通信。以前我们使用LoRa进行Arduino到Arduino和ESP32到ESP32的通信。

在本教程中,我们将使用LoRa模块SX1278在树莓派和Arduino之间进行点对点通信。这里Arduino将作为发射器/服务器和树莓派作为接收器/客户端。一个DHT 11传感器连接到发送端,将温度和湿度数据发送到接收端。在接收端,树莓派将在卡宴仪表板上发布这些读数。

组件的要求

•树莓派4

•Arduino Uno

•SX1278 433MHz LoRa收发模块

•DHT11

线路图

LoRa发送器/服务器和接收器/客户端部分的电路图如下所示。在这个项目中,我们将使用LoRa SX1278模块将温度和湿度值从Arduino发送到树莓派。DHT11传感器连接到发送端,Arduino将从DHT11获取温度和湿度值,然后通过LoRa SX1278模块将其发送给树莓派。这些湿度和温度值将被上传到卡宴物联网平台,该平台可以通过互联网从世界任何地方进行监控。

发送部分- LoRa与Arduino UNO的接口

在发送端,Arduino UNO与LoRa模块和DHT11传感器接口。Arduino UNO与LoRa和DHT11的接口如下图所示。另外,请查看Arduino Uno与LoRa接口的详细说明。

LoRa模块由16个引脚组成,其中6个引脚是GPIO引脚,4个是接地引脚。这个LoRa模块工作在3.3V,因此LoRa上的3.3V引脚连接到Arduino UNO板上的3.3V引脚。下表给出了完整的连接。DHT11传感器连接到Arduino的A0引脚。

接收器部分-接口树莓派与LoRa模块

在接收端,Raspberry Pi用于从LoRa receiver获取数据并将其发送到Cayenne平台。

LoRa模块与树莓派之间的完整连接如下表所示。

LoRa通信的卡宴设置

卡宴是一个物联网平台,允许您控制微控制器。它还用于将任何传感器数据上传到卡宴云。在这里,来自DHT11传感器的温度和湿度数据将被上传到卡宴。

首先,登录/注册到你的Cayenne账户,然后进入Cayenne仪表盘,点击“添加新”,然后点击“设备/小部件”。

之后,向下滚动并点击“带你自己的东西”。

将出现一个显示设备详细信息的窗口。复制这些细节;它将在python代码中使用。

基于LoRa通信的Arduino编程

Arduino和Raspberry Pi之间的通信使用Radiohead库。这个库可以从这里下载。在这里,Arduino作为发射器/服务器工作,并将DHT传感器数据发送到树莓派。

完整的Arduino代码在页面末尾给出。这里我们将解释代码的一些重要部分。

像往常一样,通过包含所有必需的库来开始代码。SPI库用于Arduino和LoRa模块之间的SPI通信。RH_RF95库用于LoRa通信,DHT库用于读取DHT传感器的温湿度值。

然后定义DHT类型和连接DHT传感器的引脚。

在真空循环中,读取温度和湿度值。

现在要将温度和湿度值发送给树莓派,必须将它们转换为字符数组。为此,首先将整数值转换为字符串,然后将温度和湿度值添加到单个字符串中。

现在将字符串值转换为字符数组。这里‘ data ’是字符串,‘ d ’是字符数组。

最后,将值发送到LoRa接收器。

树莓派设置LoRa通信

如前所述,Radiohead库用于Arduino和Raspberry Pi之间的点对点通信。LoRa模块与SPI协议一起工作,因此我们必须在树莓派中启用SPI接口。使用下面的命令进入配置窗口。

现在在配置窗口中,转到接口选项并启用SPI接口。

启用SPI接口之后,现在使用下面的命令安装spidev包。它是一个python模块,用于通过spidev Linux内核驱动程序从用户空间连接SPI设备。

然后使用下面的命令安装pyLoRa包。此包安装LoRa通信所需的模型。

树莓派LoRa通信编程

这里树莓派作为Receiver/client,接收Arduino发送的DHT传感器数据。

完整的Python程序在本页末尾给出。在这里,我将解释代码的一些重要部分。

在代码的开头,导入所有必需的库。MQTT库用于将温度和湿度值发送到辣椒平台。

现在输入Raspberry Pi和Cayenne之间MQTT通信所需的凭据。

之后,为温度和湿度值创建两个通道。

现在创建一个带有三个函数的LoRa类,即init、class和on_rx_done。init函数用于初始化433MHz带宽为125khz的LoRa模块。

start功能用于将模块配置为接收器,获取RSSI值、工作频率等。

on_rx_done函数用于读取传入的值。然后将接收到的值移动到一个名为payload的变量中,并使用utf-8进行解码,然后移动到一个名为data的变量中。

现在将温度和湿度值拆分并发布在Cayenne平台上

建立Arduino与树莓派之间的通信

硬件和程序准备好后,将Arduino代码上传到Arduino板,并在Pi中启动python代码。如果一切正常,您应该看到通过shell窗口在pi中接收到的温度和湿度值,如下所示。

现在使用默认浏览器打开Cayenne,您应该在仪表板上看到温度和湿度值,如下所示。

这就是Arduino如何使用LoRa模块与树莓派进行无线通信,进一步的树莓派可以将传感器数据上传到任何云,这样就可以从任何地方监控它。

本文编译自iotdesignpro

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭