使用树莓派计算机实现设施内植物生长的低成本远程监控

PREMISE

受控环境设施(如生长室)是实验研究的重要工具。自动化、低成本的远程监测硬件可显著提高可重复性和维护效率。

方法与结果

树莓派和外设

GMpi系统采用安装了Raspbian Stretch 4.14.50‐v7+操作系统(树莓派基金会,英国剑桥)的树莓派Model B+单板计算机开发而成。使用了一款温湿度传感器(DHT22;Adafruit工业有限责任公司,美国纽约州纽约市)来采集生长室内湿度和温度的数据。DHT22传感器具有实用性,因为它配备了电容式湿度传感器和热敏电阻。通过将DHT22传感器的读数与安装在所用生长室中的恒温器和模拟湿度计进行对比,确定了其准确性。为了采集全光谱和红外波长下的光照强度数据,采用了TSL2591(阿达弗鲁特工业有限责任公司)传感器。该传感器能够检测0.000118至88,000勒克斯(流明每平方米)范围内的光照,使我们能够在可见光和红外光谱中检测到光照强度的微小变化。普通荧光灯的输出通常以流明而非光合有效辐射(PAR)表示;因此,选择使用勒克斯来记录特定区域的流明值,以便检测生长室内荧光灯管输出的变化,例如灯泡熄灭需要更换的情况。最后,摄像头被连接以通过互联网向最终用户传输视觉信息,实现对植物生长的远程观测。GMpi的组装和配置成本约为200美元。相较于其他广泛使用的商业环境数据记录解决方案,例如在大型生长设施中应用的Argus(Argus控制系统有限公司,加拿大不列颠哥伦比亚省萨里市;www.arguscontrols.com),其价格从1万美元到超过100万美元不等,GMpi是一种更具成本效益的替代方案。

连接传感器

要将不同的传感器连接到树莓派,需要具备焊接技能。我们寻求了部门车间的帮助来完成这一工作。连接温湿度传感器(DHT22)时,从右侧数第一个引脚连接到3.3‐V通用输入/输出(GPIO)引脚,第二个引脚连接到数据引脚,第三个引脚未使用,第四个连接到接地端(图2)。在电源线和数据线之间焊接了一个10‐KΩ电阻,以实现数据输出(图2)。对于光照传感器(TSL2591),标有“Vin”的第一针脚连接到3.3‐V GPIO引脚,标有“GND”的引脚连接到接地引脚(图2)。该设备使用集成电路间总线(I2C)串行协议,通过将标有“SDA”(串行数据)和“SCL”(串行时钟)的引脚分别连接到树莓派的第3和第5引脚,以与设备通信。最后,摄像头通过排线连接到以太网端口后方的摄像头串行接口(CSI‐2)端口。该排线为摄像头的安装位置提供了更大的灵活性,以便于对植物进行最佳观察。

上传到云存储服务

