TEL0114 LoRa MESH Radio Module-433MHZ

简介

LoRa MESH Radio 是一款分布式无线通信模块,支持MESH组网,工作在433M免费频段,采用最新的扩频跳频技术,内部进行自动扩频计算和前导CRC纠错处理。标准发射功率最大为100mW(20dBm),发射电流瞬间<120mA,接收电流为<18mA,工作电压范围 3.3v~5v;模块的射频芯片基于扩频跳频技术,在稳定性、抗干扰能力以及接收灵敏度上都超越现有的GFSK模块。 MESH 是分布式的对等网状网络,能够充分利用网络中的路由冗余,具有优异的网络自愈性、稳定性和极佳的数据吞吐量,其组网耗时很短,所有的设备上电即工作,支持7级路由,网络覆盖范围达到7公里以上。物理层采用了很多先进的无线通信技术如跳频、自适应速率、安全可靠的全网自组网技术、交织纠错编码等;链路层采用智能的碰撞避免算法,具有优异的抗干扰能力。 模块主要应用在自组网领域如传感网络、无线抄表、智能家居等领域,具有明显的技术优势和价格优势。比如,无线抄表方案,可以仅需要发送一条广播报文就可以在很短时间之内实现全网仪表的集抄,不需要对单个仪表进行一一抄读,大大节省了抄读的时间。

注意事项:在同一网络中,模块的无线信号参数都应设置为相同参数,避免因模块之间信号参数不一致导致不能通信的情况出现。

技术规格

引脚说明

:[[File:WL800T.png|LoRa MESH Radio Module-433MHZ

]]

标号 名称 功能描述
1 GND 电源地(与用户设备共地)
2 VCC 3.3~5V
3 EN 无需连接
4 RXD UART 输入,3.3TTL
5 TXD UART 输出,3.3TTL
6 AUX 无需连接
7 SET 高电平时,修改的参数有效,掉电不恢复;低电平时,参数掉电恢复

引脚说明

使用教程

此教程实现功能是无线模块调试,步骤如下:

注:下图标号和以下标号相对应。

示例图

准备

配置

LoRa MESH Radio Module-433MHZ模块参数主模块(Master)设置

LoRa MESH Radio Module-433MHZ模块参数从模块(Slave)设置

LoRa MESH Radio Module-433MHZ模块发送数据

说明

MESH自组网模块配置测试软件(左图为右图为)

主模块(Master):在目标地址填写0006,发送数据框中填写22 11 从模块(Slave):在目标地址填写0007,发送数据框中填写20 20 20 20 20 44 46 52 6f 62 6f 74 20 20 20 20 77 77 77 2E 64 66 72 6f 62 6f 74 2E 63 6F 6D 20 主模块串口软件端点击发送,从模块收到数据后01,从模块串口软件端点击发送,LCD1602屏上会显示显示DFRobot和https://www.dfrobot.com

通过主模块(Master)串口软件端发送指令:05 00 01 08 06 00 00 07 01 02 22 11 3d 从模块(Slave)串口软件端接收到16进制的 01 数据后,通过串口软件从模块(Slave)端发送指令:05 00 01 26 07 00 00 07 01 20 20 20 20 20 20 44 46 52 6f 62 6f 74 20 20 20 20 77 77 77 2e 64 66 72 6f 62 6f 74 2e 63 6f 6d 20 35 LCD1602屏上会显示显示DFRobot和https://www.dfrobot.com

注意:

1.如果主模块发送后,主模块和从模块没有收到01以及从设备的arduino板上LED灯未亮,则复位主模块设备和从模块设备。 2.MESH自组网模块配置测试软件能够自动组织命令,只需填写需要发送的数据便可,格式为16进制;使用串口软件,需要自己去搭配指令和数据以及校验位。

接线图

[[File:800Nlianjietu.png|LoRa MESH Radio Module-433MHZ使用电路连接图

]]

样例代码

