首页 分享 土壤湿度传感器详解(STM32)

土壤湿度传感器详解(STM32)

来源:花匠小妙招 时间:2024-12-14 18:43

目录

一、介绍

二、传感器原理

1.原理图

2.引脚描述

三、程序设计

main.c文件

TS.h文件

TS.c文件

四、实验效果 

五、资料获取

项目分享

一、介绍

        传感器适用于土壤的湿度检测,模块中蓝色的电位器是用于土壤湿度的阈值调节,数字量输出DO可以与单片机直接相连,通过单片机来检测高低电平,由此来检测土壤湿度。模拟量输出AO可以和AD模块相连,通过AD转换,可以获得土壤湿度更精确的数值;

以下是土壤湿度传感器的参数:

工作电压

3.3~5V

阈值调节

电位器调节

尺寸

14mm×32mm

输出方式

模拟量(AO)与数字量(DO)

比较器

LM393

哔哩哔哩视频链接:

(资料分享见文末) 

二、传感器原理

1.原理图

2.引脚描述

引脚名称

描述

VCC

供给电压3~5V

GND

地线

DO

开关信号

AO

模拟信号

三、程序设计

1.使用STM32F103C8T6读取土壤湿度传感器采集的数据,通过串口发送至电脑

2.将读取得到的数据同时在OLED上显示

土壤湿度(AO)

PA0

OLED_SCL

PB11

OLED_SDA

PB10

串口

串口1

main.c文件

#include "stm32f10x.h"

#include "led.h"

#include "usart.h"

#include "delay.h"

#include "oled.h"

#include "TS.h"

#include "adcx.h"

u16 value;

int main(void)

{

SystemInit();

delay_init(72);

LED_Init();

LED_On();

TS_Init();

USART1_Config();

OLED_Init();

printf("Start n");

delay_ms(1000);

OLED_Clear();

OLED_ShowChinese(0,0,8,16,1);

OLED_ShowChinese(16,0,9,16,1);

OLED_ShowChinese(32,0,10,16,1);

OLED_ShowChinese(48,0,11,16,1);

OLED_ShowChar(64,0,':',16,1);

while (1)

{

LED_Toggle();

value = TS_GetData();

printf("土壤湿度: %drn",value);

OLED_ShowNum(80,0,value,2,16,1);

delay_ms(200);

}

}

TS.h文件

#ifndef __TS_H

#define__TS_H

#include "stm32f10x.h"

#include "adcx.h"

#include "delay.h"

#include "math.h"

#define TS_READ_TIMES10

#defineTS_GPIO_CLKRCC_APB2Periph_GPIOA

#defineTS_GPIO_PORTGPIOA

#defineTS_GPIO_PINGPIO_Pin_0

#define ADC_CHANNEL ADC_Channel_0

void TS_Init(void);

uint16_t TS_GetData(void);

#endif

TS.c文件

#include "TS.h"

void TS_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd (TS_GPIO_CLK, ENABLE );

GPIO_InitStructure.GPIO_Pin = TS_GPIO_PIN;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

GPIO_Init(TS_GPIO_PORT, &GPIO_InitStructure);

ADCx_Init();

}

uint16_t TS_ADC_Read(void)

{

return ADC_GetValue(ADC_CHANNEL, ADC_SampleTime_55Cycles5);

}

uint16_t TS_GetData(void)

{

uint32_t tempData = 0;

for (uint8_t i = 0; i < TS_READ_TIMES; i++)

{

tempData += TS_ADC_Read();

delay_ms(5);

}

tempData /= TS_READ_TIMES;

return 100 - (float)tempData/40.96;

}

四、实验效果 

五、资料获取

项目分享

相关知识

STM32土壤湿度传感器学习指南
基于STM32的土壤湿度传感器使用
STM32的串口打印土壤湿度传感器(YL
基于STM32的土壤湿度传感器(FC
基于STM32的智能灌溉系统设计
基于STM32的智能花盆浇水系统设计
基于STM32的植物浇水系统开发
基于STM32开发的智能花园灌溉系统
土壤湿度传感器的工作原理是什么?
STM32 HAL库实现GY302光照传感器驱动指南

网址: 土壤湿度传感器详解(STM32) https://www.huajiangbk.com/newsview1095599.html

所属分类:花卉
上一篇: 1992—2018年中国旱作农田
下一篇: 一种土壤湿度智能监测花盆的设计及

推荐分享