单片机分享:基于单片机的多功能盆栽养殖装置设计_单片机 盆栽 stm32-程序员宅基地

技术标签: 嵌入式毕业设计  嵌入式硬件  单片机  

概要

  盆栽种植已经成为一种高雅的生活方式融入人们的日常生活中,在家中种植盆栽的人数不断增多,在一些特殊情况发生时,盆栽种植爱好者会面临无法给盆栽浇水的问题,为解决这个问题,提出一个基于单片机的家居型智能盆栽系统的设计方案,这个家居型智能盆栽系统选用了STM32F103C8T6单片机、LCD1602液晶显示屏、土壤湿度传感器YL-69、温度传感器DS18B20、光照传感器BH1750FVI、蜂鸣器、水泵等元器件作为硬件组成部分,再配合上一些外围电路,完成对应功能模块的程序设计,将程序写入其中,从而构成一个小型的单片机系统。本次设计的家居型智能盆栽系统具有体积小、成本低、便于增减功能模块等特性,可以对盆栽的土壤温湿度、盆栽所受到的光照强度进行检测,且当土壤湿度值低于设定阈值下限时,蜂鸣器会发出报警,同时水泵开始浇水作业,解决盆栽的浇水问题。

关键词:单片机;盆栽浇水;方案;土壤湿度;传感器;程序设计

一、系统整体设计

  本次设计是构建一个单片机的小型系统达成温湿度检测、浇花的目的。STM32单片机为主体,用YL-69作为温度检测元件,YL-69具有测量精度高、硬件电路简单、易显示,可测不同土壤温度的特点。DS18B20可防水,可以对土壤进行湿度采集。利用光敏传感器进行光照采集,通过GSM短信模块进行无线远程数据传输。光照我们通过专门的光照传感器BHT1750来采集当前的光照信息。单片机作为本系统的控制核心,选择单片机关系到整个系统,选择好的单片机,对功能的实现和扩展会产生极大的影响。本次的设计,用STM32单片机作为核心,搭配YL-69土壤湿度传感器,再搭配相关的简易外围电路,构成一个简单温湿度光照检测的系统,然后终端传感器对环境温湿度光照的变化进行检测,它可以接受检测到的土壤环境的湿度信号,并且对这些数据进行处理,然后传输出去,检测的人员可以通过LCD1602液晶显示器看到相关数据,实时监控环境的湿度数据。在传感器得到了被测土壤的温湿度光照的信号后,通过模数转换成为电信号后,输送至单片机进行数据处理,水泵由三极管来驱动进行浇水作业,设定好按键的阈值,最后由LCD1602液晶显示器显示实时数据。系统主要由STM32单片机、土壤湿度传感器YL-69、LCD1602和其他外围电路构成,实现的基本功能和要求如下:
(1)用STM32单片机控制液晶屏正常显示数据;
(2)能检测土壤湿度、温度、光照;
(3)超过设置阈值时蜂鸣报警;
(4)三极管能驱动水泵进行浇水;
(5)GSM远程获取数据;
(6)做出实物;
(7)BHT1750采集当前光照强度LUX。

在STM32系列中,主控芯片最终采用了STM32F103C8T6单片机,并用外部电路达成各部分的功能。其中,主要包括时钟晶振电路、湿度测量电路、温度采集、光照采集、远程数据传输、液晶显示模块、报警模块、按键模块、水泵灌溉。用这个方法得出的智能盆栽系统,单片机体积小,功耗低,成本低的同时,还能有较高的性能。本次家居型智能盆栽系统的结构框图如图1.1所示。

在这里插入图片描述

图1.1 家居型智能盆栽系统结构框图

二、系统硬件设计

  本次设计采用STM32单片机构成一个简易系统来完成家居型智能盆栽系统的设计。在考虑所使用的元器件时,优先对价性能、体积、价格、适用性、与其它元器件是否契合等方面进行考虑,所使用的元器件都可用5V电压电源进行供电,供电电流为2A,避免因元器件需求供电电压不同需要加设转换电路。在该单片机浇花系统中,由土壤湿度传感器YL-69先采集湿度信号,并将它转换成为高低数字电平信号,输送至单片机,然后单片机对该数字信号进行处理,用LCD1602显示实时的温湿度值。

三、 软件设计

3.2 软件设计思路

在本次家居型智能盆栽系统的设计中,采用了结构化和模块化的设计方法。考虑到该系统面对的客户群体,可能会有觉得系统功能含有不必要功能,也可能对系统功能不够完善感到不满,采用结构化和模块化的设计方法,可以方便的对功能进行缩减,也可以方便的对功能进行扩展,针对不同的客户,可以给出多种不同的选择。本次设计主要使用的编程语言为C语言,它是最为基础的一门编程语言,十分简单、易懂。在该家居型智能盆栽系统中,湿度传感器会对被测的盆栽里的土壤进行数据采集,并将其转换成二进制值后,传输给单片机,单片机收到数据后对其进行处理,从而获得精确的实际采样数据,再将其传输给液晶显示器,由液晶显示器显示出来。同时,我们也对湿度值设定了阈值,当它低于设定的最小值,或是高于设定的最大值时,会由蜂鸣器发出报警。软件设计流程图如图3.1所示.
在这里插入图片描述

图3.1 软件设计流程图

3.3 DS18B20温度检测模块设计

上电后,温度传感器DS18B20进行工作作业,对被测盆栽的温度进行检测,检测到实时的温度的时候,将其按照一定的规律进行变换后,转变成为温度电信号或者按需求转变成为其他形式所需要的信息进行输出,从而可以更好地达到设计所需要的要求。DS18B20温度传感器可以将检测到的温度值以数字信号的形式输出给单片机,单片机内部计算后得出此时的温度,之后显示在LCD1602液晶显示器上。温度检测流程图如图3.3所示:

在这里插入图片描述

图3.2 温度检测流程图

实物图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、 结论

对于本次的浇花系统的设计,在此作一个总结。本次家居型智能盆栽系统的设计主要是为了解决在特殊情况下,盆栽种植者无法给盆栽进行浇水的问题。主要以单片机作为核心处理器,用单片机加上其它功能模块组成一个小型系统,该系统中最重要的部分是湿度传感器,它能对盆栽的土壤湿度进行检测,通过与设定好的湿度阈值进行比较,判定盆栽是否需要浇水,当判定为需要浇水时,配合水泵、蜂鸣器等模块,在发出报警的同时,水泵开始浇水作业,解决浇水问题。
完成本次家居型智能盆栽系统的设计,在过程中可以找到很多设计时的不成熟之处。最初,对本次设计提出的要求特别高,并没有充分地考虑自己的个人能力问题,在设计预案中需要运用到部分没有学习过的知识,设置了一个相对很高的目标,在设计的过程中,由于知识存储量的不足,需查询的资料很多,在查询了相关的资料后,结合实际情况进行分析,放弃了在光照不足时,使用日光灯进行补光的构想,在对简易app制作的视频进行了学习后,没有考虑到怎么将app与单片机连接,在对相关知识进行学习后,采用了学会的其它的替代方案,GSM通信技术解决远程通信的问题。对各传感器、使用的元器件,供电电压要求不同的问题也没有考虑周到。类似的问题出现了很多次,最终,通过指导老师的教导,不断查询相关资料,再通过实际的调试验证,成功地解决了这些问题。

五、 文章目录

目 录
前言 II
1.总体方案设计 1
1.1 设计需求分析 1
1.2 方案设计 1
1.3 花架设计 2
2.系统硬件设计 3
2.1 STM32单片机选型 3
2.2 GSM通信模块选型 4
2.3 土壤湿度传感器选型 4
2.4 温度传感器选型 5
2.5 光照强度传感器选型 5
2.6 显示模块电路设计 6
2.7 水泵驱动电路设计 7
2.8 报警模块电路设计 8
3.系统软件设计 8
3.1 软件设计所用工具 8
3.2 软件设计思路 9
3.3 DS18B20温度检测模块设计 9
3.4 GSM通信子程序设计 10
3.5 土壤湿度检测模块设计 11
3.6 液晶显示模块设计 11
3.7 按键模块设计 12
3.8 蜂鸣器报警模块设计 12
4.系统调试 13
4.1 硬件调试 13
4.2 软件调试 16
5.总结与展望 19
5.1 总结 19
5.2 后期展望 19
致谢 20
参考文献 21

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_73485055/article/details/134151920

智能推荐

攻防世界_难度8_happy_puzzle_攻防世界困难模式攻略图文-程序员宅基地

文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文

达梦数据库的导出(备份)、导入_达梦数据库导入导出-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作  导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释:   cwy_init/init_123..._达梦数据库导入导出

js引入kindeditor富文本编辑器的使用_kindeditor.js-程序员宅基地

文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js

STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法-程序员宅基地

文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6

计算机网络-数据链路层_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输

软件测试工程师移民加拿大_无证移民,未受过软件工程师的教育(第1部分)-程序员宅基地

文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...

随便推点

Thinkpad X250 secure boot failed 启动失败问题解决_安装完系统提示secureboot failure-程序员宅基地

文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure

C++如何做字符串分割(5种方法)_c++ 字符串分割-程序员宅基地

文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割

2013第四届蓝桥杯 C/C++本科A组 真题答案解析_2013年第四届c a组蓝桥杯省赛真题解答-程序员宅基地

文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答

基于供需算法优化的核极限学习机(KELM)分类算法-程序员宅基地

文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。

metasploitable2渗透测试_metasploitable2怎么进入-程序员宅基地

文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入

Python学习之路:从入门到精通的指南_python人工智能开发从入门到精通pdf-程序员宅基地

文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf

推荐文章

热门文章

相关标签