与Blynk物联网自动园艺

0 669 简单的

通过集成在Blynk IoT中的自动灌溉系统来测量土壤水分水平

项目图

这个项目中使用的东西

硬件组件

硬件列表
1 Dfrobot重力:模拟电容性土壤水分传感器 - 耐腐蚀
1 面包板(通用)
1 Nodemcu ESP8266突破板
1 DHT11温度和湿度传感器(3针)
1 跳线(通用)
1 9V电池(通用)
1 继电器(通用)

软件应用和在线服务

布林克

故事

我们都喜欢我们的生活中有些绿色,阳台或桌面上有一些植物,不是吗?植物像我们一样活着,需要他们的食物才能生存,幸运的是,他们每天只问一点水。但是,在您忙碌的生活中,我们不能总是倾向于我们的植物,无论是工作压力,与某人的约会,甚至在假期期间,我们都无法在这些情况下浇水。为了解决这个问题,在这个项目中,我们正在使用ESP8266进行自动灌溉系统,该系统将自动灌溉您的植物,即使您不在城镇数周或几个月的情况下,也可以使它们保持健康。在该项目中,将使用水分传感器来维持植物的最佳水分,DHT11传感器用于监测温度和湿度,并使用泵为植物提供水。可以为您的花园或室内植物实施该系统,从而在您不在时照顾好绿叶的朋友。

在这里,土壤水分传感器连接到ESP8266板的A0引脚,这给出了土壤水分水平的类似物输入。然后将该级别映射到0到100之间的值,以使输出以百分比而不是随机数,而不是用户无法感知的。传感器设置为默认情况下以4小时的间隔运行,以避免传感器的腐蚀。所有值均同步到Blynk IoT平台,以易于使用用户和可访问性。DHT11传感器连接到板的D4针。现在,基于土壤水分传感器给出的百分比,该中继是连接到板的D7引脚的,该引脚进一步连接到迷你泵以浇水。继电器是在30%的水分水平下触发的,并继续为植物浇水,直到达到70%的水分水平为止,因此植物始终保持在某种既不干,也不太湿的金洛克区。所有这些信息都通过互联网向Blynk IoT仪表板上的用户呈现,因此您的距离无关紧要,您的植物始终保持健康。用户可以随意修补仪表板上的时间间隔以适应其需求。最后,所有组件均由微控制器的3.3V引脚提供动力。 The code used in this project excluding header files for Blynk is given below:-

代码

自动灌溉系统

Arduino

该项目使用Blynk Edgent示例文件进行设置。我只给出了要安装在ESP8266板上的代码,您将必须转到Blynk IoT网页并首先设置您自己的变量,然后设置仪表板才能正常工作。这并不难,因为我在这里命名了变量类似,只需创建与此处给出的数字相同的整数虚拟引脚,或者您可以自己修改以适应您的需求。该项目中使用的代码不包括Blynk的标头文件: -

代码
// blynk iot宏#define blynk_template_id“ tmpl6ewqbpu3” #define blynk_device_name“湿度传感器” #define blynk_firmware_version“ 0.1.0.1.0” 0.1.0“DHT11 DHT DHT(2,DHT11);//全局变量int sensorValue;int limit = 300;int time_interval;int sensenow;int警告;int automode;int小时= 3600000;unsigned long time_now; unsigned long time_duration = 0; unsigned long time_active = 0; // Syncing variables between Blynk and Device BLYNK_WRITE(V1) { time_interval = param.asInt(); Serial.print("interval = "); Serial.println(time_interval); } BLYNK_WRITE(V2) { senseNow = param.asInt(); Serial.print("senseNow = "); Serial.println(senseNow); } BLYNK_WRITE(V3) { autoMode = param.asInt(); Serial.print("autoMode = "); Serial.println(autoMode); } // Setup void setup() { Serial.begin(115200); delay(100); pinMode(13,OUTPUT); dht.begin(); BlynkEdgent.begin(); time_interval=4; senseNow=0; warning=0; autoMode=0; } // Loop void loop() { time_now = millis(); BlynkEdgent.run(); if(time_now-time_active>=2000) { time_active = time_now; if(senseNow||warning) readSensor(); } if(time_now-time_duration>=hour*time_interval) { time_duration = time_now; readSensor(); } } // Main Function void readSensor() { sensorValue=analogRead(A0); Blynk.virtualWrite(V5,dht.readTemperature()); Blynk.virtualWrite(V6,dht.readHumidity()); int i=map(sensorValue,limit,650,100,0); // Mapping analog values to a percentage if(i<0) i=0; else if(i>100) i=100; Serial.println(i); Blynk.virtualWrite(V0,i); // Syncing variables between Device and Blynk if(autoMode) { if(i<30) { Blynk.logEvent("low_moisture"); // Warning warning=1; } if(warning) pump(i); } } void pump(int x) { if(x>70) { digitalWrite(13,LOW); warning=0; } else { digitalWrite(13,HIGH); } }

该文章首次发表在骇客,2022年7月5日

CR:https://www.hackster.io/nishasi/automated-gardening-with-with-blynk-iot-86da0d

作者:Nishasi

执照
所有权利
预订的
许可
0