0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino UNO 可视化GT-24工业级无线透传

jf_88434166 来源:jf_88434166 作者:jf_88434166 2026-01-27 10:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、前言

无线透传市面上较为常见的是基于蓝牙、esp的多种透传模块,今天介绍的则是用NRF24L01芯片构成的电路。(nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片)

整个模块的使用更加专业,传输的距离也更加远,工业级的水准要求,更是保证了数据传输的稳定和信息的抗干扰能力。

二、硬件要求

GT-24模块是一款2.4GHz,100mW,高速(最高空中速率可达到2Mbps),高稳定性,工业级的无线收发一体数传模块。模块自带高性能PCB天线,精确阻抗匹配。

此外还内置RFX2401功放芯片,内建LNA,接收灵敏度提高10dBm,工作2.4GHz~2.5GHz的ISM频段。该模块发射功率足,频谱特性好,谐波小,频道串扰小,体积超小,全部村田原装料,工业级标准的典范。
无logo1-主图.png

OLED属于一种电流型的有机发光器件,这里作为试验显示作用。因为其显示的特殊性,对于arduino更多的是U8g2库文件的编写以及调用。
2-屏幕.png

三、参数基础

GT-24
射频方案 nRF24L01P
模块尺寸 30.3×14.5mm
工作频段 2.4GHz ~ 2.525GHz
生产工艺 无铅环保工艺
接口方式 181.27mm/242.54mm
供电电压 2.0-3.6VDC
通信电平 0.7VCC 3.3V
实测距离 1000m
发射功率 4 级可调 最大20dBm
空中速率 250k ~ 2Mbps
关断电流 约 30uA
发射电流 约 90mA
接收电流 约20mA
天线形式 PCB 天线/ipex 座子天线
通信接口 SPI
发射长度 单个数据包 1
32 字节
接收长度 单个数据包 1~32 字节
RSSI支持 不支持
接收灵敏度 -94dBm@250kbp
工作温度 -40 ~ +85℃
工作湿度 10% ~ 90%
储存温度 -40 ~ +125℃

oled显示屏
大小: 0.96寸
分辨率:12864
宽电压:3.3-5v
体积:27mm
27mm*2mm
温度范围:-30℃-70℃
使用寿命:≥16000小时
支持协议:iic

四、原理剖析

主芯片nRF24L01内置基带协议引擎 (增强型ShockBurst),设计用于超低功耗无线应用。MCU(微控制器)和 利用nRF24L01设计无线电系统只需极少的外部无源元件。nRF24L01通过串行外设接口(SPI)进行配置和操作。)通过该接口,寄存器映射是可用的。寄存器映射包含nRF24L01中的所有配置寄存器 并且在芯片的所有操作模式下都是可访问的。
3-原理剖析.png

模块为 nRF24L01P+PA+LNA,其驱动方式完全等同于 nRF24L01P,可以完全遵照 nRF24L01P 芯片手册进行操作。
①CE 引脚和LNA 使能引脚相连接,当 CE=1 时,LNA 被打开,当 CE=0 时,LNA 被关闭。 此操作个 nRF24L01 的收发模式是完全吻合的,完全不用去管LNA。
②CE 可以长期接高电平,但是模块写寄存器时必须首先设置为 POWER DOWN 掉电模式,建议连接 CE 到单片机 IO 口。IRQ 可不接,可采用 SPI 查询方式来获取中断状态。但是建议使用单片机外部中断。
③模块的 CE 引脚时序操作可采用 nRF24L01 的手册要求,高电平时间大于 10us 就行。
4-引脚.png

oled使用相关的U8g2库,选择合适的分辨率和尺寸,进行显示字符。
5-接线.png

五、透传思路

通过两块同样的模块进行收发,由开发板进行编码程序和解码程序,期间注意几个要点:
①发射、接收,都需要在视野开阔和尽量少干扰、甚至无干扰的环境状态下,这样信号才能传输的更稳定、完整和远。
②通道一致,编解码的时候,需要注意的是发射和接收地址区分开,但是所使用的通道必须一致,频段一致,才能正常收发。
6-接线图示.png

六、程序概要

下面展示本次所需要的程序代码,首先是tx,发送使用:

#include  < U8glib.h >
#include < SPI.h >
#include < Mirf.h >
#include < nRF24L01.h >
#include < MirfHardwareSpiDriver.h >
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);//引用库文件,128✖64就是对oled的分辨率进行设置
char str1[]="youxindianzi";
char str2[]="Send of number:";
uint8_t convert[6]={0}; //定义所占用的字节数
uint8_t all,one;

