基于STM32单片机的盆栽系统设计

发布者:GoldenSerenity最新更新时间:2023-09-22 来源: elecfans关键字:STM32  单片机 手机看文章 扫描二维码
随时随地手机看文章

一.系统设计

本次盆栽系统的设计使用STM32单片机作为控制中心,通过光敏模块检测光照强度,通过DHT11测量温湿度,通过土壤湿度传感器检测土壤湿度,检测到的数据通过LCD显示屏显示,当土壤湿度低于下限时,继电器控制灌溉,当土壤湿度高于上限时,继电器控制除湿,当温度低于阈值时,继电器控制加热,当光强低于阈值时,继电器控制补光。

28f44b54-45ae-11ee-a2ef-92fbcf53809c.jpg

图1 系统框图

二.硬件设计

本设计所采用的STM32F103C8T6是以Cortex-3为核心的单片机,它的功能是实现软件的执行,并对外部的器件、模块进行控制。该系统由LCD显示模块,温湿度检测模块,光敏电阻模块,湿度检测模块,继电器模块组成。

29295e02-45ae-11ee-a2ef-92fbcf53809c.jpg

图2 硬件电路

三.软件设计

系统的软件实现过程中首先要进行的系统初始化,初始化结束后开始进行光照强度检测,温湿度检测,土壤湿度检测,当土壤湿度低于下限时,继电器控制灌溉,当土壤湿度高于上限时,继电器控制除湿,当温度低于阈值时,继电器控制加热,当光强低于阈值时,继电器控制补光。

29592326-45ae-11ee-a2ef-92fbcf53809c.jpg

图3 程序流程图

297f80b6-45ae-11ee-a2ef-92fbcf53809c.jpg

图4 主程序

四、实物展示

29b1deee-45ae-11ee-a2ef-92fbcf53809c.jpg

五、上位机

2a155c30-45ae-11ee-a2ef-92fbcf53809c.jpg


关键字:STM32  单片机 引用地址:基于STM32单片机的盆栽系统设计

上一篇:stm32能跑什么系统
下一篇:基于STM32的重力感应售货机系统设计

推荐阅读最新更新时间:2024-11-11 15:57

