当前位置:首页 > 嵌入式 > 程序员小哈
[导读]关于DL-LN33 ZigBee模块的介绍。

点击上方“嵌入式从0到1”,选择“置顶/星标公众号

干货福利,第一时间送达!

实现功能

  • 模块0x0002通过PC端的串口助手发送数据包“FE 06 A0 A1 01 00 01 00 FF”,点亮最小系统板上的LED指示灯;
  • 模块0x0002通过PC端的串口助手发送数据包“FE 06 A0 A1 01 00 01 01 FF”,熄灭最小系统板上的LED指示灯;
  • 按最小系统板上的白色按键,实现通过0x0001模块点亮0x0002模块上的红灯亮5S。

原理图

最小系统板底板与ZigBee模块连接原理图
ZigBee模块底板连接原理图

此底板与ZigBee模块连接之后,只需要一根Micro USB线即可实现对ZigBee模块的各种功能调试,此底板相当于一个USB转TTL线的作用,底板上的主芯片为CH340C。

测试网络是否正常

通过与地址0x0002模块相连的COM14发送测试数据,

例如发送:

FE 05 91 20 00 00 32 FF

或者:

FE 05 91 20 02 00 32 FF

让自己模块上的红色LED点亮5秒。

==>证明硬件连接没有问题。

然后测试网络是否正常,发送测试数据:

FE 05 91 20 01 00 32 FF

此指令将使地址0x0001的模块亮5S。

==>证明网络是正常的。

PC 串口助手发送数据

如下图所示,发送如下数据包:

FE 06 A0 A1 01 00 01 00 FF

地址0x0002的模块收到数据包之后,会将数据发送至目标地址0x0001模块,STM32最小系统板接收地址0x0001模块收到的数据,进而对收到的数据进行解析,然后点亮最小系统板上的绿色LED。

要想实现对数据包的解析,要完成如下几部分工作:

  • 正确接收完整数据包
  1. 可以采用空闲中断接收
  2. 采用定时器的方式,保证接收数据的完整
  • 对数据包进行解析

根据DL-LN33模块协议及自定义协议,综合解析数据包内容。

此Demo可用于模拟根据需要自动触发某个动作或者自动上传传感器数据至其他模块。

自定义通讯协议说明
  1. 数据位中第一位01代表绿色指示灯:
  2. 数据位中第二位代表输出电平:
  • 0x00代表输出低电平
  • 0x01代表输出高电平

通讯协议自己可以根据需要随意定义,只要能保证数据传输的准确性、解析数据包后的结果唯一性即可,因为本例只是实现点灯功能,所以通讯协议设定的比较简单。

按键触发数据传输

按键按下将发送如下数据包:

FE 05 91 20 02 00 32 FF

点击核心板上的按键,上面数据将通过地址0x0001的模块传输出去,地址0x0002的模块收到数据之后,模块上的红灯亮5S。

按键触发代码
key = KEY_Scan(0);
  
if(key)   

 switch(key)    
 { 
  case KEY0_PRES:
   {
    memset(USART3_TX_BUF, 0sizeof(USART3_TX_BUF)); 
        
    // 让地址0x0002的模块亮5S:FE 05 91 20 02 00 32 FF
    USART3_TX_BUF[0] = 0xFE;
    USART3_TX_BUF[1] = 0x05;
    USART3_TX_BUF[2] = 0x91;
    USART3_TX_BUF[3] = 0x20;
    USART3_TX_BUF[4] = 0x02;
    USART3_TX_BUF[5] = 0x00;
    USART3_TX_BUF[6] = 0x32;
    USART3_TX_BUF[7] = 0xFF;

    zigbee_send_cmd_by_lens(USART3_TX_BUF,8,"",10);
    
    printf("KEY0_PRES...\r\n");
   }
   break;         
  default:
   break;
 }   
}

这里注意封装的函数:

u8 zigbee_send_cmd_by_lens(u8 *cmd,u8 lens,u8 *ack,u16 waittime);

由于发送的指令中,会存在0x00,所以串口发送函数要有一个发送字节长度的参数才行,否则发送的数据可能不全。

参数ack可以传进去一个返回值的数组,用于校验指令返回值是否正确,进而判断指令是否发送成功。

因为点亮模块上的红色LED的指令,属于内部端口指令,没有返回值,所以咱们的ack参数传进去一个空字符串即可。

结果展示


小结

这是DL-LN33 ZigBee模块介绍的最后一片网文了,有什么问题大家可以留言区交流,或者加我微信进行直接沟通,本文的测试代码可以在留言区置顶消息中获取。


参考阅读

2.4G ZigBee无线自组网mesh网络模块简介
DL-LN33 ZigBee模块系列网文第二篇:指令分析/地址和组网信息的修改
DL-LN3X ZigBee模块上位机网络拓扑软件演示及信号强度测试


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着现代家庭生活方式不断升级,厨房已不再只是功能空间,而逐渐成为融合审美表达、健康管理与智能体验的重要场域。消费者在关注空间整体性的同时,也对食材储存的安全性、洁净度以及使用便利性提出了更高要求。基于对中国家庭真实使用场...

关键字: 冰箱 嵌入式

在嵌入式系统、工业物联网等各类电子设备中,UART与网口是两种应用广泛的通信接口,前者作为经典的串行通信接口,承担着简单设备互联、调试日志传输等基础任务,后者则专注于高速、远距离的数据交互,是设备接入网络、实现大数据量传...

关键字: 嵌入式 通信接口 网口通讯

在软件开发领域,设计模式被誉为“解决特定问题的最佳实践”,但在嵌入式开发中,它却常常处于“边缘地带”。许多嵌入式工程师职业生涯中可能从未刻意使用过设计模式,甚至认为这些“软件工程理论”与单片机、传感器、实时系统等硬件紧密...

关键字: 嵌入式 设计模式

在居住结构持续演进与消费需求不断升级的背景下,中国家庭厨房正经历从“功能集合”向“系统空间”的深层转变。厨房不再只是烹饪的场所,而逐渐成为融合效率、健康、美学与家庭互动的重要生活空间。基于对这一趋势的长期洞察,西门子家电...

关键字: 嵌入式 蒸玲珑

在物联网设备、工业控制系统和智能家居等嵌入式场景中,轻量级WEB服务器扮演着核心角色。它们不仅需要满足资源受限环境下的性能需求,还需兼顾安全性、可扩展性和开发效率。本文从资源占用、功能特性、适用场景三个维度,对比分析六大...

关键字: 嵌入式 WEB服务器

在嵌入式软件开发工具领域,一场悄然的变革正在发生。随着全球软件行业向订阅制转型,嵌入式软件开发工具的授权模式也迎来了重要调整。市场上的嵌入式软件开发工具基本可以分为三类:商用开发工具,开源开发工具和厂商私有开发工具,其中...

关键字: 嵌入式 MCU RISC-V

在资源受限的嵌入式系统中,传统调试工具(如JTAG)往往成本高昂且占用引脚资源。本文介绍一种基于串口的低成本调试方案,通过自定义协议实现内存数据的实时监控,硬件成本可降低80%以上,特别适用于8/16位MCU开发场景。

关键字: 嵌入式 串口 内存数据

随着国家家电以旧换新补贴政策的持续推进,绿色节能、品质升级正成为越来越多家庭的新年焕新关键词。面对消费者在居住空间、生活效率与健康体验上的多元需求,西门子家电围绕新春焕新节点,正式开启“开门红”焕新季,通过国家补贴与企业...

关键字: 嵌入式 咖啡机 嵌饮机

设计人员通过瑞萨远程板场可在新MCU发布首日免费开始编程和编码

关键字: MCU 嵌入式 电路板
关闭