把我的浇花应用发来给大家看看。顺便说明下,我真的不喜欢花花草草的,做这个完全是为了好玩,嗯,就是这么简单……
这种装置的设计和使用都很简单。您只需在上层的盆中填好土,并种上自己喜欢的植物。盆子底部的网眼使得植物的根部能够获取自己所需要的水分。 考虑到花盆的坚固性、水密性我们对打印模型文件的设置如下图所示。
水被消耗的速度会根据植物品种的不同而有所差别,但是这种自动浇水花盆一次储存的水量能够满足一种典型的草本植物两三次浇水所需要的量。” 看到这里你可能会说,就这么简单,其实也就这么简单。不过我们不能让它这么简单,毕竟花盆的水量是有限的,如果长期外出话,这东西还是不靠谱。于是对此花盆进行功能添加。 1、土壤湿度检测,当土壤湿度小于设定的临界值区间时,启动电机灌水到下层水箱。 2、水位高度到达下层水箱临界高度时,停止灌水,毕竟不能让水漫出来。 器材: overlordpro 3D打印机、PLA(1.75粉色)、ArduinoUno、电机拓展板、小水泵、电容式土壤湿度传感器、电池、1K电阻、IO拓展板 制作过程: A电容式土壤湿度传感器校准 在正式检测土壤湿度前,需要有一个校准过程。烧入下列校准代码至Arduino主控板。打开串口监视器。(注:这里土壤湿度传感器的正极接主控板3.3V) void setup() { Serial.begin(9600); } void loop() { int val; val =analogRead(2); Serial.print(val); Serial.println(); delay(1000); } 干湿度校准 分别读取传感器在空气中和水中的数值来限定一个测量范围。打开串口监视器,将波特率根据程序设置为9600。首先请将该传感器放置在空气中读取模拟值,代表干燥时的读数。然后拿一杯水,把传感器插入水中一定深度(做一下标记,此深度为你将要插入泥土的深度),一定不能超过红色警戒线!并记录此时读到的模拟值,代表100%湿度。(输出数据与湿度成反比,在水中的输出量最小)插入深度如图推荐。
区间设定 由于传感器数值会受到入土深度、土壤松紧度的影响,只能检测到土壤的相对湿度,我们把湿度分为三等级,分别表示干燥、湿润、非常潮湿。之前记入的两个数据为湿度区间。例如:空气中读数为520,水中读数为260,这样就可以分为(520,430],(430,350],(350,260]这三个区间分别代表干燥、湿润、非常潮湿。 注意:由于此传感器会根据电容感应原理来监测土壤湿度,所以放到土壤湿度不同、松紧度不同、插入深度不同的地方,会体现出不同的湿度,即使在同一个地方,同样的深度,在第二次插入时,由于第一次拔出时已经造成了泥土的松动,可能读到的湿度会比第一次低。 B电路连接 传感器连线 将IO拓展板、电机拓展板、Arduino Uno按对应D\A口叠加如下图;土壤湿度传感器接模拟口2(注意三根线分别接在IO拓展板的A2,+5V,GND上);
信号下拉 由于我们是通过两根导线是否连同来判断下层水箱里的水,是否到达临界位置。所以这里使用了下拉电阻来完成。这里使用1K电阻就是做信号下拉避免干扰和噪声,没有电阻,模拟口就会悬空,悬空就会有干扰。将下拉线一头金属部分粘在花盆的底部,临界位置导线一端粘在临界点处。当水位达到临界值时,电路联通。如下图所示。
下拉线的做法:取杜邦线若干,1K欧电阻两端分别与黑色、棕色线焊接;蓝色线与红色线焊接;红色线和棕色线焊接。黑线一端接在拓展板GND,蓝色线一端接拓展板A3,红色和棕色线焊接后与紫色线搭接,紫色线最后粘在下层的底部。这样完成一个信号下拉线。
将各焊接点用黑色绝缘胶布粘牢,避免相互搭线。
水泵连线 从下表我们可以看出驱动一枚电机需要有三个参数,首先就是方向,对应IO口的高电平为一个方向,低电平为反方向,然后就是速度,这里使用PWM的方式控制,给予其不同的占空比会获得对应的速度,最后是刹车,刹车的含义为:是否将电机的两极短接。若短接两极后电机旋转会有非常大的阻尼,能量由续流二极管吸收,进而起到制动的作用。因此要想电机转,这个IO口应该是低电平。知道了原理,驱动电机应该就很简单了吧。使用注意:使用电机驱动应保证电机驱动板与Arduino控制板电源完全独立,使用两块电池或者两个独立的电源,保证其电气隔离性。
功能 电机A 电机B 1 方向 D12 D13 2 速度 D3 D11 3 制动 D9 D8 将水泵的红色线接如A+接线柱,黑色线接入A-接线柱。外接电源的正极接VIA,负极接GND。
|