首页 > 分享 > 基于STM32的土壤湿度实时监测器的制作

基于STM32的土壤湿度实时监测器的制作

本文设计的是基于单片机STM32F103CBT6的土壤湿度检测系统,主要以广泛应用的土壤湿度传感器YL-69作为温度和湿度的检测,该仪器具有测量精度较高、硬件电路简单、并能很好的进行显示,可测试不同土壤环境湿度的特点。

单片机是系统的控制核心,所以单片机的性能关系到整个系统的好坏。因此单片机的选择,对所设计系统的实现以及功能的扩展有着很大的影响。本次设计是以STM32F103CBT6单片机为核心,配合土壤湿度传感器YL-69,IIC OLED显示器以及按键和蜂鸣器组成的湿度检测系统,通过传感器检测环境中的湿度的变化,可以接收所测土壤环境的湿度信号,并对采集到的数据进行处理和传输,再通过IIC OLED显示器显示湿度,实时监控环境的湿度数据。

硬件方面:

1、系统结构框图

2、土壤湿度传感器简介:湿度的采集可以用湿度传感器来实现。将湿度传感器看作可调变阻器,当湿度传感器采集到湿度时,电阻值发生变化,湿度最小时的电阻值为 10K,湿度最大时为0.1Ω。 变化的幅度是根据湿度传感器采集到的湿度大小而定。随着电阻值的变化,电路的输出电压也跟着变化。调节电阻值的大小,可得到想要的电压,满足电路的需求。此次设计采用的是土壤湿度传感器YL-69

土壤湿度传感器原理图

3、土壤湿度传感器特性:(1)   土壤湿度传感器YL-69,表面采用镀镍处理,有加宽的感应面积,可以提高导电性能 ,防止接触土壤容易生锈的问题,延长使用寿命;(2)   采用三线制,接线简单,只需把VCC外接3.3V-5V电压,GND外接数字地,AO“小板模拟量输出接口”接到单片机即可;(3)   比较器采用LM393芯片,工作稳定。
软件方面:

1、系统软件流程框图

 

#include "delay.h"

#include "stm32f10x.h"

#include "OLED_I2C.h"

#include "led.h"

#include "usart.h"

#include "string.h"

#include "adc.h"

#include "timer.h"

#include "sys.h"

#include "exti.h"

#include "beep.h"

float temp_avrg=0;

int temp_LL=40;

int shidu;

int num;

int num_adj=1;

int j=0;

int times;

float total=0;

void Hardware_Init(void)

{

Delay_Init();

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

I2C_Configuration();

OLED_Init();

Led_Init();

uart_init(9600);

Adc_Init();

EXTIX_Init();

BEEP_Init();

}

void OLED_Show(void)

{

unsigned char i;

extern const unsigned char BMP2[];

OLED_CLS();

OLED_DrawBMP(0,0,128,8,(unsigned char *)BMP2);

for(i=10;i<14;i++)

OLED_ShowCN(0,2*(i-10),i);

for(i=14;i<18;i++)

OLED_ShowCN(112,2*(i-14),i);

DelayMs(2500);

OLED_CLS();

for(i=0;i<4;i++)

OLED_ShowCN(31+i*16,1,i);

for(i=18;i<21;i++)

OLED_ShowCN(39+(i-18)*16,5,i);

DelayMs(1500);

OLED_CLS();

for(i=4;i<10;i++)

OLED_ShowCN(14+(i-4)*16,0,i);

for(i=6;i<8;i++)

OLED_ShowCN(0+(i-6)*16,3,i);

OLED_ShowStr(36,4,":",1);

OLED_ShowStr(90,4,"%",1);

for(i=6;i<8;i++)

OLED_ShowCN(0+(i-6)*16,6,i);

for(i=21;i<23;i++)

OLED_ShowCN(32+(i-21)*16,6,i);

OLED_ShowStr(70,7,":",1);

OLED_ShowStr(110,7,"%",1);

OLED_ShowNum(75,7,temp_LL,1);

int main(void)

{

num=50;

Hardware_Init();

printf("rn³õʼ»¯Íê³Érn");

OLED_Show();

while(1)

{

Get_Adc_Average(1,10);

DelayMs(500);

if(shidu>10000)

shidu=10000;

if(shidu<0)

shidu=0;

OLED_ShowNum(60,4,shidu%100,1);

OLED_ShowNum(40,4,shidu/100,1);

OLED_ShowStr(64,4,".",1);

if(shidu/100<temp_LL)

{

BEEP=0;

DelayMs(500);

BEEP=1;

DelayMs(500);

}

}

}

/*AD转化处理*/

u16 Get_Adc(u8 ch)

{

ADC_RegularChannelConfig(ADC1,ch,1, ADC_SampleTime_239Cycles5);

ADC_SoftwareStartConvCmd(ADC1,ENABLE);

while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));

return ADC_GetConversionValue(ADC1);

}

u16 Get_Adc_Average(u8 ch,u8 times)

{

u32 temp_val=0;

u8 t;

for(t=0;t<times;t++)

{

temp_val+=Get_Adc(ch);

DelayMs(1);

}

temp_avrg=temp_val/times;

shidu=(4092-temp_avrg)/3292*10000;

return temp_avrg;

}

原文链接:http://www.51hei.com/bbs/dpj-141820-1.html

相关知识

土壤湿度监测器
基于物联网的温室远程监测器设计
土壤湿度监测器工作原理分析
基于STM32的植物浇水系统开发
基于stm32的智能灌溉系统
基于STM32的土壤湿度检测自动浇水系统proteus仿真设计(仿真+程序+设计报告+讲解视频)
基于STM32的智能花盆浇水系统设计
基于STM32的智能室内植物养护系统设计
基于STM32单片机远程浇花花盆GSM短信浇水补光灌溉系统
基于STM32和云平台的花卉养护系统设计(微信小程序)(209)

网址: 基于STM32的土壤湿度实时监测器的制作 https://m.huajiangbk.com/newsview514430.html

所属分类:花卉
上一篇: 23
下一篇: 魔幻主义花店打造概念花艺橱窗,五