基于Arduino的土壤湿度检测

基于Arduino的土壤湿度检测

目录

1.总体设计框图

2.系统的硬件设计

2.1系统硬件的简述

2.2单片机模块的设计

2.3温度采集系统的设计

3、附录

附录1总体电路图

附录2 效果图(3张)

附录3源程序

1.总体设计框图

   本浇花系统总体上分为硬件和软件两大组成部分。硬件部分包括Arduino  UNO开发板、温湿度传感器、通信模块、浇水执行系统和液晶显示等。软件部分包括Android客户端。系统结构如图1所示   

2.系统的硬件设计

2.1系统硬件的简述

1,传感器适用于土壤的湿度检测;

2,模块中蓝色的电位器是用于土壤湿度的阀值调节,

顺时针调节,控制的湿度会越大,逆时针越小

3,数字量输出D0可以与单片机直接相连,通过单片机来检测高低电平,由此来检测土壤湿度;

4,小板模拟量输出AO(0~1023)可以和AD模块相连,通过AD转换,可以获得土壤湿度更精确的数值;

2.2单片机模块的设计

2.2.1单片机的功能特性描述

图2-1 Arduino实物图

               

图2-2 Arduino引脚图

Arduino UNO可以通过3种方式供电,而且能自动选择供电方式:

外部直流电源通过电源插座供电。

电池连接电源连接器的GND和VIN引脚。

USB接口直接供电。

电源引脚说明:

    VIN --- 当外部直流电源接入电源插座时,可以通过VIN向外部供电;也可以通过此引脚向UNO直接供电;VIN有电时将忽略从USB或者其他引脚接入的电源。

    5V --- 通过稳压器或USB的5V电压,为UNO上的5V芯片供电。

    3.3V --- 通过稳压器产生的3.3V电压,最大驱动电流50mA。

    GND --- 地脚。

输入输出:

    14路数字输入输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。每一路配置了20-50K欧姆内部上拉电阻(默认不连接)。除此之外,有些引脚有特定的功能

    串口信号RX(0号)、TX(1号): 与内部 ATmega8U2 USB-to-TTL 芯片相连,提供TTL电压水平的串口接收信号。

    外部中断(2号和3号):触发中断引脚,可设成上升沿、下降沿或同时触发。

    脉冲宽度调制PWM(3、5、6、9、10 、11):提供6路8位PWM输出。

    SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。

    LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。

    6路模拟输入A0到A5:每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限。除此之外,有些引脚有特定功能

    TWI接口(SDA A4和SCL A5):支持通信接口(兼容I2C总线)。

    AREF:模拟输入信号的参考电压。

Reset:信号为低时复位单片机芯片。

2.3温度采集系统的设计

2.3.1湿度传感器的概述

  1. 叉形设计,方便插入土壤
  2. 模块插入土壤后,输出电压随着土壤湿度升高而增大

土壤湿度检测的基本特性:

  1. 供电:3.3v 或者 5v
  2. 输出信号:0~4.2v
  3. 额定电流: 35mA
  4. 输出范围及对应的土壤湿度

2.3.2传感器的借口说明

用于土壤的湿度检测。可通过电位器调节土壤湿度的阀值,顺时针调节,控制的湿度会越大,逆时针越小;湿度低于设定值时,DO输出高电平,模块提示灯亮;湿度高于设定值时,DO输出低电平,模块提示灯灭。工作电压3.3V-5V。3V时,在空气中AO读取的值最大为695 , 浸泡在水里的 最小值245;5V时,在空气中AO读取的值最大为1023 ,浸泡在水里的最小值 245。

2.3.3硬件连接

VCC接 Arduino 3.3V或5V
GND接 Arduino GND
AO 接 ArduinoAnalog
DO接 Arduino Digital 4

3、附录

附录1总体电路图

附录2 效果图(3张)

 

 

附录3源程序

//LingShun Lab



#define Moisture A0 //定义AO 引脚 为 IO-A0

#define DO 7        //定义DO 引脚 为 IO-7



void setup() {

  pinMode(Moisture, INPUT);//定义A0为输入模式

  pinMode(DO, INPUT);

  Serial.begin(9600);

}

void loop() {

  //串口返回测量数据

  Serial.print("Moisture=");

  Serial.print(analogRead(Moisture));//读取AO的数值

  Serial.print("|DO=");

  Serial.println(digitalRead(DO));//读取DO的数值

  delay(1000);

}

  • 11
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹骄傲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值