构建一个智能灌溉系统
扫描二维码
随时随地手机看文章
我妻子喜欢植物和食物,花园往往是她快乐的地方。问题是,它也是各种动物(尤其是鹿)的快乐之地,它们想先吃掉它。所以,在疯狂的一年半的时间里,我最终设法找到时间建造了一个史诗般的花园。但是,我不能让一个项目在没有技术辅助的情况下进行,所以我建造了一个自动灌溉系统来配合它。
智能灌溉的目标是连接到我在排水沟上安装的雨桶上。根据天气情况,我们自动打开连接pvc灌溉系统的阀门,然后连接滴灌软管。
硬件
我越来越喜欢ESP32作为我的首选arduino。即使是谁决定了瓶的顺序(例如。D5, D18, D19, D21…??)必须有某种物质,它只是可靠地工作,让我把一大堆代码。
但是,尽管它的一个优点是可以使用wifi,但在院子里进行的项目往往很难获得wifi信号。我把我的手机放在房子的另一端,而不是wifi的位置,所以几乎没有任何信号。因此,为了保证这一切都能可靠地工作,我使用的是blue公司的noteccarrier - f,以便在wifi出现故障时(实际上大多数时候都是这样)打电话。
另一个关键的硬件是阀门。我试过其他的阀门,它们都不工作,而且没有明显的原因。我应该在这里添加一个附属链接,因为我可以证明,我确实得到的阀门只是工作,但相反,我将是一个傻瓜,错过了那些便士,只是提供我得到的图片:
我们仍然需要将阀门连接到arduino,因此我们需要最后一个组件。我使用的是L298N电机驱动控制器板。这是一个难得的美妙时刻,我一直在做这些无聊的项目,我碰巧手头有一些,而且还设法找到了它们(这是不可思议的部分)。
下面是引脚输出:
Esp32 d18→l298n in3
Esp32 d19→l298n in4
12V电源- L298N
12V电源的GND和ESP32的GND - L298N GND
球阀黄色→L298N GND
球阀红色→OUT3
球阀蓝色→OUT4
ESP32 D21 (SDA)→Notecarrier-F上的SDA
ESP32 D22 (SCL)→nocarrier - f上的SCL
ESP32 GND→GND无载波- f
ESP32和Notecarrier-F分别通过usb供电。
代码!
这里有很多代码,但可以相对简洁地总结。所有这一切的主要目标是获取天气数据,并决定是否相应浇水。
大多数情况下,我们的目标是每隔一天浇一次水。如果昨天下了不少雨,或者今天很有可能会下雨,今天就不要浇水了。如果天气特别热,就每天浇水。对于天气数据,我尝试了一些与以前项目不同的东西,它似乎很有效,那就是Open Meteo。
我们让设备在不使用时休眠,它会在早上醒来获取天气数据。我们会先尝试使用wifi,如果无法使用,我们就会使用blue。
我添加了两个非常方便的测试字段,以确保一切工作,它们是IGNORE_ALREADY_WATERED_TODAY和FORCE_NOTECARD标志。从名字上看,它们很简单,但如果我们用天气数据来测试所有东西,以确保阀门的开启和关闭正确不止一次,我们可以忽略我们今天已经浇水了。在配置blue时,我们可以强制代码使用记事卡。这是特别有用的,因为ESP32实际上能够成功地在内部进行wifi呼叫,而我们应该期望呼叫在外部失败-所以我们需要确保我们在测试时不使用wifi,一旦我们知道该部分工作。
添加蓝调
对于不太熟悉Blues的人来说,这是在我们可能没有其他连接时发送或接收数据的好方法。我倾向于把它作为远离wifi的项目的首选。
如果你是布鲁斯的新手,第一步是遵循他们的快速入门指南(在这里找到),它会引导你配置一切,并启动和运行。一旦你的项目设置好了,只要遵循下面的步骤,你就可以开始了。
对于这个项目中的路由,我们使用了Notecard Web请求的代理选项,如下所示:
对于我的设置,我发现在Blues项目中设置2条路由效果很好。一个取昨天的数据,一个取今天的数据。我发现在Blues路由url中包含字段对我来说效果很好,所以它们有点长,但您需要的两个字段都在下面。我标记我的路线meteoY和meteoT(昨天和今天,使用meteo api)。
这样,我们就拥有了我们所需要的一切,以便我们已经讨论过的代码能够完全工作。
额外的信用-一个安卓应用程序
时不时地,我们会有一种暗示,我们应该“再快速做一件事”。我的想法是,通过像web浏览器这样的url来调用arduino很容易,所以我基本上只是让它看起来更好。
该应用程序的目的是提供直接控制阀门的能力,我们可以打开,关闭,或者打开然后关闭(就像按一个按钮打开,等待,然后关闭)阀门。
无论如何,它都不是世界上最花哨的应用程序,但它确实可以完整地工作,并且包含在项目中。使此工作一致的最简单方法是使用ESP32的ip地址,您可以锁定该地址以使其与wi - fi网络保持一致。例如,我使用谷歌Wifi设置,为了保持ip地址一致,我可以在谷歌Home应用程序中这样做。
回想起来,这个想法的问题是,如前所述,设置对wifi来说有点太远了。由于这个应用程序被设置为通过wifi工作,理论上它确实工作,但在实践中,这是一个有点愚蠢的附加组件,至少对我的设置。如果你遵循,你的设置是在你的wifi范围内,欢迎你!值得庆幸的是,我认为没有必要手动打开和关闭阀门。如果我们觉得需要浇水的水量超过了雨水桶的自动水量,我们就用软管。
完成了!
整个项目(包括花园的建造)花费了相当多的工作来实现,所以看到它全部完成并工作是非常令人满意的。电子设备完全工作,是一种设置和忘记类型的解决方案,应该有助于保持花园的活力,而我们的注意力集中在让我们的孩子活着等事情上,所以希望所有的前期努力都有回报。
本文编译自hackster.io





