EBYTE

EBYTE

简化Arduino和Teensy无线通信的强大解决方案

这个库为UART型EBYTE收发器提供支持,适用于Arduino和Teensy等MCU。用户可通过该库配置模块参数、发送和接收数据。它兼容多种EBYTE模块,提供简洁接口以及详细的连接指南。库中还包含使用技巧和调试建议,有助于开发者快速实现稳定的无线通信功能。

EBYTE无线传输模块ArduinoMCU串口通信Github开源项目

<b><h2><center>更新 </center>

<li>2024年8月10日,修复了连接未建立时的尝试迭代器 </li> </h1></b> <br> <b><h2><center>EBYTE 收发器</center></h1></b>

本库旨在与UART型EBYTE收发器(如E44-TTL-100)一起使用,这些是适用于Teensy和Arduino等微控制器的小型无线单元。本库允许用户编程操作参数,并可以发送和接收数据。 该公司生产多种具有不同功能的模块,但此处的大多数#defines应该与它们兼容。 所有常量都是从多个数据表中提取的,并以二进制形式列出,因为数据表就是这样表示每个设置的。 希望对常量的任何更改或添加都可以直接从数据表复制到#defines中。 使用本库大约消耗970字节。

您实际上只需要这个库来编程这些EBYTE单元。

要读取数据结构,您可以直接在EBYTE的Serial对象上调用readBytes方法: <br> <br> <b>ESerial.readBytes((uint8_t*)& MyData, (uint8_t) sizeof(MyData));</b> <br> <br> 要写入数据结构,您可以直接在EBYTE的Serial对象上调用write方法: <br> <br> <b>ESerial.write((uint8_t*) &MyData, (uint8_t) sizeof(MyData) );</b> <br> <br> <br> <b> EBYTE型号(仅显示部分列表)</b> 旧型号命名方案 E30-TTL-100,E30-490T20D, E31-TTL-100, E32-TTL-100, E32-TTL-500, E32-TTL-1W, E41-TTL-100, E41-TTL-100, E44-TTL-100, E44-TTL-500, E44-TTL-1W, E50-TTL-100, E50-TTL-500, E51-TTL-100, E51-TTL-500, E51-TTL-1W

新型号命名方案 E22-900T22S, E22-230T22S, E22-400T22S, E22-230T30S, E22-400T30S, E22-900T30S, E30-433T20S3, E30-170T20D, E30-170T27D, E30-780T20S, E30-868T20S, E30-868T20D, E30-915T20D, E30-490T20D, E30-433T20S, E30-433T20D, E30-915T20S, E30-490T20S, E31-433T30S, E31-433T17S3, E31-230T33D, E31-230T17D, E31-230T27D, E31-433T17S, E31-433T17D, E31-433T27D, E31-433T30D, E31-433T33D, E32-433T20DC, E32-433T20S, E32-433T20S2T, E32-433T27D, E32-433T30D, E32-433T30S, E32-868T20D, E32-868T20S, E32-868T30D, E32-868T30S, E32-915T20D, E32-915T20S, E32-915T30D, E32-915T30S, E32-170T30D, E32-400T20S

注意:请查看EBYTE网站,确保所选模块支持UART通信,某些模块仅支持SPI。

这里有一个关于库使用的YouTube视频:https://youtu.be/hMjArKGucFA

<b><h3> 模块连接 </b></h3> 模块 MCU 描述

  1. MO 任意数字引脚* 控制工作/编程模式的引脚
  2. M1 任意数字引脚* 控制工作/编程模式的引脚
  3. Rx 任意数字引脚* 连接到MCU的TX引脚(模块向MCU发送数据,因此MCU必须从模块接收数据)
  4. Tx 任意数字引脚* 连接到MCU的RX引脚(模块向MCU发送数据,因此MCU必须从模块接收数据)
  5. AUX 任意数字引脚 指示操作完成的引脚(低电平表示忙碌,高电平表示完成)(可以用-1省略,但会使用固定恢复时间,可能不足以完成操作)
  6. Vcc +3.3V或5.0V,注意使用5.0V时单元可能会更热并消耗更多电力
  7. Vcc 接地 模块和MCU必须共地

注意

  1. 连接到Arduino的0和1引脚时要小心,因为这些引脚用于与PC的USB连接,所以在编程时不能连接EBYTE。我建议不要使用Arduino的0和1引脚。
  2. 这些单元的信号线为3.3V,但可以承受5V,然而5V可能导致通信失败。如果使用5V的MCU(如Arduino),您可能需要执行以下操作: a) 如果使用Arduino,可能需要在Rx和AUX引脚(可能还有Tx)上加4.7K-10K的上拉电阻。 b) 如果使用Arduino,可能需要在MCU的Tx和收发器的Rx之间加一个4.7K的串联电阻。
  3. 在我的一些应用中,没有足够的数字引脚来连接Aux引脚。不用担心(只需在创建对象的参数列表中传入-1)。库中内置了适当的延迟,以确保传输完成——您可能需要实验来确定合适的延迟时间。
  4. 连接的串行引脚取决于MCU,例如Teensy 3.2:Serial1的Rx=0,Tx=1,Serial2的Rx=9,Tx=10,Serial3的Rx=7,Tx=8。Arduino可以使用SoftwareSerial(MCU_Rx_pin, MCU_Tx_pin)在大多数串行引脚上使用,除了0和1号引脚,因为这些是用于USB的。
  5. 一些MCU,如Teensy和ESP32,不允许使用SoftwareSerial创建通信端口。不用担心,只需将EBYTE直接连接到专用的UART端口(例如Teensy 3.2上的0号和1号引脚用于Serial1)。

