用树莓派制作一朵预报天气的云

作者: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

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