风筝
发表于: 2022-4-12 09:25:11 | 显示全部楼层

在本篇文章中,我们将使用土壤酸碱度传感器(pH Sensor)和Arduino开发板制作自己的土壤酸度计,用于测量土壤的pH值。土壤可以是天然酸性或碱性的,可以通过测试其pH值来测量。土壤pH值是衡量土壤酸度或碱度的指标。


土壤被认为是植物生长发育的天然介质。许多研究正在进行以确定农民作物生产失败的内部因素。其中一个因素是不稳定或不肥沃的土壤中的自然平衡,这会抑制植物生长和植物根系发育。pH值是在0到14之间测量的材料的酸度或碱度。pH值小于7被认为是酸性的,大于7被认为是碱性的。如果pH值为7,则材料为中性。植物生长发育最理想的土壤条件是中性土壤。然而,某些类型的植物仍能耐受pH值最大为5的微酸性土壤。


除了土壤pH值外,土壤中的氮、磷、钾、EC和盐度含量也对植物生长有用。对于NPK含量的测量,我们可以使用NPK Sensor。对于土壤电导率(EC)和盐度测量,我们可以使用土壤EC传感器,但与土壤NPK相比,土壤pH值是完全不同的因素。

Arduino-Soil-Ph-Meter.jpg


本文使用的pH传感器由国内一家名为HONDETEC的公司制造,您可以在阿里巴巴上查看。该传感器与Modbus RS485完美配合,结果令人印象深刻。在这文中,我们将了解土壤酸度传感器和Arduino的连接方法,并设计一款简易的Arduino土壤酸度计,并在0.96寸OLED显示屏上显示土壤pH值。


所需的组件

●    Arduino Nano开发板

●    HONDETEC土壤pH传感器

●    0.96寸I2C OLED显示屏

●    MAX485 Modbus模块

●    5V - 30V直流电源

●    连接跳线

●    面包板


土壤酸碱度测量及其重要性

土壤pH值是衡量土壤酸度或碱度的指标。pH值实际上是氢离子浓度的量度。由于氢离子浓度在很宽的范围内变化,因此使用对数标度 (pH)

Soil-Ph-Value.jpg


大多数土壤的pH值在3.5到10之间。在降雨量较多的地区,土壤的自然pH值通常在5到7之间,而在干旱地区,范围为6.5到9。土壤可以根据其pH值进行分类:

1.  6.5到7.5——中性

2.  7.5以上——碱性

3.  小于6.5——酸性,pH小于5.5的土壤被认为是强酸性


天然土壤的pH值取决于形成土壤的岩石以及其风化过程,即气候、植被、地形和时间。随着时间的推移,这些过程往往会导致pH值降低(酸度增加)。


雨水也被认为是土壤酸度增加的重要因素之一。一些肥料可以改变土壤的pH值,增加或减少植物可用的养分数量。


土壤pH值会影响可溶于土壤水中的养分和化学物质的量。有些营养素在酸性条件下更容易获得,而另一些在碱性条件下更容易获得。然而,当土壤pH值接近中性时,植物很容易获得大多数矿物质养分。由于铝和锰的毒性或钙和镁的缺乏,强酸性土壤的发展会导致植物生长不良。碱性土壤可能存在锌、铜、硼和锰等营养物质缺乏的问题。


土壤酸碱度传感器

这是一款防水防尘的土壤pH传感器,可以测量从3到9的土壤pH值,精度高达±0.3PH。传感器具有IP68保护壳,采用高密度环氧树脂密封,可防止水分进入机身内部。该传感器适用于农业种植、工业生产、环境监测、畜牧业和污水处理。

Soil-PH-Sensor-RS485.jpg


土壤pH传感器有4个引脚,因为它需要连接到RS485模块。四种颜色的电线是黄色、蓝色、黑色和棕色。

Pinout.jpg


