第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,所以希望我們將來會看到更多的功能!
-
物聯網
+關注
關注
2909文章
44564瀏覽量
372802 -
ESP32
+關注
關注
18文章
971瀏覽量
17204
發布評論請先 登錄
相關推薦
評論