美文网首页物联网
用树莓派制作一朵预报天气的云

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

作者: TonyCode | 来源:发表于2020-09-14 09:09 被阅读0次

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

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

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

    • 如果第二天温度比当日高10%,变成红色。
    • 如果第二天温度比当日低10%,变成金色。
    • 如果同时满足这两个条件,会保持红色。
    • 如果这两个条件都不满足,会保持蓝色。
    • 如果天气预报中有雨或雪,它将闪烁。

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

    1. 所需器件

    image
    • 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. 切割云朵

    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

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

    • 树莓派GPIO18管脚连接到灯带的Din
    • 树莓派的5V连接到灯带的5V
    • 树莓派的GND连接到灯带的GND
    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

    相关文章

      网友评论

        本文标题:用树莓派制作一朵预报天气的云

        本文链接:https://www.haomeiwen.com/subject/zhnvzhtx.html