该模块使用的通信协议是Modbus。设备作为从机设备工作,设备地址如下所示。您可以发送该指令或查询帧并读取设备地址0x01处的土壤pH。

reg.jpg


您将获得如下响应帧。从响应帧中,您可以计算pH值。

reg2.jpg


根据收到的响应帧数据,您可以计算pH值。第4位(从第0 开始)是pH值。假设我们得到的是0047H(十六进制)= 71 十进制 => pH = 7.1pH


土壤pH传感器与Arduino的硬件连接

现在,让我们使用MAX485 Modbus模块将土壤pH传感器与Arduino Nano开发板连接起来。连接图如下。

Soil-Ph-Sensor-Arduino-Circuit.jpg


Modbus的RO和DI引脚使用软件串口连接到Arduino的D2和D3。同样,我们必须设置D​E和RE高电平,因此将它们连接到Arduino的D7和D8引脚。pH传感器有4根电线。棕色的是 VCC,需要一个5V-30V的电源,可以连接到Arduino的5V。黑色线的GND引脚需要连接到Arduino的GND。B 脚蓝线连接到MAX485的B脚,黄线A脚连接到MAX485的A脚。


0.96寸SSD1306 OLED显示屏是I2C模块。OLED显示屏的VCC和GND分别连接到Arduino的3.3V和GND。另外,将它的SDA和SCL引脚连接到Arduino的A4和A5。按照电路图在面包板上组装电路。

Circuit-Assembly.jpg


土壤pH传感器的Arduino代码

下面给出的代码用于将土壤pH传感器与Arduino连接并通过Modbus命令从传感器中检索土壤pH值。您可以发送命令并检索代码中的HEX值。需要将十六进制代码转换为十进制才能获得测量的土壤pH值数据。


由于我们使用OLED显示屏进行显示,因此需要OLED库。下载以下OLED库并将其添加到Arduino IDE。

1.  Adafruit SSD1306库

2.  Adafruit GFX库


以下是完整的源代码。编译并上传到Arduino Nano开发板。 ph sensor.rar (804 Bytes, 下载次数: 48)


测试并在OLED显示屏上观察土壤pH值数据

上传代码后,将会初始化OLED显示屏和传感器。传感器需要一些时间才能稳定下来,最初几秒钟的读数可能不正确。


一旦传感器稳定下来,您就可以开始测试了。传感器暴露在空气中时的Ph值为7.0,可以在OLED显示屏上观察到。

Neutral-Ph.jpg


另外,将传感器放入不同的土壤样本中。您会看到pH值的变化取决于土壤的类型。 该值像模拟土壤酸度传感器一样增加或减少,也可以用作物联网土壤酸度传感器。

Analog-Soil-Ph-Meter-Arduino.jpg


以上就是土壤pH传感器与Arduino的连接,以及获取pH值的方式。如果有任何疑问,请随时在本帖下面回复。


跳转到指定楼层
小白手
发表于: 2022-7-13 16:00:53 | 显示全部楼层

您好,您发布的用arduino连接土壤ph传感器的这篇文章对我帮助极大,于是我买了可以检测ph,温湿度,ec的四合一参数检测传感器,可是在验证您的代码时,一直在报错,可以方便加个qq和您再探讨学习下吗?qq:
1220570977
回复

使用道具 举报

风筝
发表于: 2022-7-20 17:18:59 | 显示全部楼层

小白手 发表于 2022-7-13 16:00
您好,您发布的用arduino连接土壤ph传感器的这篇文章对我帮助极大,于是我买了可以检测ph,温湿度,ec的四合 ...

提示什么错误呢
回复

使用道具 举报

TripleZ
发表于: 2023-5-4 15:12:52 | 显示全部楼层

你好,我现在正在做一个基于arduino的土壤PH值传感器监测模块,想向您咨询一些相关细节,方便加一个QQ联系一下吗? QQ:1552343272
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-25 18:11 , Processed in 0.044061 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表