如何使用 Raspberry Pi Pico W 自動化聖誕燈飾

如何使用 Raspberry Pi Pico W 自動化聖誕燈飾

Raspberry Pi 愛好者會爭辯說,聖誕節的真正意義是插入您最喜歡的燈光顯示,用您的 Raspberry Pi Pico 創造新事物,並構建讓您綻放笑容的事物。

當您將硬件與軟件組裝在一起,創造出傑作時,會有一種無價的自豪感。無論您修修補補技術多久,這種感覺似乎永遠不會消失。

讓我們深入了解使用 Raspberry Pi Pico、MicroPython 代碼和一些繼電器學習聖誕燈自動化基礎知識所獲得的純粹樂趣。

你需要什麼

在開始之前確保你有幾個組件:

  • 樹莓派皮科
  • 編碼機(Raspberry Pi,或 PC)
  • 5V 繼電器(繼電器模塊板為簡單起見非常棒)
  • 電線(電線和麵包板跳線)
  • 聖誕燈飾
  • 電源插座
  • 廢木料

組裝硬件

繼電器關閉

首先,讓我們關注繼電器模塊板和樹莓派 Pico 之間的連接:

  • GND(繼電器)連接到 GND(Raspberry Pi Pico)
  • IN1(繼電器)連接到 GP5(Raspberry Pi Pico)
  • IN2(繼電器)連接到 GP6(Raspberry Pi Pico)
  • IN3(繼電器)連接到 GP14(Raspberry Pi Pico)
  • VCC(繼電器)連接到 3V3 OUT(Raspberry Pi Pico)

如果您沒有一些電氣知識,建議尋求朋友的幫助。您需要連接與上圖所示類似的 5V 繼電器。第一個(左)端子不用於 5V 繼電器。另外,由於本教程中沒有第四個聖誕燈串,所以最後一個繼電器和插座插頭沒有連接在一起。

每個繼電器將能夠防止電流流向每個燈串所連接的每個插座插頭。Raspberry Pi Pico 將通過 MicroPython 代碼指示繼電器何時打開和關閉。

要更深入地了解電氣自動化,請查看我們的繼電器指南了解詳細信息。

創建代碼

聖誕燈代碼

首先,滑到我們的 GitHub 存儲庫以下載代碼。您可以下載lights.py文件或直接從 GitHub 窗口復制代碼並將其粘貼到您的 Thonny IDE 中。如果您剛拿到一個新製作的 Raspberry Pi Pico,請查看分步指南以幫助您使用 Thonny 設置您的新微控制器。

讓我們回顧一些重要的代碼片段以了解發生了什麼。能夠導入randommachinetime / sleep功能使得這個編碼項目非常簡單。然後,您需要做的就是將每個繼電器映射到正在使用的引腳:

relay1 = Pin(6, Pin.OUT) #GP6

對於您分配給Pin.Out函數(對應於 Raspberry Pi Pico 上的 GPIO 引腳)的每個繼電器,需要繼續重複此映射。

創建繼電器列表將使您能夠隨機選擇要打開和關閉的燈串:

lights_list = [relay1, relay2, relay3]

循環可以用作聖誕燈隨機化器。您可以選擇50 的範圍(如示例代碼中所示),或隨意增加數量。這將指示您的 Raspberry Pi Pico 運行此過程達到設置範圍內定義的次數。

在此循環中,您將使用random.choice以及列表函數,以便讓系統選擇並選擇一個繼電器來隨意打開和關閉。

示例代碼打印(lights)的輸出;但是,這不是必需的。另一方面,您可能希望在完成故障排除之前將其保留在代碼中。

lights.value的後綴為(1)(0),具體取決於繼電器應設置為打開 (on) 還是關閉 (off)。打開和關閉狀態也可能取決於您選擇如何連接插座和繼電器。

GPI0.cleanup()將清除 Raspberry Pi GPIO,這樣當 Python 代碼完成時,您的聖誕燈就不會停留在“開”的位置。出於測試目的,該函數在示例代碼中被註釋掉了。話雖如此,通常有不止一種方法來執行任務。有關詳細信息,請查看我們對 RPi.GPIO 與 GPIO 零的比較。

現在,最後的結果。如果你的音量稍微大一點,你會注意到當循環運行通過隨機化功能時,繼電器打開和關閉插座時會發出咔噠聲。

您的下一次自動化冒險是什麼?

在聖誕經典電影《聖誕假期》中,克拉克·格里斯沃爾德 (Clark Griswold) 使用了數量驚人的擴展和弦來為他裝滿聖誕燈的房子通電。雖然這似乎只適合好萊塢,但有許多自動化項目從簡單到令人難以置信。使用合適的開源設備和軟件,您甚至可以使用 Raspberry Pi 將燈光與聖誕音樂同步!

您準備好讓裝滿聖誕燈飾的房子自動播放您最喜愛的經典搖滾樂了嗎?現在您已經了解了使用 Raspberry Pi Pico 和繼電器進行自動化的基礎知識,您現在可以向北極發送“向我們發送 cookie”信號。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *