第1步:收集工具和材料
步骤1a:序言
这个项目有很多工具和材料。因此,我将列表分成几个部分,以便您可以查看所需的材料,具体取决于您正在构建的项目部分。我还为每个产品提供了亚马逊链接,因此您可以轻松找到所需的部件。
让我们进入它!
工具:
Pointy Bits:(请小心!)
剪刀
对角刀
Exacto Knife
手钻(带位)
拆卸:
新月扳手
Prying Tool
针鼻钳
Allen钥匙套
热门材料:(也要小心!)
打火机
热胶枪
对于电子产品:
烙铁
剥线器
用于染色:
泡沫刷
纸巾
材料:
Jar Planter:
Mason Jar
Rocks(可选)
Wire Mesh
纱线/灯芯
电子产品:
蜂鸣器(压电)
继电器模块
面包板(2x)
水分传感器
水高传感器
5V微型USB壁疣
100Ω电阻器
跳线
木质底座:
Wood Square
木圈斑块
木环
紫外线灯
消耗品:
热缩
热胶
电工胶带
松香芯焊料
木胶
木材污渍
(注意:其中一些工具可能非常危险,建议孩子完成此项目的监督。)
第2步:准备基础
步骤2a:钻进Mounti ng Hole
一旦我们拥有了所有材料,就该开始了!我们将首先为Mason Jar创建木质底座。
首先,我们需要钻一个洞,以便以后安装灯。为此,我们将使用Sharpie制作一个小墨迹。这标志着钻孔的位置。我们希望它尽可能靠近角落!
不要担心犯一些错误,木环会帮助隐藏这些。
现在它是是时候钻了。确保底座牢固安装/夹紧,然后开始钻孔。不要走得太快,否则你将冒险分裂木材。
我也在铺着地毯的公寓客厅做了这个。..。..也许尝试在外面做呢?
步骤2b:将基地粘在一起
之后钻孔,将碎片粘在一起。在片的底部涂上适量的胶水,然后将它们放在底座上。现在我们等待胶水干燥。..
*危险音乐开始播放*
步骤2c:染色基础
现在胶水干了,我们可以弄脏木头!
小心地用平头螺丝刀或撬工具打开污渍罐。罐子打开后,慢慢搅拌污渍,确保它已准备好使用。放下纸巾以保护您的工作表面。然后我们将使用泡沫刷在木头上涂上一层污渍。确保得到所有的面,以及小角和裂缝。
第3步:连接灯
步骤3a:拆卸夹子
取决于您购买的灯泡和您使用的底座,这个步骤很可能会改变,但我在这里添加它是为了完全解释我的过程,如果有人完全遵循我采取的步骤。对我来说,我的灯在末端有一个夹子,六角螺栓将它固定在一起。我用我的艾伦螺丝刀松开了这个(同时还用弹簧扣住了我的手指。不推荐)。
在拆卸过程中,请记住要注意压缩能量可能隐藏的位置。
一旦我将夹子分开,我不得不从底座上卸下一个14mm的螺母,这是必需的我把夹子的一部分向下弯曲,这样我才能进入螺母。
步骤3b:卸下开关
螺母离开后,是时候打开并取下电源开关了。
我们将在稍后使用继电器。
这将需要再次使用撬动工具,然后使用烙铁拆下开关。现在开关已经不见了,我们可以将电线穿过底座上的孔。
步骤3c :(实际上)安装灯泡
只需从底部伸出电缆即可完全剥离灯泡。将其滑过我们之前钻过的孔,然后将螺母滑到导线上。将灯颈尽可能远地压入木材中,然后开始将螺母拧紧到底部。这样做直到它很好并牢固安装。
应该可以自己站起来。 (如第一张图所示)
步骤4:制作播种机
步骤4a:添加岩石
构建种植者的时间!从梅森罐子上取下盖子,切开岩石袋。倒入一些岩石,直到你达到你喜欢的水平,我的大约只有两层高。
步骤4b:形成网格
一旦添加了岩石,就可以制作网格了。为此,我使用了一些工艺线形式,我在Hobby Lobby找到了它。打开包装并展开网格。然后,用剪刀剪开网眼,使其宽度约为罐子开口的三倍。开始将其推入罐中,用手指形成。尽量适合它,并使用提供的图像作为参考。网格形成后,使用剪刀修剪多余的材料。
注意尖锐的位!
清理边缘后,从罐子中取出网格。
步骤4c:制作吸水灯
是时候让这个播种机自我浇水了!
打开麻线并解开它。我们需要开始切割它。
这个部分有点主观,取决于你使用的罐子大小,但是你希望它是从网格底部到岩石的两倍长度。我的长八英寸。
从6到9之间切割。现在我们需要添加一些结。在每个中间打一个结,一个简单的循环就可以了。将每根细绳穿过金属网的底部,在网的内侧打结。
选项:我选择编织灯芯,因为我认为它使它们看起来更漂亮,但你没必要!只是一个艺术选择! (我非常擅长编织)
一旦添加了灯芯,将网格放回到罐子里面。确保灯芯几乎接触到岩石。
步骤5:准备传感器
步骤5a:防水传感器
因为我们的两个传感器将浸没在水中(并种植在潮湿的土壤中)防水它们是很重要的。这不是最好的解决方案,但热胶似乎可以很好地防水,同时仍然可以让我们看到LED状态指示灯。确保用胶水覆盖任何暴露的金属,并慷慨地施加。我们要确保没有水可以进入电子设备。
请勿用胶水覆盖传感器的焊盘,否则电路将无法工作。只需盖住电气元件。
步骤5b:添加热收缩
此步骤的第二部分是添加热收缩。我使用两个跳线来使电线足够长,所以如果使用常规电线,则可能不需要这样做。
这样可以防止跳线在传感器到位时断开连接。
剪掉一小段大热缩并将其向上滑动。将其轻轻推过三针连接器,小心,因为针的尖角可能会刺破热量收缩。使用打火机,在热缩的所有侧面加热,慢慢转动电线。保持火焰远离热缩约一英寸,以防止烧伤痕迹。
您的传感器现在已准备好接线!
步骤6:连接电子设备
步骤6a:放置面包板
是时候开始挂钩了!我们需要做的第一件事是布局组件。我们将从面包板开始。
这个面包板实际上是我粘在一起的两块独立板。我需要一个足够宽的板子让ESP32适合。您可以通过从面包板上移除一个电源线,然后将其与第二个面包板一起对齐来制作一个
连接面包板后,取下粘性背衬并将其牢固地放在播种机的角落。然后添加ESP32。
步骤6b:接线继电器
现在面包板和ESP32都已进入,是时候设置继电器了。首先,将生长光的接地引线焊接在一起。我们将用电工胶带覆盖它。然后将其中一根导线插入继电器的中间接地端子,另一根导线将插入NO(常开)螺丝端子。
每当继电器通电时,此配置将有效地形成闭合电路。
将继电器放在面包板旁边(由于高度限制)。稍微推一下,把它粘在底座的软木上。
现在放置继电器,是时候将它连接到ESP32了。取三个跳线并连接引脚:
正 - 》 3.3V
负 - 》 GND
信号 - 》 D15
继电器已准备就绪!
步骤6c:接线组件
安装继电器后,将蜂鸣器放在面包板上。使用斜切刀从传感器跨接线上剪下两端,然后用剥线器剥去两端。将这些电线滑过木质底座中的一个狭缝。使用提供的接线图作为参考,将引脚连接起来:
蜂鸣器:
正 - 》未使用
负 - 》100Ω电阻 - 》 GND
信号 - 》 D25
水位:
正 - 》 3.3V
负 - 》 GND
信号 - 》 VN
土壤水分:
正 - 》 3.3V
负 - 》 GND
信号 - 》 VP
步骤6d:钻电缆线路
现在我们需要切断电源线的通道。这将确保播种机的底座完全平放。使用Dremel切出两个凹槽,每个凹槽比电源线稍小一些。 (所以它们贴合得很舒服。)
此后,将所有东西插入,将电缆插入插槽,然后将播种机竖直放置。将两根电源线插入墙壁。
步骤6e:测试!
是时候测试了!
确认所有传感器都已插入并由在每个传感器上寻找红色LED。所有LED应以红色常亮点亮。 ESP32还应该有一个红/蓝灯亮。
唯一不应该亮的是继电器。
第7步:代码!
步骤7a:在ESP32中使用Arduino IDE
所以我们已经连接了ESP32,但究竟是什么呢?简而言之,ESP32非常类似于Arduino,但它内置了WiFi和蓝牙。因此,我们实际上可以使用Arduino IDE来编程我们的ESP32。在我们开始之前,我们必须安装电路板,所以我在这里提供了如何设置它的链接。
步骤7b:安装所需的库
安装完板后,让我们安装库。对于这个项目,我们需要ESPAsyncWebServer和ESPAsyncTCP库。下载两者。
要在Arduino IDE中安装库,请转到草图 - 》包含库 - 》添加.ZIP库。..然后选择刚刚下载的库的zip文件。完成后重新启动IDE。
步骤7c:推送代码
下载附加的.INO文件并在Arduino IDE中打开它。它将提示您将其移动到与项目同名的文件夹中。您应该看到所有代码,我们将要修改几行。
对于SSID和密码,您需要使用自己的网络凭据替换它们:
const char* ssid = “Network SSID”;
const char* password = “Network Password”;
更新这些值后,您可以点击复选标记验证一切正常。验证后,通过Micro USB线将ESP32插入计算机。转到工具 - 》串行监视器。 (我们将需要将其打开以进行下一步)单击箭头按钮开始推送代码。
这部分 非常重要 。当控制台文本变为红色并开始打印出“。...___ ____”模式时,按住ESP32上的BOOT按钮。如果不这样做,您将收到标题错误。
步骤7d:测试它!
现在代码被推送,请查看串行监视器。它应该每隔几秒打印一次电路板的IP地址以及传感器的当前读数。在笔记本电脑或手机上打开网络浏览器,然后输入IP地址
确保您与ESP32位于同一个WiFi网络上。
您应该看到接口负载。如果您插入灯泡并点击Toggle Light按钮,您应该看到灯开关打开和关闭。你也可以看到传感器的值,虽然他们现在应该说“空”和“干”。蜂鸣器偶尔也会发出哔哔声,警告说没有检测到水。
步骤7e:深入分解
对于任何对实际感兴趣的人代码,这里有细节:
我们将从顶部开始:
// Import required libraries
#include “WiFi.h”
#include “ESPAsyncWebServer.h”
// Replace with your network credentials
const char* ssid = “Network SSID”;
const char* password = “Network Password”;
#define relay_pin 15
#define soil_moist 36
#define water_level 39
//Variables for Buzzer
int freq = 261.63; //Set frequency of the buzzer, this is a C note
int channel = 0;
int resolution = 8;
//Boolean for light status
bool light = true;
//Set thresholds for sensors (Tweak depending on plant/soil type)
float highWater = 1000;
float lowWater = 700;
float highMoist = 1200;
float lowMoist = 500;
// Create AsyncWebServer object on port 80
AsyncWebServer server(80);
这部分是关于声明变量的全部内容包括图书馆。非常基本的东西,但有一点需要注意,您可能希望根据您的播种机更改水传感器的阈值。另一个有趣的事情是蜂鸣器的频率。如果更改此值,则会更改嗡嗡声的音高。现在它被设置为C5。
//Returns soil moisture reading
String readSoilMoisture() {
float m = analogRead(soil_moist);
if (isnan(m)) {
Serial.println(“Failed to read from Soil Moisture sensor!”);
return “--”;
}
else {
Serial.println(m);
//Sets text depending on values
if(m 》 highMoist){
return String(“High”);
} else if (m 》 lowMoist) {
return String(“Low”);
} else {
//Beeps the buzzer for 250ms
ledcWriteTone(channel, freq);
delay(250);
ledcWriteTone(channel, 0);
Serial.println(“Buzzer Activated”);
return String(“Dry”);
}
}
} //Returns water level reading
String readWaterLevel() {
float l = analogRead(water_level);
if (isnan(l)) {
Serial.println(“Failed to read from Water Level sensor!”);
return “--”;
}
else {
Serial.println(l);
//Sets text depending on values
if(l 》 highWater){
return String(“High”);
} else if (l 》 lowWater) {
return String(“Low”);
} else {
//Beeps the buzzer for 250ms
ledcWriteTone(channel, freq);
delay(250);
ledcWriteTone(channel, 0);
Serial.println(“Buzzer Activated”);
return String(“Empty”);
}
}
} //Toggles the light status
String toggleLight() {
if(light){
light = false;
//Activates relay
digitalWrite(relay_pin, LOW);
return String(“OFF”);
} else if (!light){
light = true;
//Deactivates relay
digitalWrite(relay_pin, HIGH);
return String(“ON”);
}
}
这三个部分都是返回字符串值的函数。这就是我们如何推导传感器数据,以及我们如何切换灯光。
这是HTML位之后。我不会介绍HTML的工作原理,但是我想提一下,按钮标签调用JavaScript函数,这就是切换光线的方法。您可以实现此操作来执行更复杂的接口,例如添加/设置计时器。另请注意,此代码中的两个JavaScript函数位于SetInterval()中;这意味着它们将重复我们目前设置为1000毫秒的每个“间隔”。这些函数不断加载传感器值并刷新页面。
//Updates variable text with current values
String processor(const String& var){
//Serial.println(var);
if(var == “SOILMOISTURE”){
return readSoilMoisture();
}
else if(var == “WATERLEVEL”){
return readWaterLevel();
}
return String();
}
接下来,我们得到这个代码,这是每次重新加载网页时设置传感器值的代码
最后,我们有我们的设置功能,它实际上只是启动异步Web服务器,并处理页面导航(路由):
//Runs at the start
void setup(){
// Serial port for debugging purposes
Serial.begin(115200); //Setup the buzzer
ledcSetup(channel, freq, resolution);
ledcAttachPin(25, channel); //Setup the pinMode for the relay
pinMode (relay_pin, OUTPUT);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println(“Connecting to WiFi.。”);
} // Print ESP32 Local IP Address
Serial.println(WiFi.localIP()); // Route for root / web page
server.on(“/”, HTTP_GET, [](AsyncWebServerRequest *request){
request-》send_P(200, “text/html”, index_html, processor);
});
server.on(“/soil-moisture”, HTTP_GET, [](AsyncWebServerRequest *request){
request-》send_P(200, “text/plain”, readSoilMoisture().c_str());
});
server.on(“/water-level”, HTTP_GET, [](AsyncWebServerRequest *request){
request-》send_P(200, “text/plain”, readWaterLevel().c_str());
});
server.on(“/toggle-light”, HTTP_GET, [](AsyncWebServerRequest *request){
request-》send_P(200, “text/plain”, toggleLight().c_str());
});
// Start server
server.begin();
}
有关使用异步的更多信息Web服务器,请务必查看他们的GitHub页面。此外,对Rui Santos大肆宣传,他编写了这段代码所依据的教程。 (他比我更好地解释了所有代码。)
并确保查看我的GitHub以获取所有文件。
步骤7f :未来的可能性
使用ESP32为我们提供了大量的可选功能。我试着把它留给一个非常基本的模板,这样你就可以自己进入并修改代码,添加功能,并希望告诉我你做了什么!
我考虑的一些可能的功能是:
电子邮件通知(当播种机停水时)
自定义蜂鸣器噪音/音调(干燥后播放Toto非洲)
使用内置RTC设置灯光的计时器
我很想看看你为你的播种机想出什么!
步骤8:添加工厂
步骤8a :采摘植物
对于这个项目,我们使用了Janet Craig Compacta,但如果您愿意,可以使用许多其他植物。
重要警告!! ! Janet Craig Compacta是 Dracaena物种的成员, 已知对猫和狗(可能还有人类)有毒。如果你有动物,请不要使用这种植物还是小孩子!保持小小的floofers安全! :))
热带植物,例如需要大量水的植物,在自动浇水的播种机中做得很好。需要干燥土壤的植物,如多肉植物,不会。 不要将多肉植物放在这个播种机中。
Plonty,是一个需要大量阳光的热带植物应该在这个播种机中茁壮成长,具有极度潮湿的土壤和生长灯的额外好处。其他喜欢这种播种机的植物包括(但不限于):
Hostas
Lobelias
樱桃西红柿
Silantro
其他草药
步骤8b:安装工厂
一旦你选择了一个植物,就该把它移到罐子里了。从工厂中取出临时锅。轻轻地打破一些额外的土壤,小心不要破坏根部。我们只需要让植物足够小以适应播种机。一旦去除多余的污垢,轻轻推动金属丝网内的土壤。
不要太紧在土壤中包装。
现在,将梅森罐子的盖子滑到金属丝网上(见图片)花点时间,以免损坏种植或粉碎金属丝网。
用水填充Mason Jar,然后将网状物放回播种机内,但不要紧固盖子。
步骤8c:设置基础
已经制作了播种机,现在是时候在基础上进行设置了。将梅森罐放在底座上。将水位传感器滑入梅森罐内,然后拧紧盖子。
确保传感器完全浸没在水中。
然后小心地将土壤湿度传感器串入土壤中,避免损坏根部。一旦连接了所有传感器,就应该完全完成播种机!
步骤8d:完成触摸
最后,我们将要测试我们的设备。连接到我们之前使用的IP地址,并查看传感器是否正在录制。可能需要根据您的设置调整阈值。还要测试是否可以打开和关闭灯。
首次加载页面时,可能需要按几次按钮才能使灯光翻转。
就是这样。你做了播种机!恭喜!
第9步:结论
最后的想法
总的来说,我认为Plonty喜欢他的新发现! (不是吗?)我很高兴设计这个播种机,我希望你喜欢这个骑行。感谢您查看我的Instructable,如果您有任何疑问,请务必在下面发表评论,或者您只是想打个招呼!当我修改代码时,我会继续更新这个Instructable,所以希望我们将来会看到更多的功能!
-
物联网
+关注
关注
2902文章
44174浏览量
370721 -
ESP32
+关注
关注
17文章
953浏览量
17030
发布评论请先 登录
相关推荐
评论