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

正在更新中~ ✨
🚨 我的项目环境:
- 平台:Windows 11
- 编译器:IAR for 8051 8.10
- Zigbee协议栈:Zstack-CC2530-2.5.1a
- 芯片型号:CC2530

🎊课设项目专栏:【Zigbee课程设计系列文章】(附详细使用教程+完整代码+原理图+完整课设报告)
提示:以下是本篇文章正文内容,下面案例可供参考
基于Zigbee的智能温室大棚系统(附详细使用教程+完整代码+原理图+完整课设报告)
- 智能温室大棚系统
- 零、技术介绍
- 一、需求分析
- 二、模块分析
- 三、终端节点硬件设计
- 四、软件代码
- 五、文件
智能温室大棚系统
设计要求
基于Zigbee协议栈和Zigbee节点构建智能温室大棚系统。该系统利用多个Zigbee传感器监测节点采集温室环境各项数据,汇聚于协调器,由协调器节点控制各种遮光帘、显示及报警设备。协调器可以以串口通信上传数据于PC端。
设计方法
智能温室大棚环境部署多个Zigbee监测节点,采集环境数据,有协调器串口传输至PC端,PC端可以串口打印显示,并能实时反向控制各个监测节点。
零、技术介绍
Zigbee是一种新兴的低成本,低复杂度,低功耗,低数据速率,低成本无线网络技术,是无线标记技术和蓝牙技术之间的技术方案。主要用于短距离无线连接。 它是基于802.15.4标准,在数千个微小的传感器之间协调实现通信。 这些传感器需要非常低的功耗,并且通过无线电波将数据从一个传感器传输到另一个传感器,因此效率非常高,优势极大。
一、需求分析
首先是终端节点,功能有:采集信息发送给协调器、接收协调器的控制信息对控制模块进行操作
其次是协调器节点,功能有:串口发送收到的信息、反向发送控制信息
二、模块分析
终端节点
传感器部分:需要有空气温度、空气湿度、土壤湿度、光照强度传感器模块
控制模块:遮光帘、水泵、透气扇(均为通过继电器控制)
协调器节点
串口发送信息给上位机
三、终端节点硬件设计
空气温湿度模块
大棚内温度直接影响植物的生长发育和产量。温度的监测可以帮助调节大棚的通风和加热设备,保持较为稳定的温度条件。湿度对植物的水分供给和蒸腾作用具有直接影响。湿度的监测可以通过湿度传感器进行实时检测,可以帮助调节大棚的灌溉和通风设备,维持适宜的湿度条件。因此设计温湿度模块对于大棚来说是非常必要的。
DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度±5%RH, 温度±2℃,量程湿度5~95%RH, 温度-20~+60℃。具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。同时由于CC2530的引脚紧张,而DHT11仅占用一个引脚。因此大棚空气温湿度选用DHT11模块来检测。
模块实物如下图:(不同的DHT11均可,这里仅选手头的一款)
其中DATA接P0.6口,具体的电路设计如下图:
土壤湿度模块
土壤湿度对大棚中农作物有着较大的影响。土壤湿度过低,形成土壤干旱,光合作用不能正常进行,降低作物的产量和品质;严重缺水导致作 物凋萎和死亡。土壤湿度过高,恶化土壤通气性,影响土壤微生物的活动,使作物根系的呼吸、生长等生命活动受 到阻碍。根系缺氧、窒息、最后死亡。因此,实时监测土壤的湿度,并且对其做出控制很有必要。
土壤湿度传感器并无固定型号,但是由于CC2530通用IO口较为紧张,因此笔者选用了一款有模拟信号输出传感器模块,仅仅占用一个引脚。如图:
CC2530的AD转换在P0口,所以该模块的模拟电压接入P0.0口
具体的电路设计如下图:
光照强度模块
“万物生长靠太阳”,进行大棚种植,光照的作用更是不可忽视。实时监测光照的强度,当光照强度过强关闭遮光帘,反之则打开遮光帘。
BH1750是IIC通信16位数字光强传感器,它的识别范围从1lx - 65535lx,范围大,分辨率高,价格低。因此采用BH1750模块监测光强,如下图所示。
将SCL与SDA分别接入P0.4、P0.5口,ADDR接地。
具体的电路设计如下图:
四、软件代码
终端节点采集传感器信息并发送主要代码(为了使得文章精简,省去iic.c、DHT11.c、BH1750.c等等自定义函数展示,但是在文件中都有)
// 获取mac地址 赋值给待发送信息osal_memcpy(MACAddr , NLME_GetExtAddr() , 8);for(i = 0;i<8;i++){buf[i]=MACAddr[i];}//温度检测 DHT11();buf[8]=wendu_shi+48;buf[相关文章:
基于Zigbee的智能温室大棚系统(附详细使用教程+完整代码+原理图+完整课设报告)
🎊项目专栏:【Zigbee课程设计系列文章】(附详细使用教程+完整代码+原理图+完整课设报告) 前言 👑由于无线传感器网络(也即是Zigbee)作为🌐物联网工程的一门必修专业课,具有很强的实用性,因此很多院校都开设了zigbee的实训课程;👑同时最近很多使用了我的单片机课…...
【Web】Redis未授权访问漏洞学习笔记
目录 简介 靶机配置 Redis持久化 Redis动态修改配置 webshell 反弹shell Redis写入反弹shell任务 加固方案 简介 Redis(Remote Dictionary Server 远程字典服务器)是一个开源的内存数据库,也被称为数据结构服务器,它支持…...
【JAVA WEB】 css背景属性 圆角矩形的绘制
目录 背景属性设置 圆角矩形 背景属性设置 背景颜色,在style中 background-color:颜色; 背景图片 background-image:url(……) 背景图片的平铺方式 background-repeat: 平铺方式 repeat 平铺(默认)no-repeat 不平铺repeat-x 水平平铺repea…...
Docker-现代化应用部署的利器
一、容器部署的发展 今天我们来说说容器部署。我们知道容器部署的发展大致分三个阶段,下面来介绍一下不同阶段的部署方式的优缺点 物理机部署 优点是可以提供更高的性能、资源控制,也可以提供更好的数据隔离和安全性,因为不同的应用程序运行在…...
「优选算法」:山脉数组的峰顶索引
一、题目 符合下列属性的数组 arr 称为 山脉数组 : arr.length > 3存在 i(0 < i < arr.length - 1)使得: arr[0] < arr[1] < ... arr[i-1] < arr[i] arr[i] > arr[i1] > ... > arr[arr.length - 1] …...
网络安全红队基础建设与介绍
1.ATT&CK相关背景 ATT&CK在各种日常环境中都很有价值。开展任何防御活动时,可以应用ATT&CK防御法,参考攻击者及其行为。ATT&CK不仅对网络防御者提供通用技术库,还为渗透测试和红队提供了基础。提到对抗行为时,这为…...
Java语法学习反射
Java语法学习反射 大纲 基本介绍class的介绍 具体案例 1. 基本介绍 流程图(程序在计算机的阶段) 反射的主要的类 这个提高效率不大 2. class的介绍 对于第三点:首先类只会加载一次,得到的class的对象,也只有一…...
【MySQL】操作库 —— 库的操作 -- 详解
一、增删数据库 1、创建数据库 create database db_name; 本质就是在 /var/lib/mysql 创建一个目录。 说明: 大写的表示关键字。[ ] 是可选项。CHARACTER SET:指定数据库采用的字符集。COLLATE:指定数据库字符集的校验规则。 2、数据库删除…...
Rust安装——Win10
安装步骤 1、下载RUSTUP-INIT.EXE(64-BIT) 2、由于国外源下载依赖太慢,因此建议增加win10环境变量配置国内源,增加RUSTUP_DIST_SERVER、RUSTUP_UPDATE_ROOT环境变量即可 RUSTUP_DIST_SERVER随便选择其中的一个源就行,…...
【教学类-46-07】20240212立体春字1.0
背景需求: 在南浔古镇的非遗文化馆里看到一个新年活动折纸——立体春字, 我记得这个就是一个双三角结构折纸,完全可以用15*15的手工纸给孩子们做一套。 折纸教程 双三角折法 【“鼠”你有才】纸艺教学 剪纸——立体春字(2月23日…...
Python语言例题集(003)
#!/usr/bin/python3 #猜数字 import random secretNumberrandom.randint(1,20) print(‘我想了一个1到20间的整数,你能猜出来吗?’) for guessesTaken in range(1,7): print(‘猜一下!’) guessint(input()) if guess<secretNumber: pr…...
UE5 播放本地MP3、MP4
1.创建一个媒体播放器 2.如创建视频,勾选。 它会多一个媒体纹理给你 3.1 设置音频 在一个actor上添加“媒体音频组件” “音频媒体播放器”赋值给它 3.2播放音频 添加一个音频媒体播放器变量, 赋值 地址使用绝对地址 4.1设置视频 UI上创建一个imag…...
NLP_“预训练+微调大模型”模式和Prompt/Instruct模式的异同
文章目录 “预训练微调大模型”的模式以提示/指令模式直接使用大模型“预训练微调大模型”模式和Prompt/Instruct模式的异同小结 “预训练微调大模型”的模式 经过预训练的大模型所习得的语义信息和所蕴含的语言知识,很容易向下游任务迁移。NLP应用人员可以根据自己…...
普通人应该如何使用GPT
现在GPT4推出的GPTs,包含了各个行业方向,比如DALL(绘图)、Diagrams(图标、流程图)、KAYAK(航旅助手)、Murder Mystery Mayhem(侦探扮演)、Canva(设…...
pycharm像jupyter一样在控制台查看后台变量
更新下:这个一劳永逸不用一个一个改 https://blog.csdn.net/Onlyone_1314/article/details/109347481 右上角运行...
Ansible command命令模块 这个模块可以直接在远程主机上执行命令,并将结果返回本主机。
目录 参数介绍练习环境配置主机清单配置无密码链接ping模块 command 命令模块也可以用来安装点东西看个路径 command 指定目录来 指定命令 参数介绍 chdir # 在执行命令之前,先切换到该目录 executable # 切换shell来执行命令,需要使用命令的绝对…...
C语言-3
定义指针 /*指针的概念:1.为了方便访问内存中的内容,给每一个内存单元,进行编号,那么我们称这个编号为地址,也就是指针。2.指针也是一种数据类型,指针变量有自己的内存,里面存储的是地址,也就是…...
Quartus工程的qsf配置约束文件介绍
一、qsf文件概述 qsf:Quartus Setting File,是Quartus工程的配置文件; 包含一个Quartus工程的所有约束,包括工程的软件版本信息、FPGA器件信息、引脚约分配、引脚电平分配,编译约束和用于Classic TimingAnalyzer的时…...
【网工】华为设备命令学习(Telnet)
本次实验AR3为我们实际中远程的路由,AR4模拟我们的设备,最终实现Telnet的远程控制路由! 本次笔记主要记录Telnet技术实现原理,后续再补充具体配置代码。 Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的…...
搜索专项---最短路模型
文章目录 迷宫问题武士风度的牛抓住那头牛 一、迷宫问题OJ链接 本题思路:只需要记录各个点是有哪个点走过来的,就能递推得出路径。记录前驱假设从 1,1 这个点向下走到了2, 1,则将2,1这个点的前驱记为1,1。这样,将整张地图 bfs 后,…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
