物联网

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

2020-09-14  本文已影响0人  TonyCode

作者:Circuits
翻译整理:Tony
原文地址:点击

今天分享一朵预报天气的云,通过颜色变化来告知天气情况。云朵使用树莓派Zero W制作,连接到 Yahoo Weather API 获取天气信息,通过变化的颜色告诉你天气情况。

我觉得把云朵悬挂在家中的墙壁上会非常的好看,云朵颜色与天气变化对应如下:

需要注意的是,项目中使用的雅虎API会更新,更多的信息可以访问:https://developer.yahoo.com/weather/

1. 所需器件

image

2. 切割云朵

image

用于切割的图纸都在svg文件中。如上图所示,云朵共有4层。
在第2层和第4层,内部路径和中间路径之间必须有1/8寸深的凹槽。这样可以将扩散层和背板插入其中。扩散层使用了半透明亚克力板,背板使用了硬质纤维板。

image

如上图所示,这是我的Shapeoko3上的预览图像。我们稍后会在重复使用,因此要保存好。

image

切割文件在文末获取。

3. 组装云朵

image

零件切割后即可将其粘在一起,仅需两件即可。然后将 1/8″ 木销钉插入孔中以帮助对齐。木销没有使用胶水固定,因此一旦使用就无法自由取下来了。

image image

干燥时,使用夹子将零件固定在一起,擦去从接缝溢出的多余胶水。

image

在胶水干燥的过程中,我从内部取下了组件,并先用150粒度的砂纸,然后是220粒度的砂纸将它们磨碎。擦拭干净后,使用深核桃色的木制油漆刷满表面,使其表面光滑并保持干燥。

这也是给顶层上色的好时机。这样不会在整个扩散层弄脏。

image

胶水晾干后,使用木制油漆对主要云朵进行打磨和上色。

4. 安装灯带

image

为了确定所需的灯带长度,我将其放入内部并确保灯带覆盖整个云朵。测量发现使用了19个灯的长度是可以的,但考虑到粘合部分,最终使用20个灯的长度。

image

然后拆下灯带周围的橡胶护套。将电线添加到插排上以连接到树莓派Zero W。


image

将焊条的末端与电线的末端焊接在一起,效果会更好。

image

将电线焊接到灯带。

image

在背面插板上涂一点热熔胶,以将灯带固定到云朵的边缘。将灯带尽可能靠近背板。

5. 安装扩散层和顶层

image

将扩散层放置在图中位置,并在顶部周围涂抹少量胶水。

image

将顶层固定好,确保其尽可能的与其他层对齐,并擦去多余的胶水。

6. 焊接电路

image

接线非常简单。

Pi to Din Neopixel上的GPIO 18

从Pi到5V Neopixel的5V

从Pi到GND的GND Neopixel

如电路图所示,接线方式非常简单。

image

在焊接USB电线之前,我们需要为其钻孔。根据电线直径,我用3mm的钻头钻了一个洞,以确保不要钻到灯带上。

image

切断没有插入计算机的公头的一端。然后去掉一些不需要的线。只需要红线(5V)和黑线(GND)。

image

焊接完成的样子如上图所示。

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 引脚。

image

如果 NeoPixels 的使用量不同,则更改 LED_COUNT。如果使用的 GPIO 引脚不同,请更改 LED_PIN。

image

在第 72 行,你需要更改位置,如果你使用了 sheboygan 来预测天气。
运行代码
更改完毕后,就可以测试代码。

sudo python cloud.py

现在,云朵应该会亮起来,在终端窗口中,你看到它输出了今天和明天的最高温度和最低温度。

  1. 设置开机自启动

配置自动启动,添加下面的代码到 rc.local 文件中。

python /home/pi/cloud.py &

所有项目代码在文末获取。

8. 完成组装

image

使用记号笔找到中心做好标记。然后,我将锯齿框架挂钩和两个橡胶垫安装到位。

image

使用热熔胶将树莓派固定到位。将一小撮热胶放在树莓派的背面,然后将其连接到背面板上。

image

用螺丝刀给钉书钉留出空间。

image

将弯曲的订书钉固定背板。

image

给每朵云添加挂钩和两个橡胶垫,所有的云朵就完成了。

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

上一篇 下一篇

猜你喜欢

热点阅读