你喜歡園藝,但找不到時間打理嗎?也許你養了一些室內植物,看起來有點缺水,或者你想找一種方法來自動化你的水培系統?在這個項目中,我們將解決這些問題,并通過構建一個自動化花園系統來學習MudPi的基礎知識,幫助你照料花園。MudPi是我制作的一個開源花園系統,用于管理和維護基于樹莓派的花園資源。你可以根據需要將MudPi用于室內和室外園藝項目,因為它設計為可定制的。
今天,我們將從我在家中使用的基本設置開始,看看如何部署MudPi來管理室外花園并控制灌溉。在本教程中,你將學習如何部署運行MudPi的主控制器。對于那些想進一步擴展設置或想了解不同設置(如室內)的人,教程末尾提供了一些額外資源。MudPi可以配置為多種設置,項目網站上有大量文檔。
https://mudpi.app/docs
所需材料
請根據需要自由添加/刪除你可能需要的特定傳感器或組件,因為你的需求可能與我的不同。
通用材料
帶有WiFi的樹莓派(我使用的是Pi 3 B),Debian 9/10
顯示器/鍵盤/鼠標(用于樹莓派設置)
用于Raspbian的SD卡(8GB)
室外用線纜(4芯)
室外防水接線盒
電纜接頭
DIN導軌(用于安裝斷路器和直流電源)
PVC管
帶鏟形鉆頭的電鉆
電子材料
DHT11溫度/濕度傳感器
液位浮球傳感器 x2
2通道繼電器
12V水泵(如果使用市電電壓,也可使用120V),如果使用12V,需要DC-DC轉換器
5V電源,或直流電源(如果從市電為樹莓派供電)
10kΩ上拉/下拉電阻
工具
螺絲刀
剝線鉗
電烙鐵
焊錫
螺絲(用于戶外安裝盒子)
硅膠密封膠
第一步:花園與灌溉規劃
如果你正在建立一個新系統,請確保已經規劃好灌溉系統。在準備硬件時,了解這些已經到位的東西很重要,這樣你就知道需要哪些組件。需求可能會隨時間變化,但為未來做好準備是個好習慣。你的兩種主要供水方式是使用水箱中的水泵或帶有電磁閥的水管來打開和關閉水流。選擇哪種方式取決于你的花園需求。一個更大、更復雜的系統可能會同時使用這兩種方式(例如,通過電磁閥泵水進行分區灌溉)。如果你計劃在室內使用MudPi,你可能會使用水泵。MudPi還可以使用繼電器控制室內植物燈。
制作小貼士:請記住,你可以按任意規模構建項目。如果你只是想第一次嘗試MudPi,可以嘗試用水瓶和3.3V水泵來給室內植物澆水!
還要考慮供水方式。你將使用滴灌管、滲水管還是噴頭?以下是一些常見方法:
噴頭
滲水管
滴灌管
手動澆水
為了避免本教程的范圍過大,我們假設你已經有了灌溉系統,只是想將其自動化。在我的設置中,我有一個帶水泵的水箱,連接到一些滴灌管上。讓我們學習如何自動化這個水泵。
第二步:傳感器與組件規劃
另一個重要的規劃方面是考慮你想從花園獲取哪些數據。通常,溫度和濕度總是有用的。土壤濕度和降雨檢測對于室內設置來說可能不是必需的。最終決定哪些條件對你的需求重要并需要監測。對于我們的基本室外教程,我們將監測:
溫度
濕度
水位(兩個浮球傳感器)
我使用了5個水位傳感器來確定大水箱中10%、25%、50%、75%和95%的水位。在本教程中,為了簡單起見,我們將使用10%作為臨界低水位和95%作為滿水位。
你可能還想控制花園中的設備。如果你計劃切換不運行在3.3V(樹莓派GPIO限制)的水泵或燈,那么你需要一個繼電器。繼電器允許你使用較低的電壓來切換較高的電壓電路。對于我們的目的,我們有一個運行在高于3.3V電壓上的水泵,所以我們需要一個繼電器來切換水泵。只需要一個繼電器來控制水泵。然而,為了未來的目的(而且因為繼電器很便宜),我安裝了一個2通道繼電器,并留出了額外的插槽供以后升級。
最重要的是規劃電源供應。樹莓派將如何供電以及從哪里供電。你還應該考慮你使用的設備以及它們將如何獲取電源。通常,樹莓派可以通過USB電源適配器供電,但這需要一個單獨的插頭。如果我們使用更高電壓的其他設備,可以使用DC-DC電源將電壓降至5V為樹莓派供電。如果你計劃購買降壓電源,我建議不要選擇最便宜的選項。
記住,樹莓派默認只能支持數字GPIO。這意味著你不能直接將需要模擬讀數的土壤傳感器連接到樹莓派GPIO上。為了與模擬組件兼容,你需要使用帶有模擬支持的微控制器,如Arduino或ESP32(或ESP8266)。
幸運的是,MudPi支持將此類設備作為從節點進行控制,以便從一個主控制器(樹莓派)向多個設備發出命令。這使得可以擁有一個主控制器和多個傳感器單元,它可以控制這些傳感器單元及其連接的模擬組件。我使用了一個主控制器來監測水泵區域,并為每個抬高式花壇使用了一個傳感器單元。今天,讓我們繼續構建主控制器。
第三步:收集材料
現在是我們收集材料的時候了。本構建中使用的組件和工具都是現成的商品,以便其他人可以輕松在家中構建自己的系統。大多數材料可以在網上或當地五金店找到。具體的材料清單將取決于你的特定花園布局。為了本教程的目的,我們將保持材料為計劃中的必需品,以便在進一步操作之前獲得一個運行中的單元。
注意:在這一點上,我想指出,如果你計劃切換使用市電電壓的組件,請務必小心!在構建電子設備時確保安全很重要,如果你不知道自己在做什么,就不要擺弄高壓。話雖如此,我在家中設置中確實使用了120V水泵。對于12V水泵,過程相同,主要區別是需要一個12V穩壓器。你還可以使用繼電器來切換燈或其他設備。
第四步:在樹莓派上安裝MudPi
有了計劃和材料在手,現在是準備硬件的時候了。首先,你應該準備好樹莓派以安裝MudPi。你需要一個帶有WiFi功能的樹莓派,運行Debian 9或更高版本。如果你還沒有安裝Raspbian,你需要從他們的頁面下載。
https://www.raspberrypi.com/software/
下載鏡像文件后,使用你選擇的鏡像寫入器將其寫入SD卡。如果你需要幫助,樹莓派有一個將文件寫入SD卡的指南。
https://www.raspberrypi.com/documentation/computers/getting-started.html
將SD卡插入樹莓派并開機。如果你安裝了Raspbian Desktop,請使用GUI將樹莓派連接到WiFi,或者通過編輯Raspbian Lite終端中的/etc/wpa_supplicant/wpa_supplicant.conf文件來連接。
連接WiFi后,你應該做的下一件事是運行樹莓派的更新和升級。
要更新樹莓派,請登錄并從終端運行:
sudo apt-getupdatesudo apt-getupgrade
完成后重啟
sudoreboot
樹莓派重新啟動后,我們現在可以安裝MudPi。你可以使用以下命令通過MudPi安裝程序進行安裝:
https://github.com/mudpi/installer
curl-sL https://install.mudpi.app | bash
安裝程序將處理MudPi所需的所有軟件包和配置。默認情況下,MudPi安裝在/home/mudpi目錄中,核心位于/home/mudpi/core。
你可以使用以下命令手動運行MudPi:
cd/home/mudpimudpi --debug
然而,MudPi有一個supervisor作業可以為你運行它。此外,在運行MudPi之前,你首先需要一個配置文件。為了制作配置文件,你需要知道你將哪些引腳連接到了哪些組件上,這就是下一步要做的。繼續!
第五步:連接傳感器和組件到樹莓派進行測試
下一步是將我們的組件連接到樹莓派上。(請注意,我在照片中測試了額外的組件)你可能正在使用跳線和面包板進行測試,這沒問題,只是請記住,在為現場構建最終單元時,要升級到更可靠的東西。
將DHT11/22傳感器的DATA引腳連接到GPIO引腳25。
連接DHT11/22的電源和地線。
使用10kΩ下拉電阻,將兩個液位浮球傳感器的每一端分別連接到GPIO引腳17和27。
將浮球傳感器的另一端連接到3.3V,以便GPIO通常被拉低,但當浮球開關關閉時為高電平。
將2通道繼電器的切換引腳連接到GPIO引腳13和16。
將繼電器的5V連接到電源,地線連接到地線。
我們將在稍后的步驟中連接插頭時處理繼電器的高壓連接。現在,我們應該準備好制作MudPi配置文件并測試組件了。
第六步:配置MudPi
連接好傳感器和組件后,你可以制作MudPi配置文件,并在完成單元組裝之前測試一切是否正常工作。為了配置MudPi,你將更新位于/home/mudpi/core/mudpi目錄中的mudpi.config文件。這是一個JSON格式的文件,你可以更新它以適應你的組件需求。如果你遇到任何問題,請務必檢查格式是否正確。
如果你正在跟隨本教程,以下配置文件將適用于我們連接的組件:
{ "mudpi":{ "name":"MudPi", "debug":false, "location":{ "latitude":40, "longitude":-88 } }, "sensor":[ { "interface":"dht_legacy", "name":"dht", "key":"dht", "pin":25 }, { "interface":"gpio", "name":"float1", "key":"float1", "pin":"D17" }, { "interface":"gpio", "name":"float2", "key":"float2", "pin":"D27" } ], "toggle":[ { "interface":"gpio", "pin":"D13", "name":"Pump", "key":"pump", "invert_state":false, "max_duration":960 }, { "interface":"gpio", "pin":"D16", "name":"Extra", "key":"extra", "invert_state":false } ], "trigger":[ { "interface":"cron", "name":"Daily Pump 12 Hours", "key":"turn_on_pump", "schedule":"0 */12 * * *", "actions":[ ".pump.turn_on" ] }, { "interface":"cron", "name":"Daily Pump Off", "key":"turn_off_pump", "schedule":"15 */12 * * *", "actions":[ ".pump.turn_off" ] } ]}
上面的配置中有很多內容。我建議深入研究配置文檔以獲取更詳細的信息。
https://mudpi.app/docs/configuration-basics
我們在sensor數組中設置了DHT11和浮球傳感器,并在toggle數組中設置了繼電器設置。自動化通過設置triggers和actions來實現。trigger是一種告訴MudPi監聽某些條件的方式,我們希望在這些條件下采取行動,比如溫度過高。trigger在沒有提供action來觸發之前并不太有用。在上面的配置中,有兩個時間觸發器。時間觸發器采用cron作業格式的字符串來確定何時激活。上面的時間觸發器設置為每12小時一次(即每天兩次)。它們將觸發我們配置的兩個動作,這兩個動作將只是通過MudPi發出的事件來打開/關閉我們的繼電器。第二個觸發器延遲了15分鐘,以便我們的水泵將打開并澆水15分鐘,然后再被關閉。這將每天發生兩次。
https://crontab.guru/
現在,你可以通過告訴supervisor重啟程序來重啟MudPi:
sudosupervisorctl restart mudpi
MudPi現在應該重新加載配置,并在后臺運行,讀取傳感器數據并監聽事件以切換繼電器。你可以通過以下命令檢查MudPi是否正在運行:
sudosupervisorctl status mudpi
MudPi還會在/home/mudpi/logs目錄中存儲日志文件。如果你遇到問題,這是一個首先檢查的好地方。
如果你已經驗證MudPi正在運行,那么是時候開始最終組裝單元了。關閉樹莓派,讓我們完成硬件的組裝。
第七步:將組件焊接到原型板上
現在MudPi已經配置好了,你可以繼續處理硬件了。留在盒子里的組件應該焊接到原型板上,以獲得比跳線更穩定的連接。雖然它不如定制電路板那么漂亮,但現在可以工作。我們正在使用的DHT11傳感器將是外部的,但你也可以選擇在內部再包含一個,用于監測盒子內部的溫度。
我將樹莓派的引出線焊接到一塊板上,并連接了一些端子連接器,以便在重新連接傳感器和繼電器時更容易進行GPIO連接。引出線使得可以輕松斷開樹莓派,而無需取出整個模塊。我還包括了浮球傳感器所需的下拉電阻。完成后,我們可以將所有東西放入一個漂亮的室外接線盒中以保護它。
第八步:開始將電子設備放入室外接線盒中
到目前為止,一切都已經過測試,并在MudPi上正常工作,現在是時候組裝室外單元以抵御惡劣環境了。你當地的五金店在電子區會有一些接線盒可供選擇,你可以以低于25美元的價格購買。找一個大小合適且具有防水密封的。我多花了一點錢買了一個帶有彈簧鎖扣的纖維增強盒子。你所需要的只是能防潮并適合你所有組件的東西。你還將在這個盒子上鉆孔以引出電纜。
第九步:將插頭連接到繼電器并安裝在接線盒中 警告:高壓
在連接組件時,樹莓派應該處于關閉狀態。如果你正在為水泵使用120V或12V,請考慮使用的插頭。運行12V的水泵通常使用桶形插頭連接器。使用120V時,你可以使用一個母頭延長線插頭。現在,不要在沒有適當設備的情況下切割延長線并擺弄它。
使用電鉆或鏟形鉆頭在室外接線盒的底部鉆兩個3/4英寸的孔,并放入兩個3/4英寸的電纜接頭。將公頭延長線穿過一個接頭,母頭半部分穿過另一個接頭。如果你想使用另一個繼電器通道,可以再安裝一個母頭結束的線。
在盒子里,我安裝了一小段DIN導軌。在導軌上有一個直流電源,用于將120V降至5V以為樹莓派供電,還有一些安全斷路器。我只使用了兩個斷路器,這樣我就可以關閉樹莓派而不關閉整個系統。一個斷路器就足夠了。現在,在延長線內部有三根彩色電纜。白色是中性線,綠色是地線,黑色是120V+。綠色和白色直接進入直流電源。黑色首先進入斷路器,然后進入直流電源。電源上有一個小螺絲,是一個電位器,用于將電壓精確調整到5V。
我們將使用接線端子在插頭之間建立連接。使用一個端子塊將所有白色中性線連接在一起。如果你沒有接線端子,電工膠帶也可以。綠色地線也應該連接在一起。繼電器的高壓側有三個連接:COM(公共端)、NC(常閉)和NO(常開)。根據你的繼電器,它可能只有NC或NO,而不是兩者都有。連接一小段額外的電纜從將提供120V的斷路器到我們繼電器高壓側的COM(公共端)端子。現在,將母頭延長線的黑色120V線連接到NC端子。這意味著插頭通常處于關閉狀態,不連接,但當我們切換繼電器時,它將向插頭提供120V,從而打開我們的水泵。
此時,所有延長線的白色中性線應該連接在一起,綠色地線也應該連接在一起。母頭插頭的黑色120V線連接到繼電器的NC端子。公頭延長線的黑色火線應該連接到DIN導軌上的一個斷路器,然后分接到直流電源和繼電器的COM端子上。
重要的是將所有東西安裝在一個防水盒中,并正確保護/路由所有電纜。你最不想看到的就是火災或有人觸電。另外,如果你不能確保安全,就不要擺弄高壓。你仍然可以使用12V及以下的組件做很多事情。
第十步:將傳感器放入保護殼中
大自然和濕氣對電子設備不太友好。你已經用室外接線盒保護了樹莓派,但現在你需要保護任何外部組件。你可以使用一些PVC管或其他廢料管制作一些不錯的外殼來保護外部組件。我為DHT11傳感器制作了一個簡單的通風蓋,以幫助保護它免受雨水和蟲子的侵害,但允許它呼吸以獲得準確的室外讀數。在下一步中,使用硅膠密封膠密封電纜周圍。
這不是最好的解決方案,但對于一個4美元的傳感器來說,它很有效。(我當時還為正在測試的土壤傳感器制作了一些。)浮球傳感器將安裝在水箱中,不需要額外的外殼。
你還會發現傳感器通常只附帶一些便宜的細線。這在一般處理或室外氣候下不會持續太久。在下一步中,我們將解決這個問題。
第十一步:使用室外用線纜和插頭連接傳感器
如果你想將外部傳感器連接到盒子上,那么使用一些室外用線纜是必須的。室外用線纜有屏蔽層,有助于保護內部電線。我買了一些4芯線纜和插頭。你不需要插頭,也可以使用更多的電纜接頭,但我想能夠快速更換傳感器。
根據你的溫度傳感器和浮球傳感器,剪一些適當長度的線纜。我建議多留幾英尺,因為留一些額外的線纜以備不時之需總是好的。我建議焊接電纜以獲得最佳連接,然后用電工膠帶包裹。我建議對每根線的電源和地線使用相同的顏色,以便于記憶。將電纜放入外殼中,并用硅膠密封膠密封外殼底部的其余部分,以便只有通風蓋是入口點。
線纜的另一端可以通過電纜接頭穿入盒子,并像以前一樣連接到樹莓派上。如果你選擇使用插頭,將插頭端安裝到線纜上。在接線盒上鉆孔并安裝另一端,然后連接內部。
第十二步:將浮球傳感器安裝到水箱中
現在其他傳感器已經保護好并準備就緒,是時候將浮球傳感器安裝到水箱中了。由于我們只使用兩個,你應該在臨界低水位(水泵不應運行)和一個表示水箱已滿的水位各安裝一個。找到正確尺寸的鉆頭,并在水箱的適當水位鉆孔。使用提供的墊圈和螺母將浮球傳感器擰入水箱。查看水箱內部,確保浮球傳感器處于關閉位置,并在水位上升時抬起,使它們閉合電路。
由于下拉電阻的存在,這意味著當水位達到時,該水位的浮球傳感器將讀取1。否則,如果水當前沒有抬起傳感器閉合電路,浮球傳感器將返回0。
第十三步:將單元部署到室外
MudPi單元已經準備好在現場使用,我們可以將其安裝在室外的最終位置。室外接線盒通常帶有一個蓋子,可以擰緊以形成防水密封。你還應該在背面找到一些安裝孔,用于安裝單元。我將我的盒子安裝在水箱旁邊的室外小屋上,因為浮球傳感器的線纜長度有限。
你可以將公頭延長線插入插座,并合上斷路器以使MudPi上線。在長時間離開之前,請確保一切正常工作。通過查看redis中存儲的值或檢查MudPi日志來測試傳感器是否正在讀取數據。如果一切看起來都很好,那么是時候讓MudPi工作,而你可以放松了。
第十四步:監測MudPi
現在MudPi正在工作,你可能想知道監測系統的方法。最簡單、最直接的方法是監測MudPi日志文件:
tail-f /home/mudpi/logs/output.log
另一個選項是通過本地網頁等界面。我還沒有時間發布一個公共的MudPi UI,但你可以輕松地從redis中獲取傳感器和組件狀態,使用PHP。在文檔中了解更多關于MudPi如何在redis中存儲數據的信息。
https://mudpi.app/docs/data-storage
最新的傳感器讀數將存儲在redis中,使用你在配置中設置的key選項。使用這個,你可以制作一個簡單的PHP應用程序,在頁面加載時獲取讀數并顯示它們。然后只需刷新頁面即可獲取新數據。
也有可能監聽redis上的MudPi事件,這是從系統獲取實時更新的更好選項。你可以通過redis-cli直接讀取事件:
redis-cli psubscribe'*'
第十五步:用定制PCB替換原型板(可選)
我已經走得更遠,還為MudPi制作了一些定制電路板。它們幫助我加快了構建多個MudPi單元的過程,并且更加可靠。我已經開始在我所有的現有單元中用更可靠的PCB替換舊的原型板。未來,我希望將這些電路板以小批量出售,以支持我的開源工作。MudPi不需要任何定制電路板即可運行,它只是有助于減少硬件工作量,因為板載組件已經安裝,如下拉電阻和溫濕度傳感器。
第十六步:放松并看著你的植物生長!
現在,你有了自己的自動化花園系統,你可以根據需要擴展和擴展它。制作更多單元或擴展你已經構建的單元。你可以用MudPi做更多事情,項目網站上有大量信息。
https://mudpi.app
我的目標是將MudPi變成我在開始花園項目時尋找的資源。我希望你覺得MudPi非常有用,如果你喜歡我的工作,請分享出去。我個人在家中的室內和室外都使用MudPi來管理我的植物,到目前為止,結果非常令人滿意。
-
微控制器
+關注
關注
48文章
7923瀏覽量
153803 -
樹莓派
+關注
關注
121文章
1956瀏覽量
107044
發布評論請先 登錄
樹莓派的種類_樹莓派安裝教程
樹莓派3wifi配置_樹莓派3開啟wifi熱點_樹莓派3的wifi使用教程
樹莓派3硬件配置_樹莓派3都能裝什么系統_樹莓派3系統安裝教程
樹莓派用什么語言編程_樹莓派python編程詳解
淺談香蕉派與樹莓派的不同
基于樹莓派的智慧花園
樹莓派控制步進電機

評論