跳至主要内容

控制繼電器 - 樹莓派

在本課程中,您將在樹莓派上添加一個繼電器,並根據土壤濕度水平來控制它。

硬體

樹莓派需要一個繼電器。

您將使用的繼電器是 Grove 繼電器,這是一個常開繼電器(意味著當沒有信號發送到繼電器時,輸出電路是開路或斷開的),可以處理高達 250V 和 10A 的輸出電路。

這是一個數字執行器,因此連接到 Grove Base Hat 上的數字引腳。

連接繼電器

Grove 繼電器可以連接到樹莓派。

任務

連接繼電器。

A grove relay

  1. 將 Grove 電纜的一端插入繼電器上的插座。它只能以一種方式插入。

  2. 在樹莓派關機的情況下,將 Grove 電纜的另一端連接到 Grove Base Hat 上標有 D5 的數字插座。這個插座在 GPIO 引腳旁邊的插座行中從左數第二個。保持土壤濕度傳感器連接到 A0 插座。

The grove relay connected to the D5 socket, and the soil moisture sensor connected to the A0 socket

  1. 將土壤濕度傳感器插入土壤中,如果它還沒有從上一課中插入。

編程繼電器

現在可以編程樹莓派以使用連接的繼電器。

任務

編程設備。

  1. 啟動樹莓派並等待其啟動

  2. 如果尚未打開,請在 VS Code 中打開上一課的 soil-moisture-sensor 項目。您將在此項目中添加內容。

  3. 在現有導入語句下方的 app.py 文件中添加以下代碼:

    from grove.grove_relay import GroveRelay

    此語句從 Grove Python 庫中導入 GroveRelay 以與 Grove 繼電器交互。

  4. ADC 類的聲明下方添加以下代碼以創建 GroveRelay 實例:

    relay = GroveRelay(5)

    這使用引腳 D5 創建了一個繼電器,即您連接繼電器的數字引腳。

  5. 為了測試繼電器是否工作,請在 while True: 循環中添加以下代碼:

    relay.on()
    time.sleep(.5)
    relay.off()

    該代碼打開繼電器,等待 0.5 秒,然後關閉繼電器。

  6. 運行 Python 應用程序。繼電器將每 10 秒打開和關閉一次,打開和關閉之間有半秒的延遲。您將聽到繼電器點擊打開然後點擊關閉。當繼電器打開時,Grove 板上的 LED 會亮起,然後在繼電器關閉時熄滅。

    The relay turning on and off

根據土壤濕度控制繼電器

現在繼電器已經工作,可以根據土壤濕度讀數進行控制。

任務

控制繼電器。

  1. 刪除您添加的測試繼電器的 3 行代碼。用以下代碼替換它們:

    if soil_moisture > 450:
    print("土壤濕度太低,打開繼電器。")
    relay.on()
    else:
    print("土壤濕度正常,關閉繼電器。")
    relay.off()

    此代碼檢查來自土壤濕度傳感器的土壤濕度水平。如果超過 450,則打開繼電器,當低於 450 時關閉繼電器。

    💁 請記住,電容式土壤濕度傳感器讀數越低,土壤中的水分越多,反之亦然。

  2. 運行 Python 應用程序。您將看到繼電器根據土壤濕度水平打開或關閉。嘗試在乾燥的土壤中,然後加水。

    Soil Moisture: 638
    Soil Moisture is too low, turning relay on.
    Soil Moisture: 452
    Soil Moisture is too low, turning relay on.
    Soil Moisture: 347
    Soil Moisture is ok, turning relay off.

💁 您可以在 code-relay/pi 文件夾中找到此代碼。

😀 您的土壤濕度傳感器控制繼電器程序成功了!