基于无线传感器网络的无线温湿度采集系统(附详细使用教程+完整代码+原理图+完整课设报告)

devtools/2024/11/23 12:00:58/

🎊项目专栏:【Zigbee课程设计系列文章】(附详细使用教程+完整代码+原理图+完整课设报告)

前言

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

在这里插入图片描述

正在更新中~ ✨

🚨 我的项目环境:

  • 平台:Windows 11
  • 编译器:IAR for 8051 8.10
  • Zigbee协议栈:Zstack-CC2530-2.5.1a
  • 芯片型号:CC2530

在这里插入图片描述

🎊无线传感器网络专栏地址:【Zigbee课程设计系列文章】(附详细使用教程+完整代码+原理图+完整课设报告)


提示:以下是本篇文章正文内容,下面案例可供参考,代码链接以及电路图已经放在文末,点击获取

基于无线传感器网络的无线温湿度采集系统(附详细使用教程+完整代码+原理图+完整课设报告)

  • 1 功能介绍
  • 2 系统总体设计
  • 3 软件设计
    • 3.1 温湿度传感器驱动程序
    • 3.2 终端节点封装点对点通信程序发送信息的函数
  • 4 实物展示
  • 5 获取源代码以及电路原理图


1 功能介绍

  本项目旨在开发一种基于ZigBee无线通信技术的农业大棚环境感知系统,设计并实施了一套集成DHT11温湿度传感器和ZigBee无线通信模块的环境监测系统。DHT11传感器与ZigBee终端节点通过GPIO端口相连接,部署于农业大棚内,用于采集实时的温湿度数据。当终端节点通过DHT11获取到温湿度数据后,通过ZigBee网络由终端节点传输至协调器节点。协调器节点再将收集到的信息通过串口通信方式发送至上位机,实现数据的可视化呈现与远程监控。


2 系统总体设计

  本系统总体设计图如下图所示。本系统采用CC2530单片机作为主控制器,通过CC2530读取温湿度数据,集成DHT11温湿度传感器和ZigBee无线通信模块的农业大棚环境感知系统。DHT11传感器与ZigBee终端节点通过GPIO端口相连接,部署于农业大棚内,用于采集实时的温湿度数据。当终端节点通过DHT11获取到温湿度数据后,通过ZigBee网络由终端节点传输至协调器节点。协调器节点再将收集到的信息通过串口通信方式发送至上位机,实现数据的可视化呈现与远程监控。

系统总体架构图

3 软件设计

  对于本文而言,软件主要是依靠zigbee协议栈完成,对其SampleApp代码进行了修改,完成了本软件的设计。ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信技术。
  ZigBee协议从下到上分别为物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)、应用层(APL)等。其中物理层(PHY)和媒体访问控制层(MAC)遵循IEEE802.15.4标准的规定。

3.1 温湿度传感器驱动程序

  函数DHT11()是用于启动并读取DHT11温湿度传感器的数据的函数。

void COM(void)  // 温湿写入
{     uchar i;         for(i=0;i<8;i++)    {ucharFLAG=2; while((!wenshi)&&ucharFLAG++);……省略……ucharcomdata|=uchartemp; }    
}
void DHT11(void)   //温湿传感启动
{wenshi=0;Delay_ms(19);  //>18MSwenshi=1; P0DIR &= ~0x40; //重新配置IO口方向Delay_10us();Delay_10us();                       Delay_10us();Delay_10us();  if(!wenshi) {……省略……wendu_shi=ucharT_data_H/10; wendu_ge=ucharT_data_H%10;shidu_shi=ucharRH_data_H/10; shidu_ge=ucharRH_data_H%10;        } P0DIR |= 0x40; //IO口需要重新配置 
}

3.2 终端节点封装点对点通信程序发送信息的函数

  对于终端节点,获取到信息是不够的,还应当将信息发送给协调器节点,这就要调用到ZigBee协议栈的底层发送函数AF_DataRequest()。这个函数能够将指定的协议簇发送给指定的目标节点,该函数参数众多,第三个参数:uint16 cID 簇ID;第四个参数:len 要发送的数据的长度;第五个参数:uint8 *buf 指向发送数据缓冲的指针;第六个参数:uint8 *transID事务序列号指针。如果消息缓存发送,这个函数将增加这个数字;第七个参数:发送选项,可以由下面一项,或几项相或得到;AF_ACK_REQUEST 0x10 要求APS应答,这是应用层的应答,只在直接发送(单播)时使用;第八个参数:uint8 radius 最大的跳数,用默认值AF_DEFAULT_RADIUS。我们想要使用这个函数发送信息就需要指定合适的参数来发送协议。
  所以本项目封装了一个名为SampleApp_SendPointToPointMessage的函数,其主要功能是构建并发送一个点对点(Point-to-Point)的消息,其中包含了发送方的MAC地址以及从DHT11温湿度传感器获取的当前环境温度和湿度数据。