为了将生成的传感器数据上传到云服务,我们使用了一个名为Rclone的第三方开源应用程序(https://github.com/pageauc/rclone4pi)。Rclone可以配置为连接到多个流行的云存储服务,例如谷歌云盘、Box和Dropbox。我们选择使用谷歌云盘,因为它是一项免费服务。在调整Rclone配置设置后,系统会提供一个链接,用于连接所选的云服务。收集的数据和图像的上传由UploadFile()和UploadFile2()函数处理。

示意图0

远程监控

GMpi的一个独特功能是,当生长室或温室的温度、湿度或光照超出指定范围时,能够向用户发出远程通知。我们利用了流行的平台Slack(https://slack.com/),通过其传入webhook功能设置远程通知(图1D)。当达到预设阈值时,系统会自动向已配置的Slack频道发送通知。随着研究团队越来越多地使用Slack进行沟通,设备也能够通过Slack进行通信变得十分合理。使用Slack传入webhooks,终端用户可以自行配置哪些消息将触发从Slack向其访问Slack的设备发送通知。此外,还可以在Slack webhook消息中直接“提及”特定用户,以便这些用户在频道中收到通知。

GMpi软件依赖项

GMpi用于两个传感器(温度和湿度(DHT22)以及光照(TSL2591))的脚本依赖于开源Python库Adafruit_DHT(https://github.com/adafruit/Adafruit_Python_DHT)和python-tsl2591(https://github.com/maxlklaxl/python‐tsl2591)。这些库使设备能够读取并处理来自传感器的输出。摄像头使用的是Raspbian Stretch操作系统(I2C)中已预装的软件。为了整合自动化、远程监控和数据收集功能,我们开发了名为GMPi_Pack的自定义软件包,该软件包在GNU通用公共许可证(v3)下免费提供于GitHub(https://github.com/BrandinGrindstaff/GMpi)。

GMPi_Pack由七个脚本组成:GMPi_Pack.py(主库)、configuration.py、packageTest.py、picSnap.py、sense.py、upload.py和install.sh。用户从GitHub获取软件后,应运行install.sh脚本。该脚本将尝试自动下载并安装GMPi_Pack所需的所有软件依赖项。接下来,用户应运行configuration.py脚本,该脚本用于设置光照强度的最小和最大阈值,并创建一个配置文件,使最终用户能够轻松修改GMpi运行所需的重要信息。packageTest.py脚本用于故障排除,使用户有机会测试设备以确认GMpi是否正常运行。三个脚本——sense.py、picSnap.py和upload.py——分别调用主库GMPi_Pack.py中的函数来执行传感器读数、拍摄图像以及上传数据到云服务。这些脚本设计为相互独立,以便在调度“cron任务”实现流程自动化时具备模块化特性。cron任务通过Unix cron工具进行设置,这是一种基于时间的任务调度程序,随Raspbian Stretch及其他类Unix操作系统一同提供。这使得用户可以在基于时间的计划表上运行shell命令,从而能够在用户设定的时间间隔内自动运行脚本。

示意图1

协议可行性

附录1–3中的协议提供了设置GMpi和GMPi_Pack的详细说明,包括网络配置、硬件连接和软件安装。不同机构之间的网络设置差异较大,建议与信息技术部门合作,以解决防火墙导致的远程监控和安全外壳(SSH)访问困难问题。GMpi所使用的两个传感器在使用前均需要进行焊接。光照传感器 (TSL2591)需要将引脚排针焊接到其印刷电路板上,而温湿度传感器(DHT22)则需要在电源引脚和数据引脚之间焊接一个10‐KΩ电阻。我们为树莓派开发的软件依赖于从 GitHub、阿达弗鲁特及其他在线来源获取的开源工具。我们的软件及其所有依赖项均可从GitHub(https://github.com/BrandinGrindstaff/GMpi)下载,并通过我们提供的脚本进行安装和配置。

如果培养室或温室的环境低于设定阈值,GMpi会使用网络钩子通过Slack应用向用户发送警报。由于许多团队currently正通过Slack进行沟通,我们认为这将为研究项目的所有成员提供一种快速获知系统异常的方式。我们还提供了一个示例脚本,该脚本将绘制输出的传感器数据,以便用户能够直观地评估其所监测环境的状况(图3)。GMpi上的摄像头可与开源软件(如 plantCV(法尔格伦等人,2015;阿巴西和法尔格伦,2016;盖恩等人,2017;贝里等人,2018))结合使用,实现植物表型分析,类似于法尔格伦等人(2015)开发的贝尔韦瑟表型平台,或托瓦尔等人(2018)基于树莓派的系统。通过将摄像头与图像上传至云存储相结合,用户还可以在任何有互联网接入的地方远程诊断生长室中样本的病害或其他问题。通过为每个设备设置唯一标识符,并在多个独立的树莓派设备之间收集和存储数据,可轻松实现GMpi的可扩展性。这些数据随后可通过公共云存储文件夹进行访问并整合,从而生成对设施内生长条件的更全面视图。

结论

GMpi为研究人员提供了一种低成本的环境数据监测和记录方案,可提高实验的可重复性以及生长室条件的可靠性,并构建可用于表型或环境研究的大型数据集数据,供未来的研究使用。凭借大量免费、经济高效且开源的资源,研究人员处于绝佳位置,可以利用这些工具彻底改变植物科学,在对预算影响极小的情况下提升实验的可重复性。

示意图2

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