你喜欢园艺,但找不到时间打理吗?也许你养了一些室内植物,看起来有点缺水,或者你想找一种方法来自动化你的水培系统?在这个项目中,我们将解决这些问题,并通过构建一个自动化花园系统来学习MudPi的基础知识,帮助你照料花园。MudPi是我制作的一个开源花园系统,用于管理和维护基于树莓派的花园资源。你可以根据需要将MudPi用于室内和室外园艺项目,因为它设计为可定制的。
今天,我们将从我在家中使用的基本设置开始,看看如何部署MudPi来管理室外花园并控制灌溉。在本教程中,你将学习如何部署运行MudPi的主控制器。对于那些想进一步扩展设置或想了解不同设置(如室内)的人,教程末尾提供了一些额外资源。MudPi可以配置为多种设置,项目网站上有大量文档。
https://mudpi.app/docs
所需材料
请根据需要自由添加/删除你可能需要的特定传感器或组件,因为你的需求可能与我的不同。
通用材料
带有WiFi的树莓派(我使用的是Pi 3 B),Debian 9/10
显示器/键盘/鼠标(用于树莓派设置)
用于Raspbian的SD卡(8GB)
室外用线缆(4芯)
室外防水接线盒
电缆接头
DIN导轨(用于安装断路器和直流电源)
PVC管
带铲形钻头的电钻
电子材料
DHT11温度/湿度传感器
液位浮球传感器 x2
2通道继电器
12V水泵(如果使用市电电压,也可使用120V),如果使用12V,需要DC-DC转换器
5V电源,或直流电源(如果从市电为树莓派供电)
10kΩ上拉/下拉电阻
工具
螺丝刀
剥线钳
电烙铁
焊锡
螺丝(用于户外安装盒子)
硅胶密封胶
第一步:花园与灌溉规划
如果你正在建立一个新系统,请确保已经规划好灌溉系统。在准备硬件时,了解这些已经到位的东西很重要,这样你就知道需要哪些组件。需求可能会随时间变化,但为未来做好准备是个好习惯。你的两种主要供水方式是使用水箱中的水泵或带有电磁阀的水管来打开和关闭水流。选择哪种方式取决于你的花园需求。一个更大、更复杂的系统可能会同时使用这两种方式(例如,通过电磁阀泵水进行分区灌溉)。如果你计划在室内使用MudPi,你可能会使用水泵。MudPi还可以使用继电器控制室内植物灯。
制作小贴士:请记住,你可以按任意规模构建项目。如果你只是想第一次尝试MudPi,可以尝试用水瓶和3.3V水泵来给室内植物浇水!
还要考虑供水方式。你将使用滴灌管、渗水管还是喷头?以下是一些常见方法:
喷头
渗水管
滴灌管
手动浇水
为了避免本教程的范围过大,我们假设你已经有了灌溉系统,只是想将其自动化。在我的设置中,我有一个带水泵的水箱,连接到一些滴灌管上。让我们学习如何自动化这个水泵。
第二步:传感器与组件规划
另一个重要的规划方面是考虑你想从花园获取哪些数据。通常,温度和湿度总是有用的。土壤湿度和降雨检测对于室内设置来说可能不是必需的。最终决定哪些条件对你的需求重要并需要监测。对于我们的基本室外教程,我们将监测:
温度
湿度
水位(两个浮球传感器)
我使用了5个水位传感器来确定大水箱中10%、25%、50%、75%和95%的水位。在本教程中,为了简单起见,我们将使用10%作为临界低水位和95%作为满水位。
你可能还想控制花园中的设备。如果你计划切换不运行在3.3V(树莓派GPIO限制)的水泵或灯,那么你需要一个继电器。继电器允许你使用较低的电压来切换较高的电压电路。对于我们的目的,我们有一个运行在高于3.3V电压上的水泵,所以我们需要一个继电器来切换水泵。只需要一个继电器来控制水泵。然而,为了未来的目的(而且因为继电器很便宜),我安装了一个2通道继电器,并留出了额外的插槽供以后升级。
最重要的是规划电源供应。树莓派将如何供电以及从哪里供电。你还应该考虑你使用的设备以及它们将如何获取电源。通常,树莓派可以通过USB电源适配器供电,但这需要一个单独的插头。如果我们使用更高电压的其他设备,可以使用DC-DC电源将电压降至5V为树莓派供电。如果你计划购买降压电源,我建议不要选择最便宜的选项。
记住,树莓派默认只能支持数字GPIO。这意味着你不能直接将需要模拟读数的土壤传感器连接到树莓派GPIO上。为了与模拟组件兼容,你需要使用带有模拟支持的微控制器,如Arduino或ESP32(或ESP8266)。
幸运的是,MudPi支持将此类设备作为从节点进行控制,以便从一个主控制器(树莓派)向多个设备发出命令。这使得可以拥有一个主控制器和多个传感器单元,它可以控制这些传感器单元及其连接的模拟组件。我使用了一个主控制器来监测水泵区域,并为每个抬高式花坛使用了一个传感器单元。今天,让我们继续构建主控制器。
第三步:收集材料
现在是我们收集材料的时候了。本构建中使用的组件和工具都是现成的商品,以便其他人可以轻松在家中构建自己的系统。大多数材料可以在网上或当地五金店找到。具体的材料清单将取决于你的特定花园布局。为了本教程的目的,我们将保持材料为计划中的必需品,以便在进一步操作之前获得一个运行中的单元。
注意:在这一点上,我想指出,如果你计划切换使用市电电压的组件,请务必小心!在构建电子设备时确保安全很重要,如果你不知道自己在做什么,就不要摆弄高压。话虽如此,我在家中设置中确实使用了120V水泵。对于12V水泵,过程相同,主要区别是需要一个12V稳压器。你还可以使用继电器来切换灯或其他设备。
第四步:在树莓派上安装MudPi
有了计划和材料在手,现在是准备硬件的时候了。首先,你应该准备好树莓派以安装MudPi。你需要一个带有WiFi功能的树莓派,运行Debian 9或更高版本。如果你还没有安装Raspbian,你需要从他们的页面下载。
https://www.raspberrypi.com/software/
下载镜像文件后,使用你选择的镜像写入器将其写入SD卡。如果你需要帮助,树莓派有一个将文件写入SD卡的指南。
https://www.raspberrypi.com/documentation/computers/getting-started.html
将SD卡插入树莓派并开机。如果你安装了Raspbian Desktop,请使用GUI将树莓派连接到WiFi,或者通过编辑Raspbian Lite终端中的/etc/wpa_supplicant/wpa_supplicant.conf文件来连接。
连接WiFi后,你应该做的下一件事是运行树莓派的更新和升级。
要更新树莓派,请登录并从终端运行:
sudo apt-getupdatesudo apt-getupgrade
完成后重启
sudoreboot
树莓派重新启动后,我们现在可以安装MudPi。你可以使用以下命令通过MudPi安装程序进行安装:
https://github.com/mudpi/installer
curl-sL https://install.mudpi.app | bash
安装程序将处理MudPi所需的所有软件包和配置。默认情况下,MudPi安装在/home/mudpi目录中,核心位于/home/mudpi/core。
你可以使用以下命令手动运行MudPi:
cd/home/mudpimudpi --debug
然而,MudPi有一个supervisor作业可以为你运行它。此外,在运行MudPi之前,你首先需要一个配置文件。为了制作配置文件,你需要知道你将哪些引脚连接到了哪些组件上,这就是下一步要做的。继续!
第五步:连接传感器和组件到树莓派进行测试
下一步是将我们的组件连接到树莓派上。(请注意,我在照片中测试了额外的组件)你可能正在使用跳线和面包板进行测试,这没问题,只是请记住,在为现场构建最终单元时,要升级到更可靠的东西。
将DHT11/22传感器的DATA引脚连接到GPIO引脚25。
连接DHT11/22的电源和地线。
使用10kΩ下拉电阻,将两个液位浮球传感器的每一端分别连接到GPIO引脚17和27。
将浮球传感器的另一端连接到3.3V,以便GPIO通常被拉低,但当浮球开关关闭时为高电平。
将2通道继电器的切换引脚连接到GPIO引脚13和16。
将继电器的5V连接到电源,地线连接到地线。
我们将在稍后的步骤中连接插头时处理继电器的高压连接。现在,我们应该准备好制作MudPi配置文件并测试组件了。
第六步:配置MudPi
连接好传感器和组件后,你可以制作MudPi配置文件,并在完成单元组装之前测试一切是否正常工作。为了配置MudPi,你将更新位于/home/mudpi/core/mudpi目录中的mudpi.config文件。这是一个JSON格式的文件,你可以更新它以适应你的组件需求。如果你遇到任何问题,请务必检查格式是否正确。
如果你正在跟随本教程,以下配置文件将适用于我们连接的组件:
{ "mudpi":{ "name":"MudPi", "debug":false, "location":{ "latitude":40, "longitude":-88 } }, "sensor":[ { "interface":"dht_legacy", "name":"dht", "key":"dht", "pin":25 }, { "interface":"gpio", "name":"float1", "key":"float1", "pin":"D17" }, { "interface":"gpio", "name":"float2", "key":"float2", "pin":"D27" } ], "toggle":[ { "interface":"gpio", "pin":"D13", "name":"Pump", "key":"pump", "invert_state":false, "max_duration":960 }, { "interface":"gpio", "pin":"D16", "name":"Extra", "key":"extra", "invert_state":false } ], "trigger":[ { "interface":"cron", "name":"Daily Pump 12 Hours", "key":"turn_on_pump", "schedule":"0 */12 * * *", "actions":[ ".pump.turn_on" ] }, { "interface":"cron", "name":"Daily Pump Off", "key":"turn_off_pump", "schedule":"15 */12 * * *", "actions":[ ".pump.turn_off" ] } ]}
上面的配置中有很多内容。我建议深入研究配置文档以获取更详细的信息。
https://mudpi.app/docs/configuration-basics
我们在sensor数组中设置了DHT11和浮球传感器,并在toggle数组中设置了继电器设置。自动化通过设置triggers和actions来实现。trigger是一种告诉MudPi监听某些条件的方式,我们希望在这些条件下采取行动,比如温度过高。trigger在没有提供action来触发之前并不太有用。在上面的配置中,有两个时间触发器。时间触发器采用cron作业格式的字符串来确定何时激活。上面的时间触发器设置为每12小时一次(即每天两次)。它们将触发我们配置的两个动作,这两个动作将只是通过MudPi发出的事件来打开/关闭我们的继电器。第二个触发器延迟了15分钟,以便我们的水泵将打开并浇水15分钟,然后再被关闭。这将每天发生两次。
https://crontab.guru/
现在,你可以通过告诉supervisor重启程序来重启MudPi:
sudosupervisorctl restart mudpi
MudPi现在应该重新加载配置,并在后台运行,读取传感器数据并监听事件以切换继电器。你可以通过以下命令检查MudPi是否正在运行:
sudosupervisorctl status mudpi
MudPi还会在/home/mudpi/logs目录中存储日志文件。如果你遇到问题,这是一个首先检查的好地方。
如果你已经验证MudPi正在运行,那么是时候开始最终组装单元了。关闭树莓派,让我们完成硬件的组装。
第七步:将组件焊接到原型板上
现在MudPi已经配置好了,你可以继续处理硬件了。留在盒子里的组件应该焊接到原型板上,以获得比跳线更稳定的连接。虽然它不如定制电路板那么漂亮,但现在可以工作。我们正在使用的DHT11传感器将是外部的,但你也可以选择在内部再包含一个,用于监测盒子内部的温度。
我将树莓派的引出线焊接到一块板上,并连接了一些端子连接器,以便在重新连接传感器和继电器时更容易进行GPIO连接。引出线使得可以轻松断开树莓派,而无需取出整个模块。我还包括了浮球传感器所需的下拉电阻。完成后,我们可以将所有东西放入一个漂亮的室外接线盒中以保护它。
第八步:开始将电子设备放入室外接线盒中
到目前为止,一切都已经过测试,并在MudPi上正常工作,现在是时候组装室外单元以抵御恶劣环境了。你当地的五金店在电子区会有一些接线盒可供选择,你可以以低于25美元的价格购买。找一个大小合适且具有防水密封的。我多花了一点钱买了一个带有弹簧锁扣的纤维增强盒子。你所需要的只是能防潮并适合你所有组件的东西。你还将在这个盒子上钻孔以引出电缆。
第九步:将插头连接到继电器并安装在接线盒中 警告:高压
在连接组件时,树莓派应该处于关闭状态。如果你正在为水泵使用120V或12V,请考虑使用的插头。运行12V的水泵通常使用桶形插头连接器。使用120V时,你可以使用一个母头延长线插头。现在,不要在没有适当设备的情况下切割延长线并摆弄它。
使用电钻或铲形钻头在室外接线盒的底部钻两个3/4英寸的孔,并放入两个3/4英寸的电缆接头。将公头延长线穿过一个接头,母头半部分穿过另一个接头。如果你想使用另一个继电器通道,可以再安装一个母头结束的线。
在盒子里,我安装了一小段DIN导轨。在导轨上有一个直流电源,用于将120V降至5V以为树莓派供电,还有一些安全断路器。我只使用了两个断路器,这样我就可以关闭树莓派而不关闭整个系统。一个断路器就足够了。现在,在延长线内部有三根彩色电缆。白色是中性线,绿色是地线,黑色是120V+。绿色和白色直接进入直流电源。黑色首先进入断路器,然后进入直流电源。电源上有一个小螺丝,是一个电位器,用于将电压精确调整到5V。
我们将使用接线端子在插头之间建立连接。使用一个端子块将所有白色中性线连接在一起。如果你没有接线端子,电工胶带也可以。绿色地线也应该连接在一起。继电器的高压侧有三个连接:COM(公共端)、NC(常闭)和NO(常开)。根据你的继电器,它可能只有NC或NO,而不是两者都有。连接一小段额外的电缆从将提供120V的断路器到我们继电器高压侧的COM(公共端)端子。现在,将母头延长线的黑色120V线连接到NC端子。这意味着插头通常处于关闭状态,不连接,但当我们切换继电器时,它将向插头提供120V,从而打开我们的水泵。
此时,所有延长线的白色中性线应该连接在一起,绿色地线也应该连接在一起。母头插头的黑色120V线连接到继电器的NC端子。公头延长线的黑色火线应该连接到DIN导轨上的一个断路器,然后分接到直流电源和继电器的COM端子上。
重要的是将所有东西安装在一个防水盒中,并正确保护/路由所有电缆。你最不想看到的就是火灾或有人触电。另外,如果你不能确保安全,就不要摆弄高压。你仍然可以使用12V及以下的组件做很多事情。
第十步:将传感器放入保护壳中
大自然和湿气对电子设备不太友好。你已经用室外接线盒保护了树莓派,但现在你需要保护任何外部组件。你可以使用一些PVC管或其他废料管制作一些不错的外壳来保护外部组件。我为DHT11传感器制作了一个简单的通风盖,以帮助保护它免受雨水和虫子的侵害,但允许它呼吸以获得准确的室外读数。在下一步中,使用硅胶密封胶密封电缆周围。
这不是最好的解决方案,但对于一个4美元的传感器来说,它很有效。(我当时还为正在测试的土壤传感器制作了一些。)浮球传感器将安装在水箱中,不需要额外的外壳。
你还会发现传感器通常只附带一些便宜的细线。这在一般处理或室外气候下不会持续太久。在下一步中,我们将解决这个问题。
第十一步:使用室外用线缆和插头连接传感器
如果你想将外部传感器连接到盒子上,那么使用一些室外用线缆是必须的。室外用线缆有屏蔽层,有助于保护内部电线。我买了一些4芯线缆和插头。你不需要插头,也可以使用更多的电缆接头,但我想能够快速更换传感器。
根据你的温度传感器和浮球传感器,剪一些适当长度的线缆。我建议多留几英尺,因为留一些额外的线缆以备不时之需总是好的。我建议焊接电缆以获得最佳连接,然后用电工胶带包裹。我建议对每根线的电源和地线使用相同的颜色,以便于记忆。将电缆放入外壳中,并用硅胶密封胶密封外壳底部的其余部分,以便只有通风盖是入口点。
线缆的另一端可以通过电缆接头穿入盒子,并像以前一样连接到树莓派上。如果你选择使用插头,将插头端安装到线缆上。在接线盒上钻孔并安装另一端,然后连接内部。
第十二步:将浮球传感器安装到水箱中
现在其他传感器已经保护好并准备就绪,是时候将浮球传感器安装到水箱中了。由于我们只使用两个,你应该在临界低水位(水泵不应运行)和一个表示水箱已满的水位各安装一个。找到正确尺寸的钻头,并在水箱的适当水位钻孔。使用提供的垫圈和螺母将浮球传感器拧入水箱。查看水箱内部,确保浮球传感器处于关闭位置,并在水位上升时抬起,使它们闭合电路。
由于下拉电阻的存在,这意味着当水位达到时,该水位的浮球传感器将读取1。否则,如果水当前没有抬起传感器闭合电路,浮球传感器将返回0。
第十三步:将单元部署到室外
MudPi单元已经准备好在现场使用,我们可以将其安装在室外的最终位置。室外接线盒通常带有一个盖子,可以拧紧以形成防水密封。你还应该在背面找到一些安装孔,用于安装单元。我将我的盒子安装在水箱旁边的室外小屋上,因为浮球传感器的线缆长度有限。
你可以将公头延长线插入插座,并合上断路器以使MudPi上线。在长时间离开之前,请确保一切正常工作。通过查看redis中存储的值或检查MudPi日志来测试传感器是否正在读取数据。如果一切看起来都很好,那么是时候让MudPi工作,而你可以放松了。
第十四步:监测MudPi
现在MudPi正在工作,你可能想知道监测系统的方法。最简单、最直接的方法是监测MudPi日志文件:
tail-f /home/mudpi/logs/output.log
另一个选项是通过本地网页等界面。我还没有时间发布一个公共的MudPi UI,但你可以轻松地从redis中获取传感器和组件状态,使用PHP。在文档中了解更多关于MudPi如何在redis中存储数据的信息。
https://mudpi.app/docs/data-storage
最新的传感器读数将存储在redis中,使用你在配置中设置的key选项。使用这个,你可以制作一个简单的PHP应用程序,在页面加载时获取读数并显示它们。然后只需刷新页面即可获取新数据。
也有可能监听redis上的MudPi事件,这是从系统获取实时更新的更好选项。你可以通过redis-cli直接读取事件:
redis-cli psubscribe'*'
第十五步:用定制PCB替换原型板(可选)
我已经走得更远,还为MudPi制作了一些定制电路板。它们帮助我加快了构建多个MudPi单元的过程,并且更加可靠。我已经开始在我所有的现有单元中用更可靠的PCB替换旧的原型板。未来,我希望将这些电路板以小批量出售,以支持我的开源工作。MudPi不需要任何定制电路板即可运行,它只是有助于减少硬件工作量,因为板载组件已经安装,如下拉电阻和温湿度传感器。
第十六步:放松并看着你的植物生长!
现在,你有了自己的自动化花园系统,你可以根据需要扩展和扩展它。制作更多单元或扩展你已经构建的单元。你可以用MudPi做更多事情,项目网站上有大量信息。
https://mudpi.app
我的目标是将MudPi变成我在开始花园项目时寻找的资源。我希望你觉得MudPi非常有用,如果你喜欢我的工作,请分享出去。我个人在家中的室内和室外都使用MudPi来管理我的植物,到目前为止,结果非常令人满意。
-
微控制器
+关注
关注
48文章
7984浏览量
156686 -
树莓派
+关注
关注
122文章
2054浏览量
107830
发布评论请先 登录
树莓派的种类_树莓派安装教程
树莓派3wifi配置_树莓派3开启wifi热点_树莓派3的wifi使用教程
树莓派3硬件配置_树莓派3都能装什么系统_树莓派3系统安装教程
浅谈香蕉派与树莓派的不同
基于树莓派的智慧花园
树莓派控制步进电机

评论