基于ARM Cortex‐M微控制器的实时操作系统水培系统设计
摘要
水培是一种无需土壤种植植物的技术,植物根部被浸没或湿润在惰性材料中的营养丰富的溶液里。水培技术几乎在所有气候条件下都已成为温室种植者的现实选择。全球范围内存在大量用于种植花卉、蔬菜以及番茄和黄瓜等短期果实的水培装置。在无土栽培中,我们必须保持营养液pH值和电导率水平的稳定,以确保植物良好生长;特定时间内pH值的大幅波动会导致植物中毒。本文描述了一套完整的自动化水培系统的开发,包括维持稳定的营养成分(电导率和pH值)、植物生长灯,以及监测植物环境参数如二氧化碳、温度和湿度。我们自动化的核心是意法半导体生产的ARM Cortex‐M4微控制器,运行ARM官方的实时操作系统(RTOS)——ARM mbed操作系统。使用RTOS使我们能够实现多线程进程,具有更高的灵活性。实验结果表明,该系统能够将目标浓度水平控制在变化小于3%的范围内,pH传感器在pH值3.23‐10范围内的测量精度达到5.83%。植物光照强度测量结果显示为105 μmol/m2/s,因此需要每天至少开启光源17小时,以满足植物的光照需求。RTOS表现出优异性能,延迟和抖动均低于15微秒,整体系统在植物营养生长期的自动化控制中表现出良好的性能和精度。
关键词 :水培, 植物生长灯, ARM Cortex‐M, 营养液, 实时操作系统, mbed操作系统
1. 引言
通过食用新鲜且无农药的蔬菜来获得健康生活是每个人的梦想。供人食用的蔬菜必须来自未受到农药、虫卵等有害化学物质和微生物污染的植物。在日常生活中,不可否认的是,人们所食用的蔬菜难免含有农药等有害化学物质。巴基斯坦木尔坦尼什塔尔医院1996‐2000年的数据显示,共有 578[1]名中毒患者,其中370名为农药中毒患者(54人死亡)。总体而言,农药中毒者多为农民或农业工人,其中81%的年龄为14‐30岁[1]。此外,采用土地的传统种植方式也存在一些缺点。第一,土壤是大多数病虫害的来源;第二,不同地区的土壤差异各不相同,因此需要寻找适合的种植土地。用于农业。第三,所需土壤面积与可生产的蔬菜数量成正比。第四,肥料和水的使用效率较低。这些缺点是水培种植方法[2]发展的基础。
2. 水培及相关研究
水培具有五个优势。第一,消除来自土壤的害虫、真菌及其他病害。第二,消除杂草,因此无需使用除草剂。第三,减少处理和维护土壤害虫时的健康风险和成本。第四,缩短重新种植所需时间,因为无需进行土地准备。第五,提高产量并缩短收获时间[2]。
在循环式水培中,基于定时供给营养液的自动化系统,其植物生长速率比土壤种植快 40‐50%[3]。通过根据植物需求控制营养液的电导率,利用ARM处理器可促进植物生长并提高生产效率[4]。系统中使用的电导率仪作为电极。植物所需营养素的量通过手动计算后存储在处理器中。电导率仪将植物体内营养素含量与处理器中手动计算的设定值进行比较,若低于设定值,则泵将自动开启,添加营养液以达到所需的营养水平。通过控制营养液的电导率和pH值可获得更优的效果[5],其中pH值在植物吸收各种元素的过程中起着重要作用。
植物需要光源进行光合作用,植物的光照需求通过每日光照量[6]来衡量。当提供不同 LED颜色的光源时,植物会有不同的反应,这会影响植物生长和生产效率[7]。植物能够响应不同的光谱[8],我们可以为特定植物制定特殊的光照配方[9]。
为了构建完整的植物种植室,我们需要控制营养液、光照需求和气候。麻省理工学院媒体实验室发起了开放农业计划,以构建用于植物种植的食物计算机、树木计算机和食物服务器,通过这种食物计算机,我们能够通过在任何地方下载生长配方来种植任何植物[10]。
在本研究中,我们构建了一套用于水培的自动化系统,能够调节并维持营养液的电导率和 pH值,根据植物的日光积分量(DLI)控制植物生长灯,并持续监测环境变量,如温度、湿度、 CO2浓度以及营养液的pH值和电导率。为了构建能够同时运行多个进程的系统,我们采用了实时操作系统[11]。针对ARM微控制器,目前有许多可用的实时操作系统,包括免费和授权版本;在本研究中,我们使用mbed操作系统,一种面向ARM微控制器的开源实时操作系统。
3. 实验设置
该系统可根据现有选择通过定时器实现自动浇水,能够根据所需水平调配营养素浓度,系统可读取水培营养液中的pH值和营养素浓度,还可读取系统周围环境的温度、湿度、二氧化碳浓度以及光照强度。系统配备三组生长用LED灯,每组具有不同的配置,用于植物照明,可选择灯光颜色,且系统配置可保存在SD卡中。
系统启动时,程序首先会关闭搅拌泵、水泵和计量泵。然后程序将初始化LCD模块,并初始化用于CO2传感器的串口及串口连接到PC。程序将读取存储在SD卡中的系统配置数据,并根据该配置初始化全局变量。接着程序更新LCD显示。程序将开始运行6个线程:传感器线程用于读取传感器数据,按钮线程用于读取提供的按钮状态,混合线程用于执行水培营养液的配比,定时冲洗线程用于设置浇灌植物的时间,定时灯光线程用于通过LED灯调节植物照明时间,LCD更新线程用于在选定特定菜单时刷新LCD显示。随后程序启动定时器作为时钟发生器,供最低水位传感器检测营养液容器中是否存在水。程序将检查之前的浇水定时器是否已启用,如果已启用,则将按照之前使用的配置时间开始浇灌植物。
3.1. 传感器实验(pH传感器、DHT22湿度传感器、MH‐Z19传感器)
pH传感器实验通过记录溶液中的初始pH值,然后向溶液中加入5 mL pH溶液,再将pH传感器的结果与测量仪器进行比较。在物理实验室中对DHT22湿度传感器进行600秒的实验,每30秒采集一次数据,结果将与测量仪器进行比较。MH‐Z19传感器实验在房间内进行 25分钟,每1分钟采集一次数据,结果将与测量仪器进行比较。
3.1.1. 营养液配比实验
系统最初提供5 mL营养液,然后系统记录营养素的增加量,以计算达到目标所需的营养液补充量。
3.1.2. 每日光照积分实验
数据采集使用量子PAR计测量仪器,在LED到植物种植孔距离为30 cm处进行。LED系数可通过将平均光强除以勒克斯得到。通过获取LED的系数,即可获得平均光强,并可用于计算每日光照积分(DLI)。在获得平均光强数值后,使用17小时的DLI公式进行计算。
3.2. 实时操作系统实验
实时操作系统性能测试中,我们使用方波输入并通过示波器[12]测量输入信号与输出信号之间的延迟来测量抖动和延迟,如图3所示。
4. 实验结果与讨论
以下图4是pH计传感器实验的结果,所得差异非常小,因此本实验中的pH计传感器可用于读取pH值。
以下图5是物理实验室中DHT22传感器与测量设备之间湿度数据获取结果。所得差异非常小。
下图6为物理实验室中MH‐Z19传感器与测量设备之间CO2数据采集结果的对比。各房间的差异值相对接近,因此本案例中将对MH‐Z19传感器使用校正因子,以使测量结果更接近测量仪器的结果。针对MH‐Z19传感器所采用的校正因子为相对于初始值的260 ppm。
下表1为已完成的营养物质配比结果。
表1 营养物质配比表
| 实验 | 早期营养 | 目标营养 | 结果差异 | 百分比差异 | 体积 |
|---|---|---|---|---|---|
| 1 | 349 | 500 | 491 | 1.80% | 5.5 L |
| 2 | 590 | 800 | 789 | 1.38% | 5.5 L |
| 3 | 789 | 1000 | 1012 | 1.20% | 5.5 L |
| 4 | 1014 | 1350 | 1303 | 3.48% | 5.5 L |
| 5 | 1303 | 1500 | 1488 | 0.80% | 5.5 L |
| 6 | 314 | 500 | 484 | 3.20% | 6 L |
| 7 | 484 | 700 | 679 | 3.00% | 6 L |
| 8 | 679 | 900 | 879 | 2.33% | 6 L |
| 9 | 879 | 1100 | 1080 | 1.82% | 6 L |
| 10 | 1080 | 1250 | 1265 | 1.20% | 6 L |
| 11 | 1265 | 1450 | 1495 | 3.10% | 6 L |
| 12 | 1495 | 1600 | 1581 | 1.19% | 6 L |
| 13 | 1581 | 1700 | 1700 | 0.00% | 6 L |
| 14 | 1700 | 1760 | 1761 | 0.06% | 6 L |
| 15 | 1761 | 1900 | 1904 | 0.21% | 6 L |
| 16 | 1904 | 2100 | 2116 | 0.76% | 6 L |
| 17 | 2127 | 2300 | 2277 | 1.00% | 6 L |
| 18 | 2324 | 2400 | 2377 | 0.96% | 6 L |
| 19 | 2377 | 2500 | 2523 | 0.92% | 6 L |
| 20 | 310 | 530 | 543 | 2.45% | 5.5 L |
| 平均 | 1.54% |
下表2是已完成的RGB LED系数的结果。
表2 RGB LED系数表
| 紫色 | 平均光照 Intensity (μmol/m²/s) | Lux | LED 系数 |
|---|---|---|---|
| 95.2 | 7696 | 0.012370062 | |
| 120.3 | 10816 | 0.011122411 | |
| 121.7 | 10496 | 0.011594893 | |
| 96.3 | 7807 | 0.012333504 | |
| 平均 0.011855218 |
通过获取LED的系数,可以得到平均光强,并可用于计算每日光照积分(DLI)。以下是平均光强计算的一个示例:
平均光强 = 12064 × 0.011855218 = 143.02 μmol/m²/s
在获得平均光强数值后,使用DLI公式计算17小时的光照量,计算如下:
$$
\text{DLI} = \frac{\text{Average Light Intensity} \times \text{Hour} \times 3600}{1000000} = \frac{143.02 \times 17 \times 3600}{1000000} = 8.75 \, \text{mol/m}^2/\text{day}
$$
下图7中,我们在距离光源25厘米处测量所有植物生长灯的光照强度。结果显示,每盏植物生长灯产生的光照强度存在差异,范围从6.03 μmol/m²/s到10.74 μmol/m²/s。为了满足植物每天6 mol/m²/天的光照需求,我们的植物生长灯每天至少应开启17小时。
此处图8是进行实时操作系统(RTOS)实验时采集数据的图像,在实验进行的同时主程序仍在运行。黄色信号是给定的信号,另一个信号是每个线程输出的信号。时间延迟非常小(微秒级)。
5. 结论
从结果来看,水培自动化系统表现良好。实时操作系统(RTOS)的延迟小于15微秒,足以运行所有任务。环境传感器整体表现良好,温度读数误差小于4%,湿度读数误差小于5.36%,CO₂传感器精度需要从初始值校准260 ppm。系统可在80秒内完成营养液混合,误差小于3.48%。生长光照强度测量显示不同光谱颜色下结果不同,为满足植物每日光照需求,需每天至少开启光照17小时。我们的种植测试表明蔬菜能够良好生长,并在5周后收获。系统在pH传感器稳定性方面仍需改进,目前pH传感器需要10分钟才能使传感器数据读数稳定。
1600

被折叠的 条评论
为什么被折叠?



