第四篇、基于Arduino uno,获取土壤湿度传感器的原始值和含水量——结果导向
0、结果
说明:先来看看串口调试助手显示的结果,第一个值是原始的模拟电压值,第二个值是含水量,如果是你想要的,可以接着往下看。
1、外观
说明:虽然土壤湿度传感器形态各异,但是原理和代码都是适用的。
2、连线
说明:只需要连接三根线。
uno————土壤湿度传感器
5V--------------VCC
GND--------------GND
A0--------------A0
3、源程序
说明:采用非阻塞方式编写,一定时间检测一次土壤湿度,并将对应功能进行函数化,方便移植。
/****************************************soil part****************************************/
/*Note:It is necessary to test the simulated value of completely dry soil first,and then measure the simulated value of soaked water.These two values are the values of 0~100 water content,and the other water content is within this range.Because the simulated value is inversely proportional to the water content,it needs to be looked at backwards.
*/
#define maxSoil 1024 //The maximum value of the soil read
#define minSoil 400 //Minimum value read from the soil
#define soilTimeInterval 1000 //Soil moisture was measured once every 1000 milliseconds
#define soilHumPin A0 //A0 Indicates the original read dataunsigned long soilTimes = 0; //Record the device running time
int soilHumidityData = 0; //Current measured air humidity
int soilWaterContent = 0; //Water content in soil
/***********************************set up and loop part*********************************/
void setup() {Serial.begin(9600); // open serial port, set the baud rate to 9600 bpsSerial.println("Go online!");
}
void loop() {getSoilHumData(); //Soil moisture acquisition
}
/****************************************soil part****************************************/
/*Soil moisture acquisition*/
void getSoilHumData() {if (millis() - soilTimes >= soilTimeInterval) {soilTimes = millis();soilHumidityData = analogRead(soilHumPin); //Obtain the soil moisture valuesoilHumidityData = constrain(soilHumidityData, minSoil, maxSoil); //Limit the fetched values to a rangesoilWaterContent = map(soilHumidityData, minSoil, maxSoil, 100, 0); //Map the restricted value to the water contentSerial.print("Original value: ");Serial.print(soilHumidityData); // The serial port displays the corresponding valueSerial.print(" , ");Serial.print(" Water content: ");Serial.print(soilWaterContent); // The serial port displays the corresponding valueSerial.println(" %");}
}
4、注意事项
说明:程序中的两个值需要特别提示一下,maxSoil 这个值表示土壤检测传感器在空气中的一个模拟值,minSoil这个值表示土壤检测传感器百分之八十在水中的一个模拟值,这两个值来模拟含水量0和含水量100% ,这两个值需要您实际测量得到。
5、基本原理
土壤湿度检测传感器的原理是通过测量土壤中的电导率来判断土壤湿度。
当土壤湿度较低时,土壤内部的电阻很大,电导率很低,反之当土壤湿度较高时,土壤内部的电阻很小,电导率很高。因此,土壤湿度检测传感器通常会在传感器的两个电极之间施加一个微小的电流(通常为几毫安的直流电流),并测量电阻值或电导率,来判断土壤的湿度情况。
一般来说,土壤湿度检测传感器的电极需要插入到土壤深度 10 至 15 厘米的位置,这样可以获得较为准确的湿度信息,因为表层的土壤湿度和根系区的土壤湿度会有一定的差异。
第四篇、基于Arduino uno,获取土壤湿度传感器的原始值和含水量——结果导向相关推荐
- 第三十二篇、基于Arduino uno,获取光敏电阻传感器的原始值和光照强度——结果导向
0.结果 说明:先来看看串口调试助手显示的结果,第一个值是原始的模拟电压值,第二个值是含光量,也就是光照强度,如果是你想要的,可以接着往下看. 1.外观 说明:虽然光敏电阻传感器形态各异,但是原理和代 ...
- Arduino UNO驱动土壤湿度传感器检测
Arduino UNO驱动土壤湿度传感器检测 简介 运行要求 Arduino UNO与传感器接线 程序展示 实践效果 总结 简介 本次使用到是这个新款土壤湿度传感器! 这款电容式土壤湿度传感器区别于市 ...
- 读取24位ad的值_实践案例丨利用小熊派开发板获取土壤湿度传感器的ADC值
摘要:一文带你用小熊派开发板动手做土壤湿度传感器. 一.实验准备 1.实验环境 一块stm32开发板(推荐使用小熊派),以及数据线 已经安装STM32CubeMX 已经安装KeilMDK,并导入stm ...
- 实践案例丨利用小熊派开发板获取土壤湿度传感器的ADC值
摘要:一文带你用小熊派开发板动手做土壤湿度传感器. 一.实验准备 1.实验环境 一块stm32开发板(推荐使用小熊派),以及数据线 已经安装STM32CubeMX 已经安装KeilMDK,并导入stm ...
- 基于Arduino UNO的楼道人体感应灯
基于Arduino UNO的楼道人体感应灯 文章目录 前言 一.认识人体热释电红外传感器 二.模块连接图及程序 1.setup()初始化程序 2.loop()主函数 总结 前言 生活中经常看到一些自动 ...
- 西电A测 | 基于Arduino uno的电子密码锁仿真系统 | 使用Proteus仿真 | Arduino IDE编写
西电A测 | 基于Arduino uno的电子密码锁仿真系统 | 使用Proteus仿真 | Arduino IDE编写 | ATMEGA328P 电子密码锁系统 Arduino UNO Arduin ...
- 基于Arduino UNO R3的植物管家开发过程(一)
前言 最近时不时收到CSDN粉丝的留言,忍不住打开了尘封已久的博客.自从工作以后,已经整整四年没有在CSDN中发过文章了.一打开博客,看着曾经记录的点点滴滴,回想起自己刚高中毕业的时候,连打字都不会, ...
- 基于Arduino Uno开发板制作音乐播放器
基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器. 利用Arduino Uno读取sd卡模块中内存卡的音乐,传输信号到扬声器进行播放. 一.项目软硬件简 ...
- 基于Arduino Uno开发板的红外遥控开发
基于Arduino Uno开发板的红外遥控开发 1 准备 1.1 硬件与软件 1.2 走线 2 代码 2.1 ReceiveDump 2.2 SendRawDemo 1 准备 1.1 硬件与软件 单片 ...
最新文章
- python flask 设置个性化的响应体 响应头 状态码
- 自学python需要多长时间-自学Python需要多长时间?
- 互联网+连接教育 全息时代即将来临
- 音视频(H264+G711)打包AVI文件
- Linux,没你想象的那么安全!
- 【AI视野·今日CV 计算机视觉论文速览 第213期】Fri, 4 Jun 2021
- 苹果明年有望推出15英寸版MacBook Air
- UI设计灵感|想让用户中心更有特色?这些案例值得借鉴
- 多线程之 interrupt,interrupted,isInterrupted 方法区别
- 什么是通讯作者?和第一作者的区别有哪些?
- 关于instr和like的比较
- 手机代理上网_ip地址是怎么来的?手机电脑怎么获得IP地址?
- android activity singletask,Android Activity启动模式之singleTask实例详解
- Python爬取上交所年报下载并转成TXT
- 上传服务器文件代码,文件上传服务器代码
- 【RL系列】马尔可夫决策过程——Gambler's Problem
- 跳石(Skipping stone)
- Latex 希腊字母大写
- 查询国际学术会议的信息
- 中国大学MOOC C语言程序设计(大连理工大学) 课后编程题 第十三周题解(个人向仅供参考)
热门文章
- chosen-select multiple 下拉框多选,赋值
- python中save是什么意思_如何在Python中生成save函数
- 高级Linux SA需要会做的事情
- 【LB-1A 100V电压回路断相闭锁继电器】
- 【剑侠情缘服务端】武侠题材角色扮演类手游源码+手工外网端+安卓APP+视频教程
- 游戏盾是怎么防御攻击的
- 8年测试老鸟总结,软件测试工程师关键成长晋升要素,这些不能不知道...
- 30 道 Vue 面试题,内含详细讲解!
- 51单片机(三)独立按键控制LED
- 杂谈——常用的浏览器请求头User - Agent大全