Arduino UNO 可视化GT-24工业级无线透传
创始人
2024-01-17 12:35:26
0

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

    • 一、前言
    • 二、硬件要求
    • 三、参数基础
    • 四、原理剖析
    • 五、透传思路
    • 六、程序概要
    • 七、arduino使用接线
    • 八、成果展示

一、前言

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

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

二、硬件要求

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

此外还内置RFX2401功放芯片,内建LNA,接收灵敏度提高10dBm,工作2.4GHz~2.5GHz的ISM频段。该模块发射功率足,频谱特性好,谐波小,频道串扰小,体积超小,全部村田原装料,工业级标准的典范。
请添加图片描述
OLED属于一种电流型的有机发光器件,这里作为试验显示作用。因为其显示的特殊性,对于arduino更多的是U8g2库文件的编写以及调用。
请添加图片描述

三、参数基础

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中的所有配置寄存器 并且在芯片的所有操作模式下都是可访问的。
在这里插入图片描述
模块为 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 就行。
在这里插入图片描述
oled使用相关的U8g2库,选择合适的分辨率和尺寸,进行显示字符。
请添加图片描述

五、透传思路

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

六、程序概要

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

#include  
#include 
#include 
#include 
#include 
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;ctype=(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);                //发送指令,发送随机数valuewhile(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 
#include 
#include 
#include 
#include 
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;ctype=(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.3VGND        GNDSCL        A5SDA        A4

在这里插入图片描述

八、成果展示

请添加图片描述
请添加图片描述

上一篇:花落了

下一篇:燕文

相关内容

热门资讯

ajax学习1 不刷新页面的情况下,向服务端发送请求,异步的js和XMLajax不是新的...
es6的generator 一.generator函数的大致介绍 generator函数是es6引入的,主要用于异...
南京邮电大学数据库第一次课后作... 1.单选题 (5分) (B)是存储在计算机内有结构的数据的集合。 (A)...
不退位减教学设计 不退位减的教学设计(精选3篇)  作为一位优秀的人民教师,通常需要准备好一份教学设计,教学设计是一个...
开口呼開口呼 开口呼(開口呼)开口呼(開口呼)kāi kǒu hū[释义] 等韵学术语。按照韵母把字音分成开口呼、...
《学会合作》教学反思 《学会合作》教学反思  作为一位到岗不久的教师,教学是重要的工作之一,写教学反思能总结我们的教学经验...
怎样教育儿童防走失 怎样教育儿童防走失怎样教育儿童防走失(2013-10-23 12:06:04) 导读:节日期间动物园...
SQLMap 源码阅读 0x01 前言 还是代码功底太差,所以想尝试阅读 sqlmap 源码一下,...
【编程基础】025.C语言中函... 文章目录C语言中函数的应用1、自定义函数处理最大公约数与最小公倍数2、自定义函数求一元二次方程3、自...
Map集合体系、集合的嵌套 一. Map集合体系 1. Map集合的概述 Map集合也称键值对集合Map集合的特点是由键决定的 ...
百日维新的意思, 百日维新的... 百日维新的意思, 百日维新的解释【词语】 百日维新【全拼】: 【bǎirìwéixīn】【释义】: ...
道家静心咒 道家静心咒老君曰:大道无形,生育天地。大道无情,运行日月。大道无名,长养万物。吾不知其名强名曰:「道...
下册音乐教学计划 关于下册音乐教学计划3篇下册音乐教学计划 篇1  本学期按照学校的安排,我担任了三个班级的音乐课,这...
浔阳 浔阳浔阳位于县城北偏东方向6公里处,西至端固庄,南至康家庄,北接宋北村。《栾城县志》记载,浔阳村原名...
libcurl库简介 一、libcurl简介libcurl是一个跨平台的网络协议库,支持http, http...
【分享】用友U8无需代码连接钉... 用友U8用户使用场景: 企业使用用友U8快速整合记账管理、报账统计工作...
爆笑音乐小品 爆笑音乐小品《音乐剧之孔雀东南飞》本剧根据古典名著《孔雀东南飞》改编为音乐剧,配合音乐,剧情滑稽搞笑...
《祖父的园子》教学设计 《祖父的园子》教学设计(精选22篇)  作为一位无私奉献的人民教师,就有可能用到教学设计,教学设计是...
美国留学地球科学专业申请条件... 关于美国留学地球科学专业申请条件详解  想留学美国大学地球科学专业的学生首先要知道地球科学专业的几所...
草莽 草莽草莽cǎo mǎng[释义]①(名)草丛。②(名)引申为草野、乡野。[构成]偏正式:草(莽[例句...