电子信息工程自动化-基于单片机的多功能盆栽养殖装置设计
电子信息工程自动化 基于单片机的多功能盆栽养殖装置设计
系统简介
盆栽种植已经成为一种高雅的生活方式融入人们的日常生活中,在家中种植盆栽的人数不断增多,在一些特殊情况发生时,盆栽种植爱好者会面临无法给盆栽浇水的问题,为解决这个问题,提出一个基于单片机的家居型智能盆栽系统的设计方案,这个家居型智能盆栽系统选用了STM32F103C8T6单片机、LCD1602液晶显示屏、土壤湿度传感器YL-69、温度传感器DS18B20、光照传感器BH1750FVI、蜂鸣器、水泵等元器件作为硬件组成部分,再配合上一些外围电路,完成对应功能模块的程序设计,将程序写入其中,从而构成一个小型的单片机系统。本次设计的家居型智能盆栽系统具有体积小、成本低、便于增减功能模块等特性,可以对盆栽的土壤温湿度、盆栽所受到的光照强度进行检测,且当土壤湿度值低于设定阈值下限时,蜂鸣器会发出报警,同时水泵开始浇水作业,解决盆栽的浇水问题。
关键词:单片机;盆栽浇水;方案;土壤湿度;传感器;程序设计
基于单片机的多功能盆栽养殖装置设计
1.总体方案设计
1.1 设计需求分析
社会在不断进步,互联网在发展,智能化更接近普通居民的生活,生活水平提高后,物质需求市场趋于饱和,对精神需求市场的需求量逐步增大,在高楼林立的大城市里,绿色的覆盖度并不能让人们满足精神需求,并且长时间面对灰色的混凝土建筑,使人焦躁,压力增大,在家中阳台等地种植观赏性植物可以满足人们一定的精神需求,家中有一抹绿色也使居家时更加舒适。
本次设计为基于单片机的家居型智能盆栽系统设计,主要针对人群为盆栽种植爱好者。本系统可以做到对盆栽温湿度进行检测,并且在湿度低于设定的阈值下限的时候,蜂鸣器会发出报警,GSM通信模块给用户手机发出短信报警,同时水泵展开浇水作业,当湿度值高于阈值设定上限时,达到盆栽的需浇水量后,水泵关闭,蜂鸣器停止报警。
可以有效的解决当用户因为特殊情况,导致无法给盆栽浇水的问题。并且该系统所选用的器件都具备小型化、便捷化、廉价等特点,对于软件设计方面采用了模块化的设计方法,可以针对不同的客户需求,针对客户的预算情况,有选择性的给系统增加或减少功能模块,从而满足顾客对系统功能的要求或是解决客户预算不足的问题。
1.2 方案设计
要设计的是一个基于单片机的家居型智能盆栽系统,该系统应具备测量精准、操作简单、维护方便、成本低、性能高等特性。想要达到这些要求,就必须在每个步骤都尽量做到比较好的水准,遵循做设计的准则,将可靠性作为第一要求,想要提升可靠性,可以从以下几点入手,例如:提高硬件水准;设计电路合理;采用抗干扰电源等抗干扰设备;进行软硬件的滤波;实现系统的自诊断功能等。在设计这些硬件喝软件的同时,还需要考虑操作是否方便,维修是否容易,尽可能地减少不必要的接口,多采用简洁的方法。选用单片机,不仅是因为单片机体积小,还因为使用单片机成本比较低,性能还很不错。作为一个基于单片机设计的系统,如果想要拥有市场,就必须价格低廉,并且性能优异。因此,在设计该浇花系统时,在保持性能的同时,要尽可能降低成本开销,尽量简化外围的电路,因为硬件开销比软件要大,所以在能用软件功能解决的问题上,尽量不要使用硬件功能去解决。
在对使用51系列单片机构建的浇花系统进行了解后,选用了STM32系列的单片机作为主控芯片,STM32系列的单片机与51系列的单片机作对比,它比51系列的功能更多,并且具有更高的运行速度,与此同时,它自身还带有两个AD转换,可以在设计电路时减少2次转换电路,让电路的设计更加简单。并且,51系列的单片机在通信方面、控制功能上,与STM32有着巨大的差距。使用STM32单片机,它拥有5个串口可进行通信,比51系列的单片机多了4个串口,5个串口比1串口使用更方便,在存在多个需要与单片机用串口进行通信的模块时,1串口的51系列的单片机还需要使用双串口模块进行转换,电路复杂,而STM32就可以用多串口的优势,无需使用双串口模块。
在STM32系列中,主控芯片最终采用了STM32F103C8T6单片机,并用外部电路达成各部分的功能。其中,主要包括时钟晶振电路、湿度测量电路、温度采集、光照采集、远程数据传输、液晶显示模块、报警模块、按键模块、水泵灌溉。用这个方法得出的智能盆栽系统,单片机体积小,功耗低,成本低的同时,还能有较高的性能。本次家居型智能盆栽系统的结构框图如图1.1所示。
图1.1 家居型智能盆栽系统结构框图
1.3 花架设计
本次设计的是一个家居型智能盆栽系统,花架作为摆放花盆的空间,对其的设计也需要考虑。为此,设计了一个简易的花架。该花架结构分为三部分,分别为:上层,套管,底部。在整体上,花架是一个高50cm,长宽各30cm的长方体。按设计分为两层结构,第一层距离地面10cm,第二层底部距离第一层30cm,每层的正方形平面一边上,有两根长方体空心铝管与对边相连接,将该正方形分为三等分的矩形,以达到放置花盆的目的。上层与底部的构筑方式相同,在正方形的平面上向外延申出长方体一段为外部的脚,向内则位内切套管内部的圆柱形空心铝管。中间部分的套管是空心长方体,两头贯通,与套管相连后,将上层与底部连接位一个整体,从而构筑出这个简易花架。花架结构图如图1.3所示。
图1.2 花架结构图
2.系统硬件设计
本次设计采用STM32单片机构成一个简易系统来完成家居型智能盆栽系统的设计。在考虑所使用的元器件时,优先对价性能、体积、价格、适用性、与其它元器件是否契合等方面进行考虑,所使用的元器件都可用5V电压电源进行供电,供电电流为2A,避免因元器件需求供电电压不同需要加设转换电路。在该单片机浇花系统中,由土壤湿度传感器YL-69先采集湿度信号,并将它转换成为高低数字电平信号,输送至单片机,然后单片机对该数字信号进行处理,用LCD1602显示实时的温湿度值。
2.1 STM32单片机选型
在本次家居型智能盆栽系统的设计中,选用的单片机是STM32F103C8T6单片机。STM32F103C8T6作为一款32位的微控制器,它具有功耗低,性能高的优秀特性,并且作为STM系列的单片机之一,它同时有着十分强大的远程通信功能和控制功能。将它用在本次的智能盆栽系统中,可以提升系统的运行速度,并且,它还拥有自身带有两个AD转换的优势,在设计相关电路的时候,可以用这两个AD转换少设计两次转换电路,让整个系统的电路设计更简易化,且STM32F103C8T6拥有5个串口可进行通信,当处于存在多个需要与单片机用串口进行通信的模块时,拥有5个串口的优势的STM32F103C8T6在串口全被使用前,无需设计双串口模块进行转换。在STM32系列中,STM32F103C8T6它在价格上是比较便宜的,且具备完成本次家居型智能盆栽系统的设计所需要的功能,所以本次设计单片机的选型选中了它。
STM32特点:
(1)STM32C8T6系列的起振晶部分采用了RTC,低负载的方式,而没有像传统的比较廉价的圆柱晶振;
(2)引脚个数为48个;
(3)工作频率为72MHZ;
(4)具有3个普通定时器和1个高级定时器;
(5)具有2个2位/16通道的ADC模数转换;
(6)使用了3.3V稳压芯片,可以保证最大输出300MA电流;
(7)支持ST-LINK和JTAG调试下载;
(8)存储资源为64kbbyteFLASH和20byteSram。
STM32F103C8T6单片机实物图如图2.1所示:
图2.1 STM32F103C8T6实物图
3.系统软件设计
本次系统的软件设计,使用的编程语言是C语言,主要使用编程软件为Keil,在设计本系统的软件时,将按各功能模块分类,一一进行源程序的编写。
3.1 软件设计所用工具
要完成本次的家居型智能盆栽系统的设计,程序的编写是必不可少的。在本次的浇花系统设计中,主要使用的单片机编程软件为Keil。KeilC32它是由美国的Keil Software公司出品的32系列兼容单片机C语言软件开发系统,将C语言和其它的汇编语言互相比较,C语言在各种软件开发功能上、结构性、可读性、可维护性上,都有特别大的优势,并且,C语言要比其它的汇编语言更加简单,更容易学。Keil则为C语言提供了一套里面含有c语言脚本编译器、宏汇编、连接器、库数据资源管理和一个功能强大的整合软件开发仿真器和软件调试器等在内的完整整合软件开发应用解决方案,通过一个完全面向集成式的软件开发应用环境将这些组成部分完美地组合在一起。
3.2 软件设计思路
在本次家居型智能盆栽系统的设计中,采用了结构化和模块化的设计方法。考虑到该系统面对的客户群体,可能会有觉得系统功能含有不必要功能,也可能对系统功能不够完善感到不满,采用结构化和模块化的设计方法,可以方便的对功能进行缩减,也可以方便的对功能进行扩展,针对不同的客户,可以给出多种不同的选择。本次设计主要使用的编程语言为C语言,它是最为基础的一门编程语言,十分简单、易懂。在该家居型智能盆栽系统中,湿度传感器会对被测的盆栽里的土壤进行数据采集,并将其转换成二进制值后,传输给单片机,单片机收到数据后对其进行处理,从而获得精确的实际采样数据,再将其传输给液晶显示器,由液晶显示器显示出来。同时,我们也对湿度值设定了阈值,当它低于设定的最小值,或是高于设定的最大值时,会由蜂鸣器发出报警。软件设计流程图如图3.1所示.
图3.1 软件设计流程图
4.系统调试
系统的调试主要分为硬件调试与软件调试两个部分。在硬件和软件的调试过程中,我们可以找出本次设计时,没有考虑到的问题,及时发现并趁早解决,避免完成设计后才发现中间的问题缺陷,需要推到再来的问题。
4.1 硬件调试
购置完所需的所有元器件后,从快递代领点将元器件领出后,拆包检查各元器件是否是所订购的元器件,并检查外表是否损坏,其后再对元器件功能进行检查,避免出现元器件损坏影响功能的情况发生。当检查完毕,确定没有问题后,就可以开始按照预先设计的原理图开始进行组装。组装时,要求能做到元器件放置的位置合理,整洁,最好导线避免太乱,方便后期检查,修改。同时,在安装时要注重安装的顺序,一级一级地安装,避免发生安装了上一级后,无法方便地安装下一级。并且,在整个电路板焊接时,要非常细心,仔细地考虑整体布局布线会不会对各模块的功能造成干扰,还要避免因为焊接熟练度不高,造成虚焊现象,使模块功能缺失。为了尽可能地降低成本,多使用一些常见且不是很贵的元器件,同时,尽可能地简化电路,防止因电路复杂产生不必要的开销。
安装的具体的步骤如下:
(1)准备好安装时所需的各元器件,按一定顺序摆放好,方便取用。
(2)按预先设定好的方案,将各元器件按位置安装,并连接。
(3)根据购置时商家给的说明书,或百度的器件说明,了解各组件工作原理,对各模块进行相关功能的调试工作。
(4)将每一个小模块编写成单独的源文件调试,在确定各模块正常运作后开始统合。
(5)将各功能模块进行统合后,进行综合调试,此时需注重细节,尽可能降低出错率。
硬件安装过程如图4.1所示。
(a)硬件位置布局
(b)成品图
图4.1 硬件安装过程图片
在花架的设计时,最初采用的花架设计得体积太大,并不适合小型化的观念,然后对花架的设计进行了修改,考虑到便携性和可拆卸的元素,构想了一个高50cm,长宽都为30cm的小型花架,它全部由可拆卸的长方体状的空心铝合金构成,其中有一些对穿的孔洞,便于拼接时采用螺丝与螺帽对整个花架进行固定。但在实际去铝业定制店面与老板协商时,因为比较费工夫,铝业的老板或是不接这一门生意,又或是价格太高。最终,在和一位铝业老板磋商时,对花架的设计又进行了一次更改,将全可拆卸的长方体空心铝管换掉,把整个花架分成了三个部分:上层、套管、底部。上层与底部,以在它们中间的套管的形式互相连接,从而构筑成一个整体。
花架组装图如图4.2所示。
(a)花架组装过程图
(b)花架组装完成图
图4.2 花架组装图
在调试LCD显示模块的时候,因为LCD1602在直接加5V电压的情况下,可能会对背光灯造成损坏,所以加了一个10欧姆的电阻限流。在第一次使用LCD1602时,还需要先让其处于上电状态,再将液晶显示屏上面那一行调整到显示出黑色的小格子。在调节蜂鸣器时,蜂鸣器的正极端需要连接在5V的电源上,另一端则与三极管的集电极相连接,由于它需要的电流比较大,所以需要给它加上一个电流放大电路,也就是给它外加上一个三极管,在选用三极管时需要注意,需选用PNP型号的三极管,不然会因为电流太小,蜂鸣器无法正常工作。并且,虽然设置了检测光照的模块,但在盆栽采光不足的情况下,并得不到有效地解决。虽然考虑过使用日光灯进行补光的解决办法,但是考虑到实际情况,如果加上日光灯对整个系统的体积影响有一些大了,所以对这个方案予以放弃。
4.2 软件调试
该家居型智能盆栽系统设计了浇花功能,湿度检测功能,温度检测功能,蜂鸣器报警功能,GSM通信功能等。其中,用STM32单片机作为该系统的工作处理器的中心,土壤湿度传感器是这个系统的关键。土壤湿度传感器,在系统中主要作用是检测被测土壤的湿度,它可以检测较宽的土壤湿度,并反馈给单片机,由单片机判定湿度是否低于阈值,是否需要报警,当湿度低于阈值时,可驱动水泵,进行浇水作业。该家居型智能盆栽系统软件设计使用的主要编程语言是C语言,使用Keil软件对设计程序完成编写,先按功能模块进行划分,把每一个模块当作一个子程序进行编程,分模块开始进行程序调试工作,确定一个模块编程无误后,再在这个基础上,添加一个模块,进行两个模块一起的调试,依此类推,逐步给程序添加模块,直到将预设的功能全部实现为止。
(1)在设计这个家居型智能盆栽系统的时候,最开始时,对于远程控制模块,是想使用APP来进行远程控制的,但是在找资料学习制作APP,以及将APP与单片机实现连接的过程中,发现虽然简易APP的制作不是很难,但是对怎么进行APP与单片机连接的问题没有办法解决,然后经过考虑,使用GSM通信作为远程通信手段。在对GSM通信模块进行调试的阶段,由于需要给SIM800A插入一张移动电话卡作为发送端,由于卡槽属于中卡卡槽,而现在电话卡几乎都是小卡,面临一个小卡插入位置的问题,在最初进行调试的时候,因插入小卡的位置不正确,导致该模块无法正常运行,最终和购置配件的店家询问后,得知插卡位置解决了这个问题。SIM800A模块中,它自带一个小的指示灯,指示灯闪烁的速率代表着模块是否正常运作,当指示灯快速闪烁时,表示该模块还处于初始化阶段,或是非正常运作;当指示灯闪烁变慢,代表模块正常运作。SIM800A调试图如图4.3所示。
图4.3 SIM800A调试图
(2)在对湿度传感器YL-69进行调试时,由于调试阶段传感器暴露在空气中,检测湿度会显示为1%,低于设定的湿度阈值,触发报警模块,产生噪音,给用户手机发送短信,干扰调试,对这个问题,使用湿纸巾包裹住YL-69后,得到了正常解决。湿度传感器YL-69触发报警图如图4.4所示。
(a)湿度传感器YL-69测试湿度图
(b)用户手机接受报警短信图
图4.4 湿度传感器YL-69触发报警图
8df6444ba6d273ad36fafa25.png)
5.总结与展望
5.1 总结
对于本次的浇花系统的设计,在此作一个总结。本次家居型智能盆栽系统的设计主要是为了解决在特殊情况下,盆栽种植者无法给盆栽进行浇水的问题。主要以单片机作为核心处理器,用单片机加上其它功能模块组成一个小型系统,该系统中最重要的部分是湿度传感器,它能对盆栽的土壤湿度进行检测,通过与设定好的湿度阈值进行比较,判定盆栽是否需要浇水,当判定为需要浇水时,配合水泵、蜂鸣器等模块,在发出报警的同时,水泵开始浇水作业,解决浇水问题。
完成本次家居型智能盆栽系统的设计,在过程中可以找到很多设计时的不成熟之处。最初,对本次设计提出的要求特别高,并没有充分地考虑自己的个人能力问题,在设计预案中需要运用到部分没有学习过的知识,设置了一个相对很高的目标,在设计的过程中,由于知识存储量的不足,需查询的资料很多,在查询了相关的资料后,结合实际情况进行分析,放弃了在光照不足时,使用日光灯进行补光的构想,在对简易app制作的视频进行了学习后,没有考虑到怎么将app与单片机连接,在对相关知识进行学习后,采用了学会的其它的替代方案,GSM通信技术解决远程通信的问题。对各传感器、使用的元器件,供电电压要求不同的问题也没有考虑周到。类似的问题出现了很多次,最终,通过指导老师的教导,不断查询相关资料,再通过实际的调试验证,成功地解决了这些问题。
5.2 后期展望
本次家居型智能盆栽系统的设计,主要考虑的是先将各功能实现,让该系统可以对盆栽的信息进行采集,所以,它的功能并不是很完善。在本次设计后,希望能从下列的几个方面对其进行改善:
首先,得把供电问题解决,采用充电电池进行供电后,可以使该系统更加便携,适用范围也能更大。随后,给系统增加一个监控模块,能用摄像头远程观察盆栽,并给该系统增加存储器部分,可以将一定的历史信息存储,保存历史温湿度等数据,并对监控视频进行一定期限的保存,便于对植株进行观察。其次,现在采用的皆是5V供电,但常用的元器件现在多数供电方式分为:12V供电、5V供电、3.3V供电,由于只使用了5V供电的方式,极大地限制了元器件的选择面。因此,需要设计5V转12V,5V转3.3V的电路,来为其他的元器件供电,扩大可选择元器件使用面。接着,设计日光灯补光体系,并入现在的浇花系统中,解决光照不足时产生的补光需求问题。最后,现在使用的是GSM通信技术,对此方面的改善为,设置一个单独的简易APP,可以通过APP远程对盆栽的状况进行观察,并且可以远程控制浇水,并在此基础上,扩展监控功能,让用户可以在APP上远程观赏盆栽,因为有了存储系统,就可以避免昙花种植者之类的种植盆栽爱好者,因一些事错过了花期,抑或是需要熬夜赏花,致使第二天精神状态不佳的现象。