我是靠谱客的博主 执着早晨,最近开发中收集的这篇文章主要介绍LoRa模块一对多通信实验简介硬件环境软件环境模块简介(具体参考厂家提供的开发手册)实验步骤实验结果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

实验简介

基于sx1268芯片封装的lora模块,实现一个模块发送,其他模块接收的功能,用stm32单片机发送数据,电脑的串口调试助手显示接收的数据。

实验框图

硬件环境

  1. 3个LoRa模块
  2. 2个USB转TTL模块
  3. 2台上位机
  4. 视情况准备胶棒天线
  5. 1台stm32单片机
  6. 若干杜邦线

软件环境

  1. 串口调试助手
  2. LoRa模块厂家提供的配置软件
  3. CH340驱动

模块简介(具体参考厂家提供的开发手册)

本次实验我所使用的LoRa模块是成都亿佰特电子科技有限公司提供的E22-400T30D,理想情况下最远通信距离可达10km。

模块引脚图
引脚序号引脚名称引脚方向引脚用途
1M0输入(极弱上拉)和M1配合,决定模块的4种工作模式
2M1输入(极弱上拉)和M0配合,决定模块的4种工作模式
3RXD输入TTL串口输入,连接到外部TXD输出引脚
4TXD输出TTL串口输出,连接到外部RXD输出引脚
5AUX输出用于指示模块工作状态,用户唤醒外部MCU,上电自检初始化期间输出低电平
6VCC输入模块电压正参考,电压范围3.3V~5.5V DC
7GND输入模块接地
引脚功能表

模块功能

定点发送
广播发送

定点发送需要地址和信道相匹配时接收模块才能接收到数据,广播发送只需要信道匹配就能接收到数据。

实验步骤

  1.安装CH340驱动
    网上有很多教程
  2.确定LoRa模块的工作模式

模式(0-3)M0M1模式介绍备注
0 传输模式00串口打开,无线打开,透明传输支持特殊指令空中配置
1 WOR模式01可以定义为WOR发送方和WOR接收方支持空中唤醒
2 配置模式10用户可通过串口对寄存器进行访问,从而控制模块工作状态
3 深度休眠11模块进入休眠
工作模式表

    本实验所有模块都用广播地址0xFFFF,模块处于广播地址时同时也作监听功能,也就是模块发送时作广播,接收时作监听,这样就能实现一个模块发送其他模块都能接收到数据的功能

  3.配置LoRa模块
    (1)硬件连接
    用厂家提供的LoRa模块测试套件,将左上角的跳线帽取下可进入配置模式


    或者使用CH340转TTL模块


    M0、M1悬空状态下为高电平,因此配置模式中M1脚悬空,只需将M0接低电平。

    (2)软件配置




    第三步的模块地址需要注意,填写的时候是写入十进制的数字,广播地址为0xFFFF,转换为十进制为65535,频率信道类似。

  4.通信测试
    实验中stm32作发送端,两台上位机作接收端。由于lora模块输出的是ttl电平的串口数据,可以不经过电平转换模块直接和stm32 uart的引脚通信。

LoRa模块与stm32连接图

    我所使用的stm32开发板是正点原子的战舰V3,厂商提供了usart1的printf函数,也就是串口发送数据的函数。
    可以稍微修改《实验3 按键输入》中main.c的代码,将不同按键改为发送不同的字符。

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "beep.h"
#include "usart.h"
 
/************************************************
 ALIENTEK战舰STM32开发板实验3
 按键输入实验  
 技术支持:www.openedv.com
 淘宝店铺:http://eboard.taobao.com 
 关注微信公众平台微信号:"正点原子",免费获取STM32资料。
 广州市星翼电子科技有限公司  
 作者:正点原子 @ALIENTEK
************************************************/


 int main(void)
 {
 	vu8 key=0;	
	delay_init();	    	 //延时函数初始化	  
 	LED_Init();			     //LED端口初始化
	KEY_Init();              //初始化与按键连接的硬件接口
	BEEP_Init();         	//初始化蜂鸣器端口
	uart_init(9600);		//初始化串口波特率为9600
	LED0=0;					//先点亮红灯
	while(1)
	{
 		key=KEY_Scan(0);	//得到键值
	   	if(key)
		{						   
			switch(key)
			{				 
				case WKUP_PRES:	//控制蜂鸣器
					BEEP=!BEEP;
					break;
				case KEY2_PRES:
					printf("Thank you very much!rn");
					break;
				case KEY1_PRES:
					printf("How are you Indian Mi fansrn");
					break;
				case KEY0_PRES: 
					printf("Thank you!Are you ok?rn");
					break;
			}
		}else delay_ms(10); 
	}	 
}

    此外再打开两台上位机,提前安好CH340驱动,需要先控制LoRa模块M0和M1引脚的电平,确定工作在传输模式。


    重新将跳线帽插上,或者在M1和GND之间再接一条线。


    将连好LoRa模块的USB转TTL模块插入上位机USB接口,打开串口调试助手,波特率设置为9600。


实验结果

在单片机上依次按下key0,key1,key2,得到的结果如下


两台上位机准确显示发送的数据。

最后

以上就是执着早晨为你收集整理的LoRa模块一对多通信实验简介硬件环境软件环境模块简介(具体参考厂家提供的开发手册)实验步骤实验结果的全部内容,希望文章能够帮你解决LoRa模块一对多通信实验简介硬件环境软件环境模块简介(具体参考厂家提供的开发手册)实验步骤实验结果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部