用樹莓派製作一朵預報天氣的雲

作者:Circuits
翻譯整理:Tony
原文地址:點擊

今天分享一朵預報天氣的雲,通過顏色變化來告知天氣情況。雲朵使用樹莓派Zero W製作,連接到 Yahoo Weather API 獲取天氣信息,通過變化的顏色告訴你天氣情況。

我覺得把雲朵懸掛在家中的牆壁上會非常的好看,雲朵顏色與天氣變化對應如下:

  • 如果第二天溫度比當日高10%,變成紅色。
  • 如果第二天溫度比當日低10%,變成金色。
  • 如果同時滿足這兩個條件,會保持紅色。
  • 如果這兩個條件都不滿足,會保持藍色。
  • 如果天氣預報中有雨或雪,它將閃爍。

需要注意的是,項目中使用的雅虎API會更新,更多的信息可以訪問:https://developer.yahoo.com/weather/

1. 所需器件

  • Neopixels 燈環(60 LED/m)
  • 鋸齒框架掛鉤
  • 3M 膠腳墊
  • 1/2″ S4S 橡木板
  • 1/8″ 硬質纖維板
  • 1/8″ 白色半透明亞克力板
  • 1/8″ 木銷釘
  • Watco 木製油漆
  • 木膠
  • 熱膠槍
  • 訂書機
  • 25ft 26AWG 紅線
  • 25ft 26AWG 黑線
  • 25ft 26AWG 藍線
  • 樹莓派Zero W
  • Micro SD 卡
  • USB電線

2. 切割雲朵

用於切割的圖紙都在svg文件中。如上圖所示,雲朵共有4層。
在第2層和第4層,內部路徑和中間路徑之間必須有1/8寸深的凹槽。這樣可以將擴散層和背板插入其中。擴散層使用了半透明亞克力板,背板使用了硬質纖維板。

如上圖所示,這是我的Shapeoko3上的預覽圖像。我們稍後會在重複使用,因此要保存好。

切割文件在文末獲取。

3. 組裝雲朵

零件切割後即可將其粘在一起,僅需兩件即可。然後將 1/8″ 木銷釘插入孔中以幫助對齊。木銷沒有使用膠水固定,因此一旦使用就無法自由取下來了。

乾燥時,使用夾子將零件固定在一起,擦去從接縫溢出的多餘膠水。

在膠水乾燥的過程中,我從內部取下了組件,並先用150粒度的砂紙,然後是220粒度的砂紙將它們磨碎。擦拭乾淨後,使用深核桃色的木製油漆刷滿表面,使其表面光滑並保持乾燥。

這也是給頂層上色的好時機。這樣不會在整個擴散層弄髒。

膠水晾乾後,使用木製油漆對主要雲朵進行打磨和上色。

4. 安裝燈帶

爲了確定所需的燈帶長度,我將其放入內部並確保燈帶覆蓋整個雲朵。測量發現使用了19個燈的長度是可以的,但考慮到粘合部分,最終使用20個燈的長度。

然後拆下燈帶周圍的橡膠護套。將電線添加到插排上以連接到樹莓派Zero W。


將焊條的末端與電線的末端焊接在一起,效果會更好。

將電線焊接到燈帶。

在背面插板上塗一點熱熔膠,以將燈帶固定到雲朵的邊緣。將燈帶儘可能靠近背板。

5. 安裝擴散層和頂層

將擴散層放置在圖中位置,並在頂部周圍塗抹少量膠水。

將頂層固定好,確保其儘可能的與其他層對齊,並擦去多餘的膠水。

6. 焊接電路

接線非常簡單。

Pi to Din Neopixel上的GPIO 18

從Pi到5V Neopixel的5V

從Pi到GND的GND Neopixel

如電路圖所示,接線方式非常簡單。

  • 樹莓派GPIO18管腳連接到燈帶的Din
  • 樹莓派的5V連接到燈帶的5V
  • 樹莓派的GND連接到燈帶的GND

在焊接USB電線之前,我們需要爲其鑽孔。根據電線直徑,我用3mm的鑽頭鑽了一個洞,以確保不要鑽到燈帶上。

