本文共 2819 字,大约阅读时间需要 9 分钟。
测试模块数:3
测试模式:配置模式、传输模式和RSSI模式
如果没有检测到串口,首先检查是否安装串口驱动CH341SER,,提取码:vaw2
模式(0-3) | M2 | M1 | M0 | 模式介绍 | 备注 |
---|---|---|---|---|---|
0 传输模式 | 1 | 0 | 0 | 串口打开,无线打开,连续透明传输 | 空速支持手动配置和自适应波特率自动调节;连续模式双方波特率必须一致 |
1 RSSI | 1 | 0 | 1 | 串口打开,无线打开,RSSI功能打开 | 模块每100ms输出RSSI强度值 |
2 测距模式 | 1 | 1 | 0 | 保留 | - |
3 配置模式 | 1 | 1 | 1 | 串口打开,无线关闭,用于参数配置 | 波特率固定9600 8N1 |
3 低功耗 | 0 | x | x | 低功耗模式,功耗为最低 | M2置高时处于正常工作状态,M2置低时处于低功耗 |
使用USB-TTL连接E28 LoRa模块,接线方式为3V3-VCC、GND-GND、TX-RX和RX-TX,如下图所示
配置模式的模块跳帽如下图(M0、M1、M2引脚均置高)
打开官方提供的配置软件,配置流程如下图所示
3个E28 LoRa模块配置参数
模块序号 | 传输方式 | 模块地址 | 模块信道 |
---|---|---|---|
1 | 定点 | 0001 | 05 |
2 | 定点 | 0002 | 05 |
3 | 定点 | 0003 | 05 |
传输模式的模块跳帽如下图
从上到下分别是模块1、2、3,其中模块1、2、3均为定点传输模式
打开串口助手(如果没有可以点击下载,提取码:disd)
配置串口设备,9600波特率,8N1,按十六进制发送
模块1定点传输测试
00 02 05 AABBCC
模块2定点传输测试
00 03 05 DDEEFF
模块3定点传输同理
模块2广播传输测试
FFFF 05 DDEEFF
模块3广播传输测试
FFFF 05 123456789
模块1定点传输监听功能测试
将模块1的地址设置为FFFF
模块序号 | 传输方式 | 模块地址 | 模块信道 |
---|---|---|---|
1 | 定点 | FFFF | 05 |
2 | 定点 | 0002 | 05 |
3 | 定点 | 0003 | 05 |
模块3设置信道为06
模块序号 | 传输方式 | 模块地址 | 模块信道 |
---|---|---|---|
1 | 定点 | FFFF | 05 |
2 | 定点 | 0002 | 05 |
3 | 定点 | 0003 | 06 |
00 03 06 112233
透传就是在通讯中不管传输的业务内容如何,只负责将传输的内容由源地址传输到目的地址,而不对业务数据内容做任何改变
通过E28配置软件配置模块参数:
模块序号 | 传输方式 | 模块地址 | 模块信道 |
---|---|---|---|
1 | 透传 | 0001 | 05 |
2 | 透传 | 0001 | 05 |
3 | 透传 | 0002 | 05 |
同地址和同信道才能实现正常的透传
各模块配置参数如下:
模块序号 | 传输方式 | 模块地址 | 模块信道 |
---|---|---|---|
1 | 透传 | FFFF | 05 |
2 | 透传 | 0001 | 05 |
3 | 透传 | 0001 | 05 |
4 | 透传 | 0002 | 05 |
M0和M2引脚置高,M1引脚置低进入RSSI模式,如下图所示
RSSI全称:Received Signal Strength Indication,指接收的信号强度
打开串口,输出的值为16进制补码的形式,如下图所示
调整引脚使M0、M1和M2置高,进入配置模式进行参数设置,使用透传模式传输温度数据,设置模块传输方式均为透传,地址为0001,信道为05
找一块PyBoard板,插入传感器(这里用DS18B20温度传感器),用Pyboard的6号UART:Y1(TX)和Y2(RX)引脚传输温度数据,将温度数据传输给地址为02和03的LoRa模块
接线说明
如下图所示
MicroPython测试程序,,提取码:qy9c
打开uPyCraft,写入程序,主程序如下,其他程序可点击上面的链接下载
如果没有uPyCraft.exe,,提取码:qpx5
// Main.pyimport pybfrom dht11 import DHT11from ds18b20 import DS18B20from machine import Pinfrom pyb import UARTimport dhtimport timeuart = UART(6,9600)uart.init(9600, bits=8, parity=None, stop=1)dht = dht.DHT11(Pin("B13"))DS18B20 = DS18B20('B15')DS18B20.Init()while 1: dht.measure() uart.write('test start\r') time.sleep(3) print("DHT11 temperature:",dht.temperature()) print("DHT11 humidity:",dht.humidity(),'%') pyb.LED(2).on() pyb.delay(1000) uart.write('DS18B20 temperature:%s' %DS18B20.get_temperature()) time.sleep(3) uart.write('test finish\r') time.sleep(1) pyb.LED(2).off() time.sleep(3)
通过uPycraft运行程序,通过串口助手可得知LoRa模块2、3成功接收到DS18B20温度数据
发生在透传和定点传输混合的情况下
各模块配置参数如下:
模块序号 | 传输方式 | 模块地址 | 模块信道 |
---|---|---|---|
1 | 透传 | FFFF | 05 |
2 | 定点 | 0002 | 05 |
3 | 定点 | 0003 | 05 |
//模块3发送12345 模块1监听结果:12 34 05 00 00 00 00 02 05 12345
//模块2发送AB 模块1监听结果:AB 34 05 00 00 03 05 AB
//模块3发送1234 模块1监听结果:12 34 05 00 0000 02 05 1234
结论:与定点传输模块混合使用的透传广播监听模块发送数据时丢包最后3个字节的数据,监听时添加3个字节的数据。
官方资料下载
欢迎讨论与批评指正!
转载地址:http://qhuwz.baihongyu.com/