void SampleApp_SendPointToPointMessage( void )
{……………省略……………………if ( AF_DataRequest( &Point_To_Point_DstAddr,&SampleApp_epDesc,SAMPLEAPP_POINT_TO_POINT_CLUSTERID,12,buf,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ){}else{// Error occurred in request to send.}
}

4 实物展示

三个节点(一个协调器,两个终端)
在这里插入图片描述

室温下数据
在这里插入图片描述

三个节点(一个协调器,两个终端)
在这里插入图片描述

将温湿度传感器放在热水上数据展示

在这里插入图片描述

5 获取源代码以及电路原理图

  下载链接1🔐:点击跳转下载➡️基于无线传感器网络的无线温湿度采集系统(附详细使用教程+完整代码+原理图+完整课设报告)
   链接失效,有需要请直接私信我!


http://www.ppmy.cn/devtools/136282.html

相关文章

LRU缓存

什么是LRU缓存? LRU&#xff08;Least Recently Used&#xff09;是最近最少使用算法&#xff0c;是操作系统中用于分页置换的算法&#xff0c;如果要向内存中添加分页&#xff0c;并且内存分页已满的情况下&#xff0c;就选出最近一段时间最不常用的分页进行置换&#xff08;…

七次课掌握 Photoshop:绘画与修饰

Photoshop 提供了丰富的绘画和修饰工具&#xff0c;帮助我们在数字图像中进行创作和润色。熟练掌握这些工具和方法&#xff0c;可以提升我们的图像处理和设计水平。 一、绘画类工具 1、画笔工具 快捷键&#xff1a;B 画笔工具 Brush Tool是 Photoshop 中最基本的绘画工具&#…

全新三网话费余额查询API系统源码 Thinkphp全开源 附教程

全新三网话费余额查询API系统源码 thinkphp全开源 附教程 本套系统是用thinkphp6.0框架开发的,PHP版本需8.1以上,可查询手机号话费余额、归属地和运营商等信息,系统支持用户中心在线查询和通过API接口对接发起查询,用户余额充值是对接usdt接口或者通过后台生成卡密,源码全…

利用 GitHub 和 Hexo 搭建个人博客【保姆教程】

利用 GitHub 和 Hexo 搭建个人博客 利用 GitHub 和 Hexo 搭建个人博客一、前言二、准备工作&#xff08;一&#xff09;安装 Node.js 和 Git&#xff08;二&#xff09;注册 GitHub 账号 三、安装 Hexo&#xff08;一&#xff09;创建博客目录&#xff08;二&#xff09;安装 H…

【Linux】详解shell代码实现(上)

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;青果大战linux 总有光环在陨落&#xff0c;总有新星在闪烁 学校开始搞蓝桥的校选…

【数据结构】树——链式存储二叉树的基础

写在前面 书接上文&#xff1a;【数据结构】树——顺序存储二叉树 本篇笔记主要讲解链式存储二叉树的主要思想、如何访问每个结点、结点之间的关联、如何递归查找每个结点&#xff0c;为后续更高级的树形结构打下基础。不了解树的小伙伴可以查看上文 文章目录 写在前面 一、链…

使用chrome 访问虚拟机Apache2 的默认页面,出现了ERR_ADDRESS_UNREACHABLE这个鸟问题

本地环境 主机MacOs Sequoia 15.1虚拟机Parallels Desktop 20 for Mac Pro Edition 版本 20.0.1 (55659)虚拟机-操作系统Ubuntu 22.04 服务器版本 最小安装 开发环境 编辑器编译器调试工具数据库http服务web开发防火墙Vim9Gcc13Gdb14Mysql8Apache2Php8.3Iptables 第一坑 数…

B树的简单实现

template<class K, size_t M> struct BTreeNode {K _keys[M]; // 用于存储关键字的数组&#xff0c;最多容纳 M 个关键字&#xff08;超额一个&#xff0c;为分裂提供空间&#xff09;。BTreeNode<K, M>* _subs[M 1]; // 存储子节点的指针数组&#xff0c;最多 M1…