用樹莓派和Python給你的植物澆水

我想指出,我絕不是電子學專家。如果你讓我製作一個電路圖或者解釋某件電子產品工作原理的細節,我會一無所知。在生活中,我對電力的工作原理有了基本的瞭解,我只是胡亂擺弄了一下電子元件就完成了這個工程。話雖如此,當使用電子設備,尤其是使用外部電源時,應始終保持謹慎。在嘗試使用電子產品和電力設備時,務必小心謹慎!

用樹莓派和Python給你的植物澆水


我不擅長照顧植物,主要是因為我經常忘了給它們澆水。於是我開始想,“我敢肯定有人已經找到了一種方法來自動化這個過程。”事實證明,很多人都有。也就是用Arduino或樹莓派自動給植物澆水。在這篇文章中,我將講述我如何使用樹莓派和Python來自動澆灌我的植物。以下是我在這個工程中使用的組件:

  • 樹莓派3入門工具包
  • 12伏水泵
  • 12伏電源
  • 5伏繼電器
  • 各種各樣的跳線
  • 鱷魚跳線
  • 硅膠管

一旦我擁有了所有我需要的組件,就到了做一些研究的時候了。以下是我用來連接電子設備時參考的資源,並對它們的工作原理有了基本的瞭解:

  • 電是如何工作的
  • 如何使用繼電器
  • 從微型電腦樹莓派向繼電器供電
  • 將12伏電源連接到繼電器上
用樹莓派和Python給你的植物澆水

首先,我把繼電器和樹莓派連接起來,就像這樣:

用樹莓派和Python給你的植物澆水


紅線(母對母)從繼電器板上的JD_VCC引腳引到樹莓派上的5V引腳(引腳2)。橙色導線(母對母)從繼電器板上的VCC引腳引到樹莓Pi上的3.3V引腳(引腳1)。

用樹莓派和Python給你的植物澆水


通過連接這些電線,我們給了繼電器板能量。為了實際控制單個繼電器,我們需要將繼電器板上的另外兩個插腳連接到Raspberry Pi、GND(接地)插腳和IN1插腳上。

用樹莓派和Python給你的植物澆水

黑色的電線(母對母)是接地線,它從繼電器板上的GND引腳連接到Raspberry Pi上的任何地線(我用的是34號引腳)。白線(母對母)從繼電器板上的IN1引腳引到樹莓派上的12引腳。白線是允許我們打開和關閉繼電器與代碼。

用樹莓派和Python給你的植物澆水


你可以連接繼電器和樹莓派,如果你使用我提供的代碼,一定要記得換密碼。將繼電器板和樹莓派連接好後,接著將12伏適配器連接到單個繼電器上。不要把12V的電源適配器連接到牆上的電源插座上,直到你把所有的東西都連接好之後,你才應該這樣做。

用樹莓派和Python給你的植物澆水


12伏電源有一個方便的適配器,你可以用它來連接電線。我把紅色電線(公對公)連接到適配器的正號上,把棕色電線(公對公)連接到適配器的負號上。然後我把一個鱷魚夾(母對公)加到棕色的金屬絲上。

用樹莓派和Python給你的植物澆水

繼電器板有四個獨立的繼電器,每個繼電器有三個輸出,你可以在其中擰緊電線。中間的輸出是你想要連接外部電源的正引線的地方,而左邊的輸出是你想要連接你想要供電的設備的正引線的地方。這對於板上的所有繼電器都是一樣的。

用樹莓派和Python給你的植物澆水


從12伏適配器,把紅色電線(正/電源)連接到中間的繼電器輸出。然後,在繼電器最左邊的輸出端接上一根新的橙色電線(公對公),並在橙色電線的末端接上一個鱷魚夾(母對公)。

用樹莓派和Python給你的植物澆水

用樹莓派和Python給你的植物澆水

用樹莓派和Python給你的植物澆水


現在我們只需要把鱷魚夾連接到水泵上。無論你以何種順序將鱷魚夾連接到泵上,你所做的只是設置水流。

我安裝水泵的方式是,我想讓水從左向右流動,所以我把黑色的鱷魚夾和旁邊有一個紅點的別針連接起來,把另一個鱷魚夾和水泵上的別針連接起來。如果我把鱷魚夾的連接方式反過來,水就會從右向左流動。

