博主主页:单片机辅导设计
博主简介:专注单片机技术领域和毕业设计项目。
主要内容:毕业设计、简历模板、学习资料、技术咨询。
主要介绍
本设计主要基于STM32F103RCT6单片机处理器,由主控部分、传感器部分、无线接收部分、显示模块组成。将传感器放在盆栽合适的位置,来检测盆栽生长环境参数,检测参数有光照强度、土壤温湿度、空气温湿度,采集到的数据经过处理器再次显示,通过ZigBee模块进行传输来实现无线通讯,主从分离的控制模式便于用户查看相关信息。将环境参数在OLED上显示出来,判断是否需要浇水,环境条件是否适合生长。同时还能把数据通过蓝牙传送到手机APP上,并且判断盆栽的需水量。若盆栽处于缺水状态时,手机可以反向控制主从机,发送浇水指令。
本设计与传统的盆栽浇水系统相比,它可以根据土壤水分的大小,自动实现浇水功能,当室内其他环境因素不符合植物生长条件时,会在与系统相连的手机上进行提醒。
关键词:STM32,反向控制,蓝牙通讯,温度传感器
一、系统主要功能
基于ZigBee技术的智能盆栽助长系统以STM32F103RCT6为控制核心,主要包括光照传感器、土壤温度传感器、土壤湿度传感器、空气温度传感器、空气湿度传感器等主要五大部分,五大模块搭建起整个传感器层[4],然后对采集的数据进行分析处理,实现智能盆栽系统的自动浇水功能和报警功能。
二、 方案设计要求及目标
在本设计的硬件方面,将STM32F103RCT6单片机作为核心控制芯片,通过ADC模数转换器将传感器获取到的数据进行转换并显示出来;传感器部分主要由光照传感器、将这些参数进行数据采。然后依靠ZigBee模块,利用其无线通信传输的特性,将数据传输到OLED上,直接将数据呈现给用户,这种传输方式,不但可以减少多个盆栽之间的布线,还增加了美观性。考虑到OLED屏幕尺寸较小,还可以通过蓝牙将数据传输到手机上,方便用户实时监测。
总体设计方案的选择
在市场上,智能盆栽产品种类很多,但共性的都会对土壤的温湿度、空气的温湿度、光照强度进行检测。以这个思路为蓝图,在本设计中加入了这些元素;为了在批量使用时节约成本,采用主从机的模式进行设计,而且考虑到布线的多种不便,在主从机之间使用无线传输的方式;考虑到智能手机使用的广泛性,在设计中会加入APP这一元素,提高在管理上的便捷性。
三、硬件整体结构设计
本系统一共分为两大部分:主机部分、从机部分。
主机部分:ZigBee通讯模块用于主机与从机之间的通讯,主机的ZigBee负责接收从机发送上来的数据,STM32F103RCT6通过USART串口功能获取到这部分数据。STM32F103RCT6将数据处理后再利用自带的IIC接口与OLED进行通讯,将盆栽的生长环境信息在屏幕上显示出来;按键模块:通过按键还可实现手动浇水功能,并且还可根据盆栽植物不同,手动设置自动浇水的阀值,提高了设计的应用范围; 为了能够方便快捷的记录数据,可以通过蓝牙模块上传到手机APP上。
从机部分:从机上也有一个控制芯片,用于对采集到的数据进行处理,土壤湿度传感器用于检测土壤中水分含量,实时将土壤湿度数据发送给STM32F103RCT6,当检测的湿度小于花卉生长要求湿度时,闭合继电器,启动微型抽水泵抽水浇花,若达到标准则停止浇花;土壤温度传感器用于检测花卉根部土壤的温度,不符合生长要求时,发出警报;空气温湿度传感器检测大气环境温湿度,当周围环境温度或者湿度低于花卉生长要求时发出警报;光照强度传感器对人工照射的强度进行监测,保证花卉的生长需求;从机上的ZigBee负责把采集上来的光照强度、土壤温湿度、空气温湿度数据传输到主机上的接收端,完成整个系统的信息传输任务[8]。
图3-1 整体结构框图
程序
单片机程序全部源码:
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "usart.h"
#include "stdlib.h"
u16 RXD_buf;
u8 temperature;
u8 humidity;
u8 t1;
u8 t2;
u8 j;
u8 result_lx;
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
OLED_Init(); //初始化OLED
OLED_Clear();
OLED_ShowString(0,2,"SOTEM: .",16);
OLED_ShowString(0,4,"SOHUM: ",16)