概述
实验简介
基于sx1268芯片封装的lora模块,实现一个模块发送,其他模块接收的功能,用stm32单片机发送数据,电脑的串口调试助手显示接收的数据。
硬件环境
- 3个LoRa模块
- 2个USB转TTL模块
- 2台上位机
- 视情况准备胶棒天线
- 1台stm32单片机
- 若干杜邦线
软件环境
- 串口调试助手
- LoRa模块厂家提供的配置软件
- CH340驱动
模块简介(具体参考厂家提供的开发手册)
本次实验我所使用的LoRa模块是成都亿佰特电子科技有限公司提供的E22-400T30D,理想情况下最远通信距离可达10km。
引脚序号 | 引脚名称 | 引脚方向 | 引脚用途 |
---|---|---|---|
1 | M0 | 输入(极弱上拉) | 和M1配合,决定模块的4种工作模式 |
2 | M1 | 输入(极弱上拉) | 和M0配合,决定模块的4种工作模式 |
3 | RXD | 输入 | TTL串口输入,连接到外部TXD输出引脚 |
4 | TXD | 输出 | TTL串口输出,连接到外部RXD输出引脚 |
5 | AUX | 输出 | 用于指示模块工作状态,用户唤醒外部MCU,上电自检初始化期间输出低电平 |
6 | VCC | 输入 | 模块电压正参考,电压范围3.3V~5.5V DC |
7 | GND | 输入 | 模块接地 |
模块功能
定点发送需要地址和信道相匹配时接收模块才能接收到数据,广播发送只需要信道匹配就能接收到数据。
实验步骤
1.安装CH340驱动
网上有很多教程
2.确定LoRa模块的工作模式
模式(0-3) | M0 | M1 | 模式介绍 | 备注 |
---|---|---|---|---|
0 传输模式 | 0 | 0 | 串口打开,无线打开,透明传输 | 支持特殊指令空中配置 |
1 WOR模式 | 0 | 1 | 可以定义为WOR发送方和WOR接收方 | 支持空中唤醒 |
2 配置模式 | 1 | 0 | 用户可通过串口对寄存器进行访问,从而控制模块工作状态 | |
3 深度休眠 | 1 | 1 | 模块进入休眠 |
本实验所有模块都用广播地址0xFFFF,模块处于广播地址时同时也作监听功能,也就是模块发送时作广播,接收时作监听,这样就能实现一个模块发送其他模块都能接收到数据的功能
3.配置LoRa模块
(1)硬件连接
用厂家提供的LoRa模块测试套件,将左上角的跳线帽取下可进入配置模式
或者使用CH340转TTL模块
M0、M1悬空状态下为高电平,因此配置模式中M1脚悬空,只需将M0接低电平。
(2)软件配置
第三步的模块地址需要注意,填写的时候是写入十进制的数字,广播地址为0xFFFF,转换为十进制为65535,频率信道类似。
4.通信测试
实验中stm32作发送端,两台上位机作接收端。由于lora模块输出的是ttl电平的串口数据,可以不经过电平转换模块直接和stm32 uart的引脚通信。
我所使用的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模块一对多通信实验简介硬件环境软件环境模块简介(具体参考厂家提供的开发手册)实验步骤实验结果所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复