在本篇文章中,我们将使用土壤酸碱度传感器(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值是完全不同的因素。
本文使用的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)
大多数土壤的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保护壳,采用高密度环氧树脂密封,可防止水分进入机身内部。该传感器适用于农业种植、工业生产、环境监测、畜牧业和污水处理。
土壤pH传感器有4个引脚,因为它需要连接到RS485模块。四种颜色的电线是黄色、蓝色、黑色和棕色。
该模块使用的通信协议是Modbus。设备作为从机设备工作,设备地址如下所示。您可以发送该指令或查询帧并读取设备地址0x01处的土壤pH。
您将获得如下响应帧。从响应帧中,您可以计算pH值。
根据收到的响应帧数据,您可以计算pH值。第4位(从第0 开始)是pH值。假设我们得到的是0047H(十六进制)= 71 十进制 => pH = 7.1pH
土壤pH传感器与Arduino的硬件连接 现在,让我们使用MAX485 Modbus模块将土壤pH传感器与Arduino Nano开发板连接起来。连接图如下。
Modbus的RO和DI引脚使用软件串口连接到Arduino的D2和D3。同样,我们必须设置DE和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。按照电路图在面包板上组装电路。
土壤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, 下载次数: 59)
测试并在OLED显示屏上观察土壤pH值数据 上传代码后,将会初始化OLED显示屏和传感器。传感器需要一些时间才能稳定下来,最初几秒钟的读数可能不正确。
一旦传感器稳定下来,您就可以开始测试了。传感器暴露在空气中时的Ph值为7.0,可以在OLED显示屏上观察到。
另外,将传感器放入不同的土壤样本中。您会看到pH值的变化取决于土壤的类型。 该值像模拟土壤酸度传感器一样增加或减少,也可以用作物联网土壤酸度传感器。
以上就是土壤pH传感器与Arduino的连接,以及获取pH值的方式。如果有任何疑问,请随时在本帖下面回复。
|