<b><h3>制造商网站</b></h3> http://www.ebyte.com/en/ 本库适用的示例模块 http://www.ebyte.com/en/product-view-news.aspx?id=174

<b><h3>一般代码用法</b></h3>

  1. 创建一个串行对象
  2. 创建使用该串行对象的EBYTE对象
  3. 初始化串行对象
  4. 初始化EBYTE对象
  5. 设置参数(可选,但如果发送方和接收方不同则必需)
  6. 发送或接收数据(单字节)或创建并发送数据结构

<b><h3>使用技巧</b></h3>

为获得最佳范围:

<ul> <li> 数据表表明,天线离地2米时效果最佳</li> <li> 理想情况下应视线可见,但根据我的个人测试,即使有一些障碍物,传输仍然可以成功</li> <li> 较慢的空中数据率可以改善范围,但由于传输时间较长,数据发送频率会受到影响</li> <li> 考虑使用高增益天线(可从制造商处购买),详情请参见他们的网站</li> <li> 数据表称,为获得最大范围,应使用5.0伏电压供电(信号线保持3.3V)。我个人发现更高的供电电压对范围影响不大</li> <li> 数据表称,为获得最大范围,应将空中数据率设置为2.4 bps。我个人发现较低的数据率对范围影响不大,而且较低的数据率可能会限制数据发送的频率。 </li> </ul> <b><h3>数据传输数据包</b></h3> <ul> <li>该库有一个发送单字节的方法,但如果需要发送更多数据,请创建一个数据结构,并使用库的SendStruct(&struct, sizeof(struct))方法发送数据结构。注意传递引用,所以在结构名前加上&</li> <li>同样,较慢的数据速率需要更长时间,你需要根据数据大小实验理想的空中数据速率范围</li> <li>如果你需要在不同的MCU之间使用结构体发送数据,每个处理器的打包方式可能会有所不同。如果在接收端得到损坏的数据,有一些方法可以强制编译器不优化结构体打包——我还没能让它们正常工作。对我有效的方法是使用一个创建结构体并处理发送的库。查看EasyTransfer.h(搜索并选择你喜欢的作者)。在这些库中,你将使用它们的方法来发送和获取结构体(有硬件和软件库,请根据情况使用。这意味着你可以使用这个库来编程和管理设置,但使用EasyTransfer来处理通过EBYTE使用的串行线发送数据。听起来很奇怪,但这与使用Serial1.sendBytes(...)没有什么不同,因为这实际上就是这个库在调用的内容。也许有一天我会将EasyTransfer技术集成到这个sendstruct库中)。 </ul> <b><h3>调试</b></h3> <ul> <li>如果你的无线模块在PrintParameters()方法中返回全0或只返回型号,并且你正在使用硬件串口,并且你正在使用ESP32,请确保在begin()语句中使用完整的串口定义,如下所示:</li> <br>
  • #include <HardwareSerial.h>

  • #define Serial_0 Serial2

  • Serial_0.begin(9600, SERIAL_8N1, 16, 17);

<li>如果你的无线模块在PrintParameters()方法中返回全0,请确保你的接线正确且工作正常,MCU的Rx需要连接到EBYTE的Tx,反之亦然。同时确保M0、M1和AUX连接到有效的数字端口。大多数问题都是由于数据线连接不正确造成的</li> <li>如果你的无线模块在PrintParameters()方法中返回全0,并且你确定接线正确,你的模块在模式更改期间可能反应较慢,无法及时响应pinMode的变化。数据手册说需要2毫秒的延迟,但我发现10毫秒更可靠。对于某些单元,甚至需要更多时间。库的默认值是50毫秒,但如果参数读取不正确,请在.h文件中增加这个值。</li> <li>如果你的无线模块在PrintParameters()方法中返回全0,并且你确定接线正确,且你的MCU是5V的,你可能需要在MCU的Tx和AUX线上添加电压分压器。如果向这些模块发送5V信号,它们可能会变得不稳定。当使用单独的3.3V电源为模块供电时,我得到了非常可靠的结果。我通常使用降压转换器或线性稳压器。</li> <li>如果使用5V MCU,你可能需要在MCU的Tx线到EBYTE的Rx线以及可能的M0和M1线上加串联电阻。这些EBYTE单元应该能承受5V,但小心为上。制造商还声称MCU的Tx线和AUX可能需要4.7K上拉电阻。我在UNO、MEGA和NANO上使用这些收发器时没有使用任何电阻,一切正常。但我确实遇到过一次NANO无法与这些收发器一起工作,需要一些奇怪的供电方式。</li> <li>如果你使用的是他们的1W单元(30dB功率输出),请将单元与MCU的板载电源分开供电。电流消耗可能超过板载额定值,导致MCU损坏。我在尝试为1W单元供电时曾经烧毁了NANO的板载电压调节器。</li> <li>如果发射器和接收器使用不同的MCU(Arduino <-> Teensy),发送数据结构的打包方式会有所不同,无论结构数据类型如何。这是由于8位处理器和32位处理器处理打包过程的方式不同。选项1)使用EasyTransfer库。我使用这个库,效果很好。选项2)尝试使用__attribute__((packed))变量属性。选项3)别笑,但如果发送浮点数,考虑将浮点数乘以100(并重新转换为整数),然后在接收端将该值除以100(重新转换为浮点数)</li> <li>如果你从.PrintParameters得到的数据似乎损坏了,试着在你的.INO程序中添加#include "avr/io.h"</li> <li>如果你从单独的电源为EBYTE模块供电,请确保所有接地都已连接</li> </ul>

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多