uint32_t oled_liang(uint8_t a,uint8_t b)
{
  uint32_t m=1;  
  while(b--)m*=a;    
  return m;          //递归函数调用
}
void show_liang(uint8_t* Tx_str,uint8_t lon,uint8_t rw)   
{           
  uint8_t c,type;
  uint8_t EN=0;    
  for(c=0;c< rw;c++)
  {
    type=(lon/oled_liang(10,rw-c-1))%10;
    
    *Tx_str =  type+0x30;
    Tx_str++; 
  } 
}             //把16进制数组转换为字符
void u8g_transfer(void) {
  u8g.setFont(u8g_font_6x10);
  u8g.setFontRefHeightExtendedText();
  u8g.setDefaultForegroundColor();
  u8g.setFontPosTop();
}                           //调用库函数指令
void setup()
{
 u8g_transfer();//初始化字体,屏幕参数
  u8g.firstPage();  
    do {
      u8g.drawStr(30,0,(char *)str1);    //调用行列,屏幕显示字体 
      u8g.drawStr(0,10,(char *)str2);      //调用行列,屏幕显示字体 
   } 
    while( u8g.nextPage() );       //循环空格填补
    
    Mirf.spi = &MirfHardwareSpi;  //调用spi协议
    Mirf.init();                 //初始化
    Mirf.setRADDR((byte *)"ABCDE"); //设置自己的地址(发送端地址),使用5个字符
    Mirf.payload = sizeof(one);      //返回上面的定义变量的字节数
    Mirf.channel = 90;              //设置所用信道
    Mirf.config();
}
 
void loop()
{
   Mirf.setTADDR((byte *)"ABCDE");           //设置接收端地址
 one = random(255);                      //0-255的随机数
  Mirf.send((byte *)&one);                //发送指令,发送随机数value
  while(Mirf.isSending()) delay(1);         //直到发送成功,退出循环
  
   show_liang(convert,all,3);
   u8g.firstPage();                     
    do {
      u8g.drawStr(30,0,(char *)str1);        //继续调用行列,屏幕显示字体 
      u8g.drawStr(0,10,(char *)str2);         //继续调用行列,屏幕显示字体 
      u8g.drawStr(100,10,convert);           //增加显示上面定义的字节数
      } 
    while( u8g.nextPage() );
    all++;
    delay(1000);
}

然后是rx,接收使用:

#include < U8glib.h >
#include < SPI.h >
#include < Mirf.h >
#include < nRF24L01.h >
#include < MirfHardwareSpiDriver.h >
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);        
char str1[]="youxindianzi";
char str2[]="accepting of data:";
uint8_t convert[6]={0};  //定义所占用的字节数
uint8_t all,one;


uint32_t oled_liang(uint8_t a,uint8_t b)
{
  uint32_t m=1;  
  while(b--)m*=a;    
  return m;
}           //递归函数调用
void show_liang(uint8_t* Tx_str,uint8_t lon,uint8_t rw)   
{           
  uint8_t c,type;
  uint8_t EN=0;    
  for(c=0;c< rw;c++)
  {
    type=(lon/oled_liang(10,rw-c-1))%10;
    
    *Tx_str =  type+0x30;
    Tx_str++;
  }
}                  //把16进制数组转换为字符
                           
void u8g_prepare(void) {
  u8g.setFont(u8g_font_6x10);
  u8g.setFontRefHeightExtendedText();
  u8g.setDefaultForegroundColor();
  u8g.setFontPosTop();
}                               //调用库函数指令

void setup()
{
  u8g_prepare();//初始化字体,屏幕参数
  u8g.firstPage();  
    do {
      u8g.drawStr(30,0,(char *)str1);      //调用行列,屏幕显示字体 
      u8g.drawStr(0,10,(char *)str2);       //调用行列,屏幕显示字体   
   } 
    while( u8g.nextPage() );      //循环空格填补
    
    Mirf.spi = &MirfHardwareSpi;
    Mirf.init();
    Mirf.setRADDR((byte *)"ABCDE"); //设置自己的地址(发送端地址),使用5个字符
    Mirf.payload = sizeof(one);         //返回上面的定义变量的字节数
    Mirf.channel = 90;              //设置所用信道
    Mirf.config();
}
 
void loop()
{
   if(Mirf.dataReady()) { 
    Mirf.getData((byte *) &one);
     show_liang(convert,one,3); //当接收到信息,便从oled显示输出接收到的数据
     Serial.begin(9600);               
      Serial.println("arrive");//当接收到信息,便从串口显示arrive,表示响应
    u8g.firstPage();  
    do {
          u8g.drawStr(100,10,convert);
       } 
    while( u8g.nextPage() );
 }
}

七、arduino使用接线

线路连接:
RF24L01: VCC 3.3V
GND GND
CE D8
IRQ --
CSN D7
SCK D13
MOSI D11
MISO D12

OLED显示(IIC):  VCC        3.3V
                GND        GND
                SCL        A5
                SDA        A4

7-实际接线.jpeg

八、成果展示

8-成果展示1.gif

