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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容