俗話說的好,先求有再求好,用最直覺最簡單的方式開始。
這次嘗試先用最土炮的方式實驗看看盆栽自動澆水,簡單製作一個澆水的裝置,再來設定土壤濕度的感測值界線,等低於某濕度值,就控制馬達澆水。
另外固定時間將土壤溼度上傳ThinkSpeak,來觀察土壤濕度變化,看看是否真的能照心中所想的去澆水😂
內容目錄
整體架構
我們可以由土壤濕度來判斷是否該澆水。
ESP32也會將土壤濕度上傳ThinkSpeak,而透過觀察ThinkSpeak上的數據,就可以知道我們自動澆水系統是否有真的達到濕潤土壤的效果。
另外最怕的就是不停的澆水澆到滿出來,就讓我們來實驗看看吧~
澆水系統製作
某天在家裡準備要回收的地方,發現了一個適合的塑膠盒,於是就撿來當作水箱了,會挑他的原因主要是大小剛好,且塑膠好加工,最後弄起來感覺也算適合。
而澆水水管的設計,是看到Hedgehog刺蝟幫分享的影片“30分鐘DIY自動感應酒精消毒機”,把較硬的銅線塞進水管內,就可以隨意的折出自己想要的彎度,讓水確實澆到盆栽上。
把水泵接上水管後,丟進水箱內,把線路接上繼電器,之後就可以用繼電器來控制水泵動作了。
自動澆水影片:
Arduino程式碼
#include<WiFi.h>
#include <HTTPClient.h>
const char ssid[]="WiFi網路名稱"; //修改為你家的WiFi網路名稱
const char pwd[]="WiFi密碼"; //修改為你家的WiFi密碼
#define pumpPin 21 //水泵腳位
#define SensorPin A0 //土壤濕度感測器腳位
int sensorValue;
int watering;
String url = "https://api.thingspeak.com/update?api_key=你的api密碼"; //修改成你的api密碼
//讀取土壤濕度感測器
void ReadSensor(){
sensorValue=analogRead(SensorPin); //讀取感測器回傳值
Serial.print("value:");
Serial.println(sensorValue);
}
//將資料上傳ThinkSpeak
void UploadData(){
//建立一個網頁
HTTPClient http;
//把土壤濕度數值寫入網址
String url1= url+"&field1="+(int)sensorValue+"&field2="+(int)watering;
//提交網址
http.begin(url1);
//讀取網頁內容
int httpCode = http.GET();
if(httpCode == HTTP_CODE_OK){
String payload = http.getString();
Serial.print("網頁內容=");
Serial.println(payload);
}
else{
Serial.println("網路傳送失敗");
}
//關閉網頁
http.end();
}
void setup() {
pinMode(SensorPin,INPUT);
pinMode(pumpPin,OUTPUT);
digitalWrite(pumpPin,HIGH);
Serial.begin(115200);
WiFi.mode(WIFI_STA); //設置WiFi模式
WiFi.begin(ssid,pwd);
Serial.print("WiFi connecting");
//當WiFi連線時會回傳WL_CONNECTED,因此跳出迴圈時代表已成功連線
while(WiFi.status()!=WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.print("IP位址:");
Serial.println(WiFi.localIP()); //讀取IP位址
Serial.print("WiFi RSSI:");
Serial.println(WiFi.RSSI()); //讀取WiFi強度
}
void loop() {
//讀取土壤濕度
ReadSensor();
//判斷是否需要澆水
if(sensorValue<900){
Serial.println("water");
digitalWrite(pumpPin,LOW);
delay(500);
digitalWrite(pumpPin,HIGH);
delay(500);
watering=1; //用來記錄澆水
}
UploadData(); //上傳資料到ThinkSpeak
watering=0; //將澆水紀錄歸零
delay(60000);
}
測試紀錄
左圖是土壤溼度的感測數據,右圖是當水泵啟動時的紀錄。
從圖中可以看出當水泵打水後,土壤濕度確實是有上升,而當濕度下降超過設定的數值時,也的確會再次打水,以這次實驗來說,成功!!!‧★,:*:‧\( ̄▽ ̄)/‧:‧°★
不過盆栽中的小植物其實是死掉的(擺好看的><),測試時我試種過綠豆,但是不曉得是不是一直放在房間沒拿出去曬太陽,所以最後下場也是…,就跟你想的一樣~
還有我也不太敢真的一直接上電放一整天,通常是我下班回家上電或睡覺晚上上電,真的會怕發生水災或是有個甚麼萬一。
所以目前需要改進的地方有:
- 將外觀整合,線路整理,讓他可以放到陽台去。
- 澆水保護,水箱沒水或是有異常時會跳通知。
最後!! 如果你喜歡這篇文章,或是這篇文章對你有幫助的話,也歡迎分享出去給需要的人,訂閱免費電子報獲得最新資訊😄😄😄