基于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 后,…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...