STM32 SDIO 报错 SD_RX_OVERRUN
使用STM32官方SDIO 的SDCARD驱动的时候,以前单任务的时候没有出现这种错误,现在使用多任务的时候经常出现,表现为读取文件的时候没有问题,经常点击屏幕的时候就会出问题,最后通过仿真找到出错点就是读取数据向SD卡发送CD17命令时出现 SD_RX_OVERRUN这个错误,产生原因为读取FIFO溢出. 通过仿真与测试发现问题主要出现在读取过程中不能打断,也就是临界点. 在两个读取函数里面 SD_Error SD_ReadMultiBlocks(u32 addr, u32 *readbuff, u16 BlockSize, u32 NumberOfBlocks); SD_Error SD_ReadBlock(u32 addr
[单片机]
单片机】Proteus和Keil分别创建单片机工程
一、Proteus创建单片机工程: 第一步:选定合适文件保存的路径,然后点击下一步: 第二步: 第三步: 第四步: 第五步: 第六步:点击完成之后,即可看到如下界面。此时已完成创建: 二、Keil5创建单片机工程: 第一步: 第二步: 第三步: 第四步: 第五步: 第六步: 第七步: 第八步: 添加进入之后,此时就可以书写代码,开始自己的单片机编程了。 完结,撒花…
[单片机]
【<font color='red'>单片机</font>】Proteus和Keil分别创建<font color='red'>单片机</font>工程
【自学51单片机】9 -- 步进电机原理、蜂鸣器原理,单片机IO
【自学51单片机】9 -- 步进电机原理、蜂鸣器原理,单片机IO口的结构,上下拉电阻 1、单片机IO口的结构 单片机IO口有四种结构:准双向IO,开漏输出、强推挽输出和高阻态输出。内部结构如下图。 T1和T2为MOS管,靠电压导通的原件。(1)准双向IO口特点:内部输出为1,才能正常读取外部信号。(2)开漏输出特点:必须外加上拉电阻,不然单片机IO电平是个不确定的态。(3)强推挽输出特点:可输出或输入高电流,驱动能力强。(4)强阻态特点:状态取决与外部输入。 标准51单片机P0默认开漏输出。 2、上下拉电阻 上下拉电阻:上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻也起限流作用,下拉电阻同理。 上拉电
[单片机]
【自学51<font color='red'>单片机</font>】9 -- 步进电机原理、蜂鸣器原理,<font color='red'>单片机</font>IO
基于80C51单片机位寻址编程
80C51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式。所谓位寻址,就是对内部RAM或可位寻址的特殊功能寄存器SFR内的某个位,直接加以置位为1或复位为0。 位寻址的范围,也就是哪些部份可以进行位寻址: 1、我们在学习51单片机的存储器结构时,我们已知道在单片机的内部数据存储器RAM的低128单元中有一个区域叫位寻址区。它的单元地址是20H-2FH。共有16个单元,一个单元是8位,所以位寻址区共有128位。这128位都单独有一个位地址,其位地址的名字就是00H-7FH。 这里就有一个比较麻烦的问题需要大家理解清楚了。我们在前面的学习中00H、01H。。。。7FH等等,所表示的都是一个字节(或者叫单
[单片机]
基于80C51<font color='red'>单片机</font>位寻址编程
单片机ADC采样算法----卡尔曼滤波
关于卡尔曼滤波,看看百度百科上的定义 算法的核心思想是,根据当前的仪器 测量值 和上一刻的 预测量 和 误差 ,计算得到当前的最优量. 再预测下一刻的量, 里面比较突出的是观点是. 把误差纳入计算, 而且分为预测误差和测量误差两种.通称为 噪声. 还有一个非常大的特点是,误差独立存在, 始终不受测量数据的影响。 下来先了解一个卡尔曼滤波中几个参数的含义:概率(Probability),随即变量(Random Variable),高斯或正态分配(Gaussian Distribution)还有State-space Model等等。 关于卡尔曼公式的含义及推导,网上已经有很多文章了,这里不在赘述,直接看C代码的实现。
[单片机]
<font color='red'>单片机</font>ADC采样算法----卡尔曼滤波
STC89C52单片机驱动CC1101无线模块的接收C语言程序
#include reg52.h #include intrins.h #defineINT8Uunsigned char #defineINT16Uunsigned int #define WRITE_BURST 0x40//连续写入 #define READ_SINGLE 0x80//读 #define READ_BURST 0xC0//连续读 #define BYTES_IN_RXFIFO 0x7F //接收缓冲区的有效字节数 #define CRC_OK 0x80 //CRC校验通过位标志 //************CC1100接口*************** sbit GDO0=P3^3;
[单片机]
STM8单片机的中断优先级
STM8S的中断由中断控制器(ITC)控制。STM8所有IO都支持中断,分为PA~PE 5个组,每组IO对应一个中断服务函数(也就是每组IO只有一个向量)。STM8没有专门的中断状态寄存器,所以只能通过刚进入中断就读取IDR来判断,不过在某些情况下,此种方法就不好用了,所以在设计的时候就要考虑清楚,是不是会冲突.最好把有冲突的中断放到不同的组。 STM8的外部中断采用软件优先级+硬件优先级的控制方法,来控制优先级分组.软件优先级优先于硬件优先级。硬件优先级由向量号确定,向量号越小,优先级越高如下面图中断映射,中断向量表。 STM8软件优先级设置可以分为4个等级(0~3),实际上可设置的就三个等级:1~3。优先级顺序:0 1
[单片机]
GD32 MCU上电跌落导致启动异常如何解决
大家是否碰到过MCU上电过程中存在电源波动或者电压跌落导致MCU启动异常的问题?本视频将会为大家讲解可能的原因以及解决方法: GD32 MCU上下电复位波形如下图所示,上电过程中如果存在吃电的模块,比如wifi模块/4G模块/开启某块电路等,可能存在电源电压跌落的情况,此时若MCU在启动过程中可能会造成MCU加载代码异常,进而导致启动异常。电压跌落到POR和PDR之间会有可能出现启动异常,因为该段电压区间为非正常工作电压且不会发生PDR复位。 解决方法上可以有以下两种:1、硬件整改上电波形,在VDD端增加电容,提升VDD的供电能力,进而降低电源波动;2、修改NRST引脚对应的RC阻容,调整MCU启动时间,避开电源电压跌落的
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved