当前位置: 首页 > news >正文

毕业设计 基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测

基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测

  • 1、项目简介
    • 1.1 系统构成
    • 1.2 系统功能
  • 2、部分电路设计
    • 2.1 STM32F103C8T6核心系统电路设计
    • 2.2 光敏采集电路设计
    • 2.3 温度采集电路设计
  • 3、部分代码展示
    • 3.1 读取DS18B20温度值
    • 3.2 定时器初始化

1、项目简介

  • 选题指导,项目分享: https://gitee.com/lighter-z/embedded-base/tree/master
  • 点击查看详细资料

1.1 系统构成

  • 本系统由主机和从机组成。主从机通过zigbee模块CC2530实现数据通讯。
  • 主机由STM32F103C8T6单片机、光照采集、DS18B20温度检测、土壤湿度采集、zigbee模块组成。
  • 从机由STM32F103C8T6单片机、LCD1602液晶显示、zigbee模块组成。

1.2 系统功能

  • 1、主机检测温度、光照(0-100)和土壤湿度(0-100),然后通过zigbee模块将数据传输给从机。
  • 2、在从机接收到数据后,在液晶上实时显示温度、光照(0-100)和土壤湿度(0-100)。
  • 3、液晶显示具有实时性,如果主机停止发送数据,从机液晶将显示xx表示数据无效链接断开。

2、部分电路设计

2.1 STM32F103C8T6核心系统电路设计

STM32F103C8T6单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。

单片机最小系统原理图如下图所示:

实物图:

2.2 光敏采集电路设计

其具体电路原理图如下图所示:

实物图如下图所示:

2.3 温度采集电路设计

DS18B20是一款常用的高精度的单总线数字温度测量芯片。具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

  • 电路设计
  • 实物图

3、部分代码展示

3.1 读取DS18B20温度值

short DS18B20_Get_Temp(void)
{u8 temp;u8 TL,TH;short tem;DS18B20_Start ();                    // ds1820 start convertDS18B20_Rst();DS18B20_Check();	 DS18B20_Write_Byte(0xcc);// skip romDS18B20_Write_Byte(0xbe);// convert	    TL=DS18B20_Read_Byte(); // LSB   TH=DS18B20_Read_Byte(); // MSB  if(TH>7){TH=~TH;TL=~TL; temp=0;//温度为负  }else temp=1;//温度为正	  	  tem=TH; //获得高八位tem<<=8;    tem+=TL;//获得底八位tem=(float)tem*0.625;//转换     if(temp)return tem; //返回温度值else return -tem;    
} 

3.2 定时器初始化

void TIM3_Int_Init(u16 arr,u16 psc)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值	 计数到5000为500msTIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位TIM_ITConfig(  //使能或者失能指定的TIM中断TIM3, //TIM2TIM_IT_Update ,ENABLE  //使能);NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先级0级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能NVIC_Init(&NVIC_InitStructure);  //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器TIM_Cmd(TIM3, ENABLE);  //使能TIMx外设}

相关文章:

毕业设计 基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测

基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STM32F103C8T6核心系统电路设计2.2 光敏采集电路设计2.3 温度采集电路设计3、部分代码展示3.1 读取DS18B20温度值3.2 定时器初始化1、项目简介 选题指导&#xff0c…...

华为OD机试真题Java实现【相对开音节】真题+解题思路+代码(20222023)

相对开音节 题目 相对开音节构成的结构为辅音+元音(aeiou)+辅音(r除外)+e,常见的单词有bike、cake等。 给定一个字符串,以空格为分隔符,反转每个单词中的字母,若单词中包含如数字等其他非字母时不进行反转。 反转后计算其中含有相对开音节结构的子串个数(连续的子串…...

【C++】30h速成C++从入门到精通(STL容器listvector)

listlist的介绍list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和后一个元素。list与…...

操作系统---存储管理

存储管理 操作系统将外存的文件调入到内存中&#xff0c;以便CPU调用&#xff0c;如果调用的内容不在内存中&#xff0c;则会产生缺页中断&#xff1b;产生缺页中断后&#xff0c;这事需要从外存调数据到内存中&#xff0c;然后CPU接着从断点继续调用内存中的数据&#xff1b;在…...

华为OD机试题 - 好朋友(JavaScript)| 含思路

华为OD机试题 最近更新的博客使用说明本篇题解:好朋友题目输入输出示例一输入输出说明示例二输入输出说明Code解题思路华为OD其它语言版本最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典...

socket本地多进程通信基本使用方法和示例

目录 前言&#xff1a; socket是什么 socket基本原理框图 socket基本函数 1 socket() 函数 2 bind()函数 3 connect()函数 4 listen() 函数 5 accept() 函数 6 read() write() send() recv()函数 7 close()函数 8 字节序转换&#xff08;hton&#xff09; 示例代码 …...

Python 算法交易实验51 Step2 Signals 信号生成

说明 不可不读书 先从经典的一些超简单信号开始 使用移动平均指标SMA(算术&#xff09; 给出了信号的产生方法&#xff0c;还有一些测算结果&#xff0c;反正看起来都是盈利的 首先使用离线方法实验一组结果&#xff0c;然后就使用ADBS来进行类似的处理。 内容 1 原理分析…...

app上架专用软著认证电子版权在主流应用商店的使用说明2023年最新版

软著认证电子版权在主流应用商店的使用说明 目录 一、 华为应用商店 二、 腾讯应用宝 三、 小米开放平台 小米应用提交&#xff1a; 小米游戏提交&#xff1a; 四、 OPPO开放平台 OPPO应用提交: OPPO游戏&#xff08;App&#xff09;提交: OPPO小游戏&#xff08;快应…...

[Mybatis2]Mapper代理开发

文章目录 问题情境 代理开发 遵循的三条原则 1.定义与SQL映射文件同名的Mapper接口&#xff0c;并且将Mapper接口和SQL映射文件放置在同一目录下 2.设置SQL映射文件的namespace属性为Mapper接口的全限定名 3.在Mapper接口中定义方法&#xff0c;方法名就是SQL映射文件中sql…...

第十一届蓝桥杯大赛青少组国赛Python真题2

第十一届蓝桥杯大赛青少组Python 真题 第二题 提示信息&#xff1a; 杨辉三角形&#xff0c;是二项式系数在三角形中的一种几何排列。中国南宋数学家杨辉在 1261 年所著的《详 解九章算法》一书有明确记载。欧洲数学家帕斯卡在 1654 年发现这一规律&#xff0c;所以又叫做帕斯卡…...

创建springboot项目文件报红

目录 一、遇到问题 二、出现这个问题的原因 三、解决办法 三种方法 四、操作步骤 一、遇到问题 创建springboot项目的时候&#xff0c;会发现一些重要文件都变成红色了&#xff0c;但是不影响程序的运行。只是看起来会有点不舒服。 二、出现这个问题的原因 因为这个spr…...

gma 地理空间绘图:(1) 绘制简单的世界地图-3.设置地图框

内容回顾 gma 地理空间绘图&#xff1a;(1) 绘制简单的世界地图-1.地图绘制与细节调整 gma 地理空间绘图&#xff1a;(1) 绘制简单的世界地图-2.设置经纬网 方法 SetFrame(FrameColor ‘black’, FrameWidth 0.6, ShowFrame True, ShowLeft True, ShowBottom True, Sho…...

Java Web 实战 03 - 多线程基础(2)

Java Web 实战 03 - 多线程基础篇 2二 . Thread类常见方法2.1 Thread 的常见构造方法2.2 Thread 的几个常见属性getId()getName()getState()getPriority()isDaemon()案例 : 实现 getId()、getName()、 getState()、getPriority()、isDaemon()、isAlive()2.3 启动一个线程-start…...

Linux命令·cat

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容&#xff0c;或者将几个文件连接起来显示&#xff0c;或者从标准输入读取内容并显示&#xff0c;它常与重定向符号配合使用。 1&#xff0e;命令格式&#xff1a;cat [选项] [文件]...2&#xff0e;命令功…...

WPF WrapPanel、UniformGrid、DockPanel介绍

WPF WrapPanel、UniformGrid、DockPanel介绍 WrapPanel WrapPanel , 具有在有限的容器范围内, 可以自动换行, 或者换列处理。具体则取决于WrapPanel的排列方式 (Orientation)。 Orientation"Horizontal"时各控件从左至右罗列&#xff0c;当面板长度不够时&#xff…...

华为OD机试题 - TLV 编码(JavaScript)| 含思路

华为OD机试题 最近更新的博客使用说明本篇题解:TLV 编码题目输入输出描述示例一输入输出说明Code解题思路华为OD其它语言版本最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流…...

【华为OD机试真题java、python、c++】开心消消乐【2022 Q4 100分】(100%通过)

代码请进行一定修改后使用,本代码保证100%通过率。本文章提供java、python、c++三种代码 题目描述 给定一个N行M列的二维矩阵,矩阵中每个位置的数字取值为0或1。矩阵示例如: 1100 0001 0011 1111 现需要将矩阵中所有的1进行反转为0,规则如下: 1) 当点击一个1时,该1便被…...

IDEA搭建vue-cli | vue-router | 排错思路、Webpack、Axios、周期、路由、异步、重定向

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Vue.js概述 Vue 是一套用于构建用户界面的渐进式JavaScript框架。 与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层…...

HashSet原理

HashSet原理HashSet原理1.概述2.底层代码3.原理图解4.总结4.1: 1.7原理总结4.2: 1.8原理总结HashSet原理 1.概述 ​ HashSet 实现 Set 接口&#xff0c;由哈希表&#xff08;实际上是一个 HashMap 实例&#xff09;支持。它不保证 set 的 迭代顺序&#xff1b;特别是它不保证…...

【C#进阶】C# 特性

序号系列文章10【C#基础】C# 正则表达式11【C#基础】C# 预处理器指令12【C#基础】C# 文件与IO文章目录前言1&#xff0c;特性的概念1.1 特性的属性1.2 特性的用途2&#xff0c;特性的定义2.1 特性参数2.2 特性目标3&#xff0c;预定义特性3.1 AttributeUsage3.2 Conditional3.2…...

高效视频帧提取终极指南:为深度学习构建专业数据集

高效视频帧提取终极指南&#xff1a;为深度学习构建专业数据集 【免费下载链接】video2frame Yet another easy-to-use tool to extract frames from videos, for deep learning and computer vision. 项目地址: https://gitcode.com/gh_mirrors/vi/video2frame 在计算机…...

Linuxbonding链路稳定性治理方法

Linuxbonding链路稳定性治理方法这是一篇面向中级 Linux 使用者的技术文章&#xff0c;主题聚焦在bonding链路&#xff0c;重点讨论链路聚合、冗余切换和接口状态。在真实生产环境中&#xff0c;bonding链路相关问题往往不会以单一错误形式出现&#xff0c;而是混杂在日志、权限…...

树莓派扩展板EYESPI Pi Beret:简化硬件连接,加速原型开发

1. 项目概述&#xff1a;为什么我们需要EYESPI Pi Beret&#xff1f;玩树莓派的朋友&#xff0c;尤其是喜欢捣鼓屏幕和传感器的&#xff0c;肯定都经历过那个阶段&#xff1a;面对一堆杜邦线&#xff0c;对照着屏幕驱动板的引脚定义&#xff0c;一个个数着树莓派的GPIO针脚&…...

别再手动调色了!用Matlab bar3函数一键生成论文级渐变三维柱状图(附完整代码)

别再手动调色了&#xff01;用Matlab bar3函数一键生成论文级渐变三维柱状图&#xff08;附完整代码&#xff09; 科研图表的美观程度直接影响论文的第一印象&#xff0c;而三维柱状图在展示多维度数据时尤为常见。传统手动调整每个柱体的颜色、透明度、光照效果不仅耗时&#…...

Apache Burr框架:构建可观测有状态数据应用的核心原理与实践

1. 项目概述&#xff1a;一个用于构建和评估数据产品的Python框架如果你正在处理数据密集型应用&#xff0c;比如推荐系统、个性化广告或者任何需要根据用户行为实时调整策略的场景&#xff0c;你肯定遇到过这样的困境&#xff1a;模型训练和离线评估做得再好&#xff0c;一旦上…...

【Midjourney图像生成黑科技】:树胶重铬酸盐工艺原理、复刻难点与AI艺术胶片质感还原全流程指南

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;树胶重铬酸盐工艺的历史溯源与数字时代复兴意义 树胶重铬酸盐工艺&#xff08;Gum Bichromate Process&#xff09;诞生于19世纪中叶&#xff0c;是人类最早实现光敏图像复制的化学摄影术之一。其核心原…...

开源提示词管理工具:本地化部署与AI工作流效率提升实践

1. 项目概述&#xff1a;一个为AI工作流设计的提示词管理利器如果你和我一样&#xff0c;每天都在和ChatGPT、Claude、Midjourney这些AI模型打交道&#xff0c;那你一定有过这样的烦恼&#xff1a;昨天精心调试好的、能稳定输出高质量代码的提示词&#xff0c;今天想用的时候&a…...

基于Vanilla JS与IndexedDB构建本地化Markdown笔记工具

1. 项目概述&#xff1a;从零开始构建一个轻量级笔记工具最近在整理个人知识库时&#xff0c;发现市面上的笔记软件要么功能过于臃肿&#xff0c;要么云端同步存在隐私顾虑&#xff0c;要么就是定制化程度不够。作为一个有十多年开发经验的从业者&#xff0c;我决定自己动手&am…...

RTX 5090功耗600W:高功耗显卡的系统级挑战与实战装机指南

1. 项目概述&#xff1a;从一则功耗新闻到显卡生态的深度解构最近&#xff0c;一则关于英伟达下一代旗舰显卡RTX 5090功耗可能高达600W的消息&#xff0c;在硬件圈和AI计算领域激起了不小的波澜。对于普通玩家而言&#xff0c;这或许只是一个“电老虎”又升级了的谈资&#xff…...

告别玄学调试:用英飞凌TC37X/TC38X的DSADC做旋变软解码,这些配置坑你别再踩了

英飞凌TC37X/TC38X DSADC旋变解码实战避坑指南 从实验室到产线&#xff1a;那些DSADC配置中容易忽视的细节 在新能源汽车电机控制领域&#xff0c;旋转变压器&#xff08;Resolver&#xff09;作为位置传感器的主力军&#xff0c;其解码稳定性直接决定了矢量控制的精度。英飞凌…...