[https://pan.baidu.com/s/1o7QqV2q/请先下载Gravity LCD1602 RGB Backlight Module库]

|

主模块(Master)代码程序

/*!
 * @file Master.ino
 * @brief LoRa MESH Radio Module-433MHZ.
 * @n [Get the module here]()
 * @n This example is a Master of the application.
 * @n [Connection and Diagram](https://wiki.dfrobot.com.cn/index.php?title=(SKU:TEL0114)LoRa_MESH_Radio_Module-433MHZ)
 *
 * @copyright  [DFRobot](https://www.dfrobot.com), 2016
 * @copyright GNU Lesser General Public License
 *
 * @author [lijun](ju.li@dfrobot.com)
 * @version  V1.0
 * @date  2017-01-17
 */

#include <Wire.h>
#include "DFRobot_RGBLCD.h"
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX
DFRobot_RGBLCD lcd(0x7c >> 1, 0xc0 >> 1, 16, 2); //parameter1:LCD address; parameter2:RGB address; 16 characters and 2 lines of show



const char SET = 6;  //改变参数时置高
const char led = 13;


unsigned char buffer_RTT[64] = {};  //接收无线数据
unsigned char buffer_RVC[64] = {0};  //接收串口数据
int k = 0;


void setup()
{
  Serial.begin(9600); //打开PC端串口
  mySerial.begin(9600);//打开与无线模块连接串口
  lcd.init();
  pinMode(led, OUTPUT);
  pinMode(SET, OUTPUT); //改变参数时需要置高才能保存改变的参数
}


void loop()
{
  k = 0;
  while (Serial.available() < 1);  //等待串口指令
  while (Serial.available() > 0)
  {
    char data;
    data = Serial.read();
    delay(2);
    buffer_RVC[k] = (char)data;
    k++;
    Serial.flush();
  }

  //for (int i = 0; i < k; i++) Serial.write(buffer_RVC[i]);  //
  while ( buffer_RVC[0] == 0x05 && buffer_RVC[2] == 0x01 )  //判断接收的指令是否为发送指令
  {
    for (int i = 0; i < k; i++) mySerial.write(buffer_RVC[i]);  //无线主模块发送数据(即无线主模块向从模块发送数据)
    digitalWrite(led, HIGH); //led灯亮
    while (mySerial.available() < 1);  //等待无线主模块返回应答
    while (mySerial.available() > 0)
    {
      char data;
      for (int j = 0; j < 64; j++)
      {
        data = mySerial.read();
        buffer_RTT[j] = (char)data;
        delay(2);
      }
      mySerial.flush();

      while (mySerial.available() < 1); //等待其它从模块应答的数据
      while (mySerial.available() > 0)
      {
        char data;
        for (int j = 0; j < 64; j++)
        {
          data = mySerial.read();
          buffer_RTT[j] = (char)data;
          delay(2);
        }
        mySerial.flush();
      }
    }
    break;
  }
  digitalWrite(led, LOW);//led灭
  lcd.setCursor(0, 0 );
  for (int j = 8; j < 24; j++) lcd.write(buffer_RTT[j]);  //显示接收的到的数据(LCD1602只能显示32个数据)
  lcd.setCursor(0, 1 );
  for (int j = 24; j < 40; j++) lcd.write(buffer_RTT[j]);  //显示接收的到的数据(LCD1602只能显示32个数据)
  delay(1000);
}

|}

|

从模块(Slave)代码程序

/*!
 * @file Slave.ino
 * @brief LoRa MESH Radio Module-433MHZ.
 * @n [Get the module here]()
 * @n This example is a Slave of the application.
 * @n [Connection and Diagram](https://wiki.dfrobot.com.cn/index.php?title=(SKU:TEL0114)LoRa_MESH_Radio_Module-433MHZ)
 *
 * @copyright  [DFRobot](https://www.dfrobot.com), 2016
 * @copyright GNU Lesser General Public License
 *
 * @author [lijun](ju.li@dfrobot.com)
 * @version  V1.0
 * @date  2017-01-17
 */

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX



const char SET = 6;  //
const char led = 13;



int flag = HIGH;
unsigned char buffer_RTT[64] = {};  //接收无线数据


void setup()
{
  Serial.begin(9600);//打开PC端串口
  mySerial.begin(9600);  //打开与无线模块连接串口
  pinMode(led, OUTPUT);
  pinMode(SET, OUTPUT);//改变参数时需要置高才能保存改变的参数
}


void loop()
{
  while (mySerial.available() < 1); //等待接收主模块发送的数据
  while (mySerial.available() > 0)
  {
    char data;
    for (int j = 0; j < 64; j++)
    {
      data = mySerial.read();
      delay(1);
      buffer_RTT[j] = (char)data;
    }
    mySerial.flush();
  }

  while ( buffer_RTT[8] == 0x22 && buffer_RTT[9] == 0x11 )  //判断数据中的命令
  {
    digitalWrite(led, HIGH);
    Serial.write(0x01); //向PC串口发送01
    delay(1);
    while (Serial.available() < 1);  //等待PC串口发送数据
    while (Serial.available() > 0)
    {
      char data;
      data = Serial.read();
      //delay(10);
      mySerial.write(data);  //向无线从模块发送数据(即从模块向主模块发送数据)
    }
    Serial.flush();
    mySerial.flush();
    digitalWrite(led, LOW);
    buffer_RTT[64] = {0};
    break;
  }
}

|}

结果

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png [Link DFRobot商城购买链接]