切斷沒有插入計算機的公頭的一端。然後去掉一些不需要的線。只需要紅線(5V)和黑線(GND)。

焊接完成的樣子如上圖所示。

7. 設置樹莓派

  1. 安裝系統

下載樹莓派系統,我是用的是:https://www.raspberrypi.org/downloads/raspbian/

使用諸如etcher.io的程序將系統鏡像刻錄到SD卡。完成後在啓動目錄中添加兩個文件,以便樹莓派啓用ssh並提供正確的wifi信息。

使用文本編輯器打開wpa_supplicant.conf文件,輸入wifi的ssid和密碼。然後將文件添加到sd卡。啓用ssh,我們只需要建立一個名爲ssh的文件而不需要擴展名。

  1. 連接到樹莓派

在樹莓派中使用 putty 和 SSH 的程序。你可以訪問以下網址,找到相關的操作文檔。

https://www.raspberrypi.org/documentation/remote-access/ssh/windows.md

唯一的區別是,你可以找到樹莓派的 IP。我發現使用 raspberrypi.local 連接到主機更容易。

  1. 安裝所需要的庫

安裝pip,運行如下命令:

sudo apt-get install python-pip

安裝requests模塊:

pip install requests

安裝 NeoPixels 所需的項目。這些步驟的說明來源於:
https://learn.adafruit.com/neopixels-on-raspberry-pi?view=all#software

sudo apt-get install build-essential python-dev git scons swig

運行命令:

git clone https://github.com/jgarff/rpi_ws281x.git
cd rpi_ws281x
scons

接下來

cd python
sudo python setup.py install

現在,所需的庫都已安裝完畢。

  1. 部署程序

從 GitHub 庫中獲取文件:
https://github.com/keebie81/Weather-Forecast-Cloud

你可以將內容剪切並粘貼到新文件中,或使用 WinSCP 傳輸文件:
https://winscp.net/eng/download.php

如果你需要剪切和粘貼,就要使用此命令製作一個新文件。

sudo nano cloud.py

然後粘貼內容到 cloud.py。

下一步,你可能需要更改一些數值。如果你使用了不同數量的 NeoPixels 或 GPIO 引腳。

如果 NeoPixels 的使用量不同,則更改 LED_COUNT。如果使用的 GPIO 引腳不同,請更改 LED_PIN。

在第 72 行,你需要更改位置,如果你使用了 sheboygan 來預測天氣。
運行代碼
更改完畢後,就可以測試代碼。

sudo python cloud.py

現在,雲朵應該會亮起來,在終端窗口中,你看到它輸出了今天和明天的最高溫度和最低溫度。

  1. 設置開機自啓動

配置自動啓動,添加下面的代碼到 rc.local 文件中。

python /home/pi/cloud.py &

所有項目代碼在文末獲取。

8. 完成組裝

使用記號筆找到中心做好標記。然後,我將鋸齒框架掛鉤和兩個橡膠墊安裝到位。

使用熱熔膠將樹莓派固定到位。將一小撮熱膠放在樹莓派的背面,然後將其連接到背面板上。

用螺絲刀給釘書釘留出空間。

將彎曲的訂書釘固定背板。

給每朵雲添加掛鉤和兩個橡膠墊,所有的雲朵就完成了。

9. 3D 打印

如果你沒有木工 CNC 機牀,下面提供了STL文件。其中括Autodesk Fusion 360 的設計文件。你也可以修改設計並優化打印。

文件在文末獲取。

10. 作者後話

我原本想用 esp8266 開發板來實現這個項目,但是我在 Arduino IDE 和 JSON 方面的技能不如樹莓派。未來這個項目還會增加一些功能,例如在擴散層後的七段顯示器上顯示當前溫度。

我將把文件放在 GitHub 上並添加代碼,如果你採用了 Pimoroni Blinkt,Pimoroni Unicorn PHAT 或 Raspberry PI Sense Hat,就可以去使用。
https://github.com/keebie81/Weather-Forecast-Cloud

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章