[[File:产品样图.jpg|产品名称

Update/modify/delete Forbidden, 禁止更改本图,请更改图片名称,避免覆盖上�

]]

简介

LoRa MESH Radio Module-868MHZ这款无线模块采用的是分布式MESH结构,工作频段为868Mhz,具备内部自动扩频计算和前导CRC纠错处理能力。

LoRa MESH Radio Module-868MHZ无线模块采用MESH结构,能够充分利用网络中的路由冗余,具有良好的网络自愈性、稳定性和极佳的数据吞吐量,其组网耗时很短,所有的模块上电即工作,支持7级路由数据传输,网络覆盖范围达到7公里以上。模块本身具有路由中继能力,向目标节点发送自己接收转发的信息,让信息传输的更远。该模块具备LoRa 扩频技术, TTL 接口半双工通讯,空中收 /发转换。以及有8 个辅助信道,自动跳频,有效避免相互间的系统干扰,影响数据的传输。模块具备设置模块的参数,如设置该节点作为主节点还是从节点,串口数据类型、串口波特率、发射功率、节点地址等参数。用户发送的每一帧最大数据长度为128字节,可以满足大多数的信息传输。 模块主要应用在自组网领域如传感网络、无线抄表、智能家居等领域,具有明显的技术优势和价格优势。比如,无线抄表方案,可以仅需要发送一条广播报文就可以在很短时间之内实现全网仪表的集抄,不需要对单个仪表进行一一抄读,大大节省了抄读的时间。

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

技术规格

引脚说明

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

]]

标号 名称 功能描述
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-868MHZ模块参数主模块(Master)设置

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

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

说明

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和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和www.dfrobot.com

注意:

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

接线图

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

]]

样例代码

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

|

主模块(Master)代码程序

/*!
 * @file Master.ino
 * @brief LoRa MESH Radio Module-868MHZ.
 * @n [Get the module here]()
 * @n This example is a Master of the application.
 * @n [Connection and Diagram](http://wiki.dfrobot.com.cn/index.php?title=(SKU:TEL0117)LoRa_MESH_Radio_Module-868MHZ)
 *
 * @copyright  [DFRobot](http://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-868MHZ.
 * @n [Get the module here]()
 * @n This example is a Slave of the application.
 * @n [Connection and Diagram](http://wiki.dfrobot.com.cn/index.php?title=(SKU:TEL0117)LoRa_MESH_Radio_Module-868MHZ)
 *
 * @copyright  [DFRobot](http://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商城购买链接]