9-串口输出.gif

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 可视化
    +关注

    关注

    1

    文章

    1372

    浏览量

    22964
  • Arduino
    +关注

    关注

    191

    文章

    6534

    浏览量

    197658
  • 无线透传
    +关注

    关注

    0

    文章

    9

    浏览量

    2090
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    GC433-TC007P 433MHz 无线模块:小身材大能量

    GC433-TC007P 433MHz 无线模块:小身材大能量 在无线射频和物联网领域,一款性能出色的无线
    的头像 发表于 05-09 10:50 189次阅读

    GC2400-TC013 2.4GHz无线模块:设计与应用全解析

    GC2400-TC013 2.4GHz无线模块:设计与应用全解析 在无线射频与物联网领域,一款性能出色的无线
    的头像 发表于 05-09 10:50 173次阅读

    GC433-TC016 433MHz无线模块:功能、应用与设计要点

    GC433-TC016 433MHz无线模块:功能、应用与设计要点 在无线通信领域,433MHz频段的无线
    的头像 发表于 05-09 09:50 368次阅读

    实验室数据可视化监控管理平台方案

    报管理系统中,存在工作量大、效率低等问题,难以满足实验室精细化管理的需求。 对此,数之能提供工业数据可视化管理平台,能够接入各类PLC实现数据采集与存储,通过可视化数据大屏展示各个设备状态与工艺参数,并提供数据告警
    的头像 发表于 04-27 16:40 161次阅读
    实验室数据<b class='flag-5'>可视化</b>监控管理平台方案

    3D系统可视化

    本身的深入描述和F-Theta透镜的应用示例。 光学系统的3D-可视化 VirtualLab Fusion提供的工具可以实现光学系统的3D可视化,因此可以用于检查元件的位置,以及快速了解系统内部的光
    发表于 03-30 09:25

    RS485转WiFi串口数据采集终端技术架构与实现原理

    架构、通信协议栈、数据机制及云边端协同工作原理,为工业设备的无线改造提供理论依据与技术参考。 2. 系统硬件架构设计 2.1 核心处理
    发表于 03-20 14:25

    LORA无线终端:双向高增益,5KM无线传输

    LoRa无线终端(LoRa DTU/数传电台) 是基于LoRa(Long Range)扩频技术的工业级低功耗广域网(LPWAN)通信设备,核心是实现串口设备的远距离、低功耗、抗干扰无线
    的头像 发表于 02-24 16:38 837次阅读

    可视化AR巡检:工业智能发展的新引擎

    一背景下,可视化AR巡检应运而生,它将AR术与可视化数据分析能力相结合,让巡检工作变得更直观、更智能、更高效。  AR巡检的最大特征在于“虚实结合”。通过佩戴AR眼镜或使用移动端设备,巡检人员能够在实际设备环境中叠加显示关键数据
    的头像 发表于 02-02 21:17 217次阅读

    工业数字孪生:图扑可视化技术架构与行业应用解析

    工业互联网向深度智能演进的进程中,数字孪生技术成为连接物理工业系统与虚拟信息空间的核心桥梁,而可视化则是实现数字孪生价值落地的关键载体。图扑自主研发的 HT 引擎,基于 WebGL
    的头像 发表于 12-11 16:49 823次阅读
    <b class='flag-5'>工业</b>数字孪生:图扑<b class='flag-5'>可视化</b>技术架构与行业应用解析

    工业物联网可视化平台是什么?有什么功能?

    工业物联网可视化平台是基于物联网、大数据、人工智能等技术,将工业生产中的设备、系统、流程等数据以图形方式呈现,实现实时监控、智能分析与交互式管理的数字化工具。 其核心功能涵盖数据集成
    的头像 发表于 11-17 17:49 1553次阅读

    工业可视化平台是什么

    工业可视化平台是一种基于信息技术和可视化技术,将工业生产过程中的数据、信息、流程等以直观、动态的图形方式呈现,并实现交互式管理与分析的数字
    的头像 发表于 10-24 18:00 1323次阅读

    光伏电站可视化的实现

    实现光伏电站可视化,核心是在于通过直观的视觉界面,解决传统运维中低效巡检、数据孤岛、被动响应等痛点,从而提升运营效率并提供决策支持。这是一种有效的技术手段,通过数字孪生、三维建模、数据融合等技术
    的头像 发表于 10-21 17:29 1432次阅读
    光伏电站<b class='flag-5'>可视化</b>的实现

    数字孪生可视化系统构建行业数字智能管理生态!

    数字孪生可视化系统具备丰富的模型组件,包括二维平面组件及3D模型组件,可根据用户需求进行定制。数字孪生可视化系统在行业数字升级、数字管理中有着重要的意义,充分利用大数据技术和信息技
    的头像 发表于 09-19 11:45 962次阅读
    数字孪生<b class='flag-5'>可视化</b>系统构建行业数字<b class='flag-5'>化</b>智能管理生态!

    如何使用协议分析仪进行数据分析与可视化

    使用协议分析仪进行数据分析与可视化,需结合数据捕获、协议解码、统计分析及可视化工具,将原始数据转化为可解读的图表和报告。以下是详细步骤及关键方法,涵盖从数据采集到可视化的全流程:一、数据采集与预处理
    发表于 07-16 14:16

    工业设备可视化管理系统是什么

    工业设备可视化管理系统是一种基于物联网(IoT)、大数据、云计算、数字孪生等技术,对工业设备的运行状态、性能参数、维护信息等进行实时监测、数据整合与可视化呈现的智能管理平台。它通过将复
    的头像 发表于 05-27 14:56 1400次阅读
    <b class='flag-5'>工业</b>设备<b class='flag-5'>可视化</b>管理系统是什么