用樹莓派和Python給你的植物澆水

用樹莓派和Python給你的植物澆水


水從左管流入,進入泵,從右管流出,然後進入植物最後,我們來看看我真正擅長的部分,代碼。為了與樹莓派上的GPIO交互,我使用了gpiozero庫。它真的很容易使用,並抽象出了許多低層操作,你通常需要學習,以開始與GPIO引腳交互。你可以在這裡找到相關文檔的鏈接。在我們真正開始編寫代碼之前,您必須將樹莓派連接到監視器、鼠標和鍵盤,或者您可以通過SSH連接到樹莓派。一旦你登錄到你的樹莓派,導航到你的桌面,並創建一個名為“run”的文件夾。在“run”裡面,你會有另一個叫做“classes”的文件夾。現在在“classes”文件夾中,創建一個名為"Hardware.py"的文件,它應該是這樣的:在這個文件中,我只定義了一個名為Relay的新類,它繼承自OutputDevice類。接下來,在“classes”文件夾中,創建一個名為“TimeKeeper.py”的新文件。應該像下面這樣:

用樹莓派和Python給你的植物澆水


本質上,這個類的目的是記錄當前時間和我們的植物最後一次澆水的時間。“Harware.py”和“TimeKeeper.py”都在“classes”文件夾中。然後我創建了一個名為“water_plant.py”的新文件。我把它放在“classes”文件夾之外。 "water_plant.py"文件看起來是這樣的:

用樹莓派和Python給你的植物澆水

你可以隨意更改“WATERING_TIME”和“SECONDS_TO_WATER”變量的值。第一個變量決定一天中的什麼時候植物應該收到水,而第二個變量決定植物收到水的時長。 我還設置了電子郵件提醒,這樣當你的植物澆水時,你就會收到一封電子郵件,每週五還會收到一封電子郵件,提醒你查看水位。默認情況下,我已經禁用了這些提醒,所以程序在啟動時不會崩潰,但如果你想啟用它們,你必須做三件事: 1)必須更改第26行和第27行來包含您的Gmail和密碼 2)必須取消第63、65和68行註釋 3)必須到這裡,用你想要接收提醒的Gmail登錄,並切換到“on”,否則當你嘗試用你的Gmail帳戶發送電子郵件時,你會收到一個錯誤提示。同樣重要的是,電子郵件提醒只適用於Gmail帳戶。 現在所有的文件都設置好了,你應該有如下目錄樹結構:

用樹莓派和Python給你的植物澆水

你可以把這個“run”文件夾放在樹莓派的任何地方,但我只是決定把它放在桌面上。最後,當我們想要運行“water_plant”腳本時,我想讓腳本在我們打開樹莓派時運行,而不是在每次我們想要運行樹莓派的時候都將它連接到顯示器上,這樣我們就可以關閉樹莓派並將它移動到任何地方。一旦我們打開它,我們就不需要SSH到樹莓派或將它連接到監視器來運行腳本。為此,我們需要使用“crontab”命令。如果你打開樹莓派上的一個終端窗口,要麼把它連接到顯示器上,要麼把它轉到顯示器上,然後輸入以下命令:

sudo crontab -e你應該看到類似這樣的東西:

用樹莓派和Python給你的植物澆水

在這個文件中,你要添加以下代碼片段:


<code>@reboot python3 /home/pi/Desktop/run/water_plant.py/<code>

然後保存它,按 CTRL+X → Y → Enter本質上,我們只是告訴樹莓派“嘿,無論何時你重啟,在桌面上運行‘run’文件夾內的python腳本‘water_plant.py’”。如果你沒有把“run”文件夾放在你的桌面上,只需更新你放置“water_plant.py”腳本的路徑。你可以在這裡查看完整的代碼,或者你可以用下面的命令克隆存儲庫:git clone https://github.com/AlanConstantino/rpi-plant-project.git就是這樣!現在你應該有一個工作的樹莓派,每24小時澆灌你的植物!它甚至會在你的植物澆水的時候給你發郵件提醒,以及每週五提醒你檢查水位。


英文原文:https://blog.alanconstantino.com/articles/water-your-plant-using-a-raspberry-pi-and-python.html


分享到:


相關文章: