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


🎊项目专栏:【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.mzph.cn/diannao/61601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

启动前后端分离项目笔记

一、项目 首先可以在各大开源软件拿取一个项目&#xff0c;以下项目是在gitee上获取 二、准备工作 配置JDK环境&#xff0c;node.js环境&#xff0c;安装vue脚手架工具以及maven环境 三、前端项目启动 在前端目录下安装依赖 npm install 如果报错可能是因为权限不够&#…

代理池搭建优化-(书接上回,优化改进)

炮台有效炮弹实现 声明 学习视频来自 B 站UP主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 ✍&#x1f3fb;作者…

odoo18中模型的常用字段类型

字段的公共属性: Char 字符类型&#xff0c;对应数据库中varchar类型&#xff0c;除了通用类型外接收另外两个参数&#xff1a; size: 字符长度&#xff0c;超出的长度将被截断 trim: 默认True&#xff0c;是否字段值应该被去空白。 Text 文本类型&#xff0c;对应数据库…

ABAP开发实战——表单打印单位输出问题

在之前的文章中有提到过ABAP开发报表程序时会出现单位显示未转化值&#xff0c;就是说在中文环境下&#xff0c;用户希望看到的单位是“套”&#xff0c;但是报表程序输出的确是“SUI”&#xff0c;这时候需要取数时添加语句进行转化&#xff0c;但是&#xff0c;最近开发表单打…

基于SpringBoot的城镇保障性住房管理系统【附源码】

基于SpringBoot的城镇保障性住房管理系统 效果如下&#xff1a; 系统登录页面 用户管理页面 房源信息管理页面 住房分配管理页面 公示信息页面 系统主页面 用户登陆页面 房源信息页面 研究背景 随着城市化进程的加速&#xff0c;住房问题一直是人们关注的焦点。为了解决低收…

Java文件上传解压

