作者: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. 設置樹莓派
- 安裝系統
下載樹莓派系統,我是用的是:https://www.raspberrypi.org/downloads/raspbian/
使用諸如etcher.io的程序將系統鏡像刻錄到SD卡。完成後在啓動目錄中添加兩個文件,以便樹莓派啓用ssh並提供正確的wifi信息。
使用文本編輯器打開wpa_supplicant.conf文件,輸入wifi的ssid和密碼。然後將文件添加到sd卡。啓用ssh,我們只需要建立一個名爲ssh的文件而不需要擴展名。
- 連接到樹莓派
在樹莓派中使用 putty 和 SSH 的程序。你可以訪問以下網址,找到相關的操作文檔。
https://www.raspberrypi.org/documentation/remote-access/ssh/windows.md
唯一的區別是,你可以找到樹莓派的 IP。我發現使用 raspberrypi.local 連接到主機更容易。
- 安裝所需要的庫
安裝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
現在,所需的庫都已安裝完畢。
- 部署程序
從 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
現在,雲朵應該會亮起來,在終端窗口中,你看到它輸出了今天和明天的最高溫度和最低溫度。
- 設置開機自啓動
配置自動啓動,添加下面的代碼到 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