前言
- 👑由于无线传感器网络(也即是Zigbee)作为🌐
物联网工程
的一门必修专业课,具有很强的实用性,因此很多院校都开设了zigbee的实训课程; - 👑同时最近很多使用了我的单片机课设的同学又来私信咨询我
基于Zigbee的的课程设计
的相关问题; - 👑所以为了帮助各位有需要的同学顺利完成自己的课程设计,有个顺利的假期,同时为了方便各位想要学习ZigBee的同学查找学习,建立了本专栏。
- 💞但是由于笔者正在读研,每天的任务比较重,只能在从实验室回来后,晚上抽一个小时的时间来写,所以,更新不易,靠爱发电。
正在更新中~ ✨

🚨 我的项目环境:
- 平台:Windows 11
- 编译器:IAR for 8051 8.10
- Zigbee协议栈:Zstack-CC2530-2.5.1a
- 芯片型号:CC2530
🎊无线传感器网络专栏地址:【Zigbee课程设计系列文章】(附详细使用教程+完整代码+原理图+完整课设报告)
提示:以下是本篇文章正文内容,下面案例可供参考,代码链接以及电路图已经放在文末,点击获取,如失效请私信
基于无线传感器网络的无线土壤湿度采集系统(附详细使用教程+完整代码+原理图+完整课设报告)
1 功能介绍
- 终端获得土壤湿度传感器的数据
- 终端将土壤湿度的数据无线发送至协调器节点
- 协调器接收各个终端节点数据进行汇总处理
- 协调器的LCD上显示各个终端节点的土壤湿度数据
- 报警功能:协调器根据阈值上限与下限对各个终端中的异常土壤湿度数据进行蜂鸣器报警处理
- 协调器串口将汇总得到的土壤湿度数据串口发送至电脑串口软件进行显示
2 系统总体设计
本系统采用CC2530单片机作为主控制器,通过CC2530读取土壤湿度数据,集成电阻式土壤湿度传感器和ZigBee无线通信模块的农业大棚环境感知系统。电阻式土壤湿度传感器与ZigBee终端节点通过GPIO端口相连接,部署于农业大棚内,用于采集实时的土壤湿度数据。当终端节点通过土壤湿度传感器获取到湿度数据后,通过ZigBee网络由终端节点传输至协调器节点。协调器节点不仅将收集到的信息通过串口通信方式发送至上位机,还配备有OLED屏幕,用于本地展示采集到的土壤湿度数据,两种方式结合来实现数据的可视化呈现与远程监控。同时,协调器还可以根据提前设置好的阈值来进行判断,如果超出或者低于一定范围,那么就会启动蜂鸣器报警。
如下图所示:
3 硬件设计原理图

4 软件设计
对于本文而言,软件主要是依靠zigbee协议栈完成,对其SampleApp代码进行了修改,完成了本软件的设计。一个ZigBee网络可以包含协调器、路由器和终端设备设备类型。
4.1 终端节点软件设计
对于本文中的终端设备来说,软件设计包括了系统的初始化,首先调用协议栈中的串口初始化函数
函数来初始化串口,并通过MT_UartRegisterTaskID()将当前任务ID注册到串口模块
。这使得可以处理来自串口的输入,并且能够对信息进行串口输出。接着需要配置协议栈的ADC转换以及引脚功能配置
,确保引脚能够接入ADC转换模块
,并作为模拟输入
使用。最后为了确保设备能够正确地与其他节点通信,我们需要设置目标地址
。
其次,软件设计还包含定时器的设置
,每当定时器时间到了后,就启动无线信息发送函数
,调用Z-Stack协议栈中的ADC读取转换函数来进行土壤湿度的读取与转换
,将节点设置好的ID与土壤湿度数据进行无线发送
。部分代码如下:
// 重新启动定时器
osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
(SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT + (osal_rand() & 0x00FF)) );
……略……
// 转化
Value=((2047-Adc)/2047.0)*100;
Adc=(uint16)(Value * 100);
str[1] = (Adc >> 8) & 0xFF; // 存储高字节
str[2] = Adc & 0xFF; // 存储低字节
4.2 协调器节点软件设计
同终端节点一样,协调器在刚刚上电的时候也需要进行初始化。首先是调用Z-Stack协议栈
中MT层的串口初始化函数
,并对串口的任务进行注册,使得能够正常进行串口的输入输出。其次是对蜂鸣器引脚进行初始化配置
,能够驱动高电平蜂鸣器进行工作。其次是对信息接收处理函数的编写,代码中对不同id的终端节点的数据进行了处理
,存储在不同的变量当中。开启了定时器,当定时器时间到后,启动串口输出,将不同id的数据进行串口,并将数据以及阈值显示在OLED屏幕上
,这样做的好处是能够将信息的接收与数据的显示刷新分离开来,完成程序之间的解耦。对数据进行阈值判断
,当有任意一个节点的湿度数据不在阈值范围内时候,就启动蜂鸣器进行报警
。
篇幅所限,本文略去部分软件设计思路以及流程讲解,报告中更加详细,可点击链接自取所需资料。
5 实物展示

如下图所示,协调器接收到两个节点上传的数据后进行处理,将得到的数据
以及提前定义好的阈值
显示在OLED屏幕上,能够直观地看到当前系统的数据状态。
本系统中,只要有一个节点的湿度不在阈值范围内,就会报警。
现在节点1的湿度低于最低阈值,节点2的湿度高于最高阈值,蜂鸣器报警长鸣。
并且协调器设置了定时器,当定时器归零的时候就会开启串口输出当前系统内的信息,方便远程查看。
6 链接
下载链接1🔐:点击跳转下载➡️基于无线传感器网络的无线土壤湿度采集系统(附详细使用教程+完整代码+原理图+完整课设报告)
链接易失效,亦可直接私信我要!