目录结构 工具类 枚举 定义文件类型 public enum FileType {// 未知UNKNOWN,// 压缩文件ZIP, RAR, _7Z, TAR, GZ, TAR_GZ, BZ2, TAR_BZ2,// 位图文件BMP, PNG, JPG, JPEG,// 矢量图文件SVG,// 影音文件AVI, MP4, MP3, AAR, OGG, WAV, WAVE}为了避免文件被修改后缀&#xff0…

IDEA 下载源码很慢,Download Source使用阿里云镜像仓库

参考&#xff1a; IDEA maven本地仓库、中心仓库、远程仓库配置 在观看第三方jar包的api时&#xff0c;有时候需要下载源码看下注释。 这个时候用idea 上的提示的Download Source会发现一直下载不下来。 因此就怀疑用的是apache的maven仓库&#xff0c;不是我们用的 aliyun 镜…

英文版本-带EXCEL函数的数据分析

一、问题&#xff1a; 二、表格内容 三、分析结果 四、具体的操作步骤&#xff1a; 销售工作表公式设计与数据验证 类别&#xff08;Category&#xff09;列公式&#xff1a; 在Category列&#xff08;假设为D列&#xff09;&#xff0c;根据ProductCode在Catalogue工作表中查找…

三层交换机静态路由实验

1、前置知识 2、实验目的 3、实验器材&#xff1a; 3560-23PS交换机2台、主机4台、交叉线1根和直通网线4根。 4、实验规划及拓扑 实验要求&#xff1a; &#xff08;1&#xff09;在交换机A和交换机B上分别划分基于端口的VLAN&#xff1a; 交换机 VLAN 端口成员 交换机…

PLC与PLC跨网段通讯的几种方法:厂区组网实践

PLC通常通过以太网或其他工业网络协议&#xff08;如PROFINET、Modbus TCP等&#xff09;进行通信。当PLC位于不同的网段时&#xff0c;它们不能直接通信&#xff0c;需要特殊的配置或设备来实现通信&#xff0c;不同网段的PLC通讯变得尤为重要。 随着工业网络的发展和工业4.0概…

观察者模式和订阅模式

观察者模式和订阅模式在概念上是相似的&#xff0c;它们都涉及到一个对象&#xff08;通常称为“主题”或“发布者”&#xff09;和多个依赖对象&#xff08;称为“观察者”或“订阅者”&#xff09;之间的关系。然而&#xff0c;尽管它们有相似之处&#xff0c;但在某些方面也…

HarmonyOs鸿蒙开发实战(20)=>一文学会基础使用组件导航Navigation

敲黑板&#xff0c;以下是重点技巧。文章末尾有实战项目效果截图及代码截图可参考 1.概要 Navigation是路由导航的根视图容器Navigation组件主要包含​导航页&#xff08;NavBar&#xff09;和子页&#xff08;NavDestination&#xff09;&#xff0c;导航页不存在页面栈中&am…

DevOps-Jenkins-新手入门级

1. Jenkins概述 1. Jenkins是一个开源持续集成的工具&#xff0c;是由JAVA开发而成 2. Jenkins是一个调度平台&#xff0c;本身不处理任何事情&#xff0c;调用插件来完成所有的工作 1.1 什么是代码部署 代码发布/部署>开发书写的程序代码---->部署测试/生产环境 web服务…

在win10下搭建ftp服务器

1 说明 本文档在win10下实现。 2 安装ftp服务器 打开“控制面板/程序和功能”&#xff0c;如下&#xff1a; 点击“启用或关闭windows功能”&#xff0c;如下&#xff1a; 安装“ftp服务器”&#xff0c;将下图红色圈中部分打勾&#xff0c;如下&#xff1a; 必须勾选…

数据结构C语言描述4(图文结合)--栈的实现,中序转后序表达式的实现

前言 这个专栏将会用纯C实现常用的数据结构和简单的算法&#xff1b;有C基础即可跟着学习&#xff0c;代码均可运行&#xff1b;准备考研的也可跟着写&#xff0c;个人感觉&#xff0c;如果时间充裕&#xff0c;手写一遍比看书、刷题管用很多&#xff0c;这也是本人采用纯C语言…

vue中路由缓存

vue中路由缓存 问题描述及截图解决思路关键代码及打印信息截图 问题描述及截图 在使用某一平台时发现当列表页码切换后点击某一卡片进入详情页后&#xff0c;再返回列表页时页面刷新了。这样用户每次看完详情回到列表页都得再重新输入自己的查询条件&#xff0c;或者切换分页到…

如何在 UniApp 中实现 iOS 版本更新检测

随着移动应用的不断发展&#xff0c;保持应用程序的更新是必不可少的&#xff0c;这样用户才能获得更好的体验。本文将帮助你在 UniApp 中实现 iOS 版的版本更新检测和提示&#xff0c;适合刚入行的小白。我们将分步骤进行说明&#xff0c;每一步所需的代码及其解释都会一一列出…

移动充储机器人“小奥”的多场景应用(上)

一、高速公路服务区应用 在高速公路服务区&#xff0c;新能源汽车的充电需求得到“小奥”机器人的及时响应。该机器人配备有储能电池和自动驾驶技术&#xff0c;能够迅速定位至指定充电点&#xff0c;为待充电的新能源汽车提供服务。得益于“小奥”的机动性&#xff0c;其服务…

Redis 的代理类注入失败,连不上 redis

在测试 redis 是否成功连接时&#xff0c;发现 bean 没有被创建成功&#xff0c;导致报错 根据报错提示&#xff0c;需要我们添加依赖&#xff1a; <dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId>&l…

桌面怎么快速添加便签?适合桌面记事的便签小工具

在数字化时代&#xff0c;我们每天面对电脑处理大量任务&#xff0c;无论是工作计划、会议纪要还是个人生活琐事&#xff0c;都需要一个可靠的桌面记事工具来帮助我们记录和整理。因此&#xff0c;一款适合桌面使用的便签软件成为了我们不可或缺的助手。 敬业签就是这样一款功…