独特的桌面气象站
本帖最后由 szjuliet 于 2021-3-30 17:34 编辑https://v.qq.com/x/page/f32113byfbl.html
(腾讯视频审核的非常快,几分钟就审核通过了)
https://www.bilibili.com/video/BV1xf4y1i744/
# 独特的桌面气象站
> 关于:我是计算机科学专业的学生。我喜欢玩电子产品,喜欢写代码,制作全新项目。
大家好!在本月项目中,我以桌面植物的形式制作了一个气象站,你也可以称其为桌面展品。这个气象站通过openwethermap.org的网站将数据提取到ESP8266中,并改变展品的RGB颜色。展品根据时间和气候而变化可以有许多不同的颜色组合。例如,如果晚上下雨,则云朵的颜色变为红色、橙色、黄色的组合,展示出雷暴的效果。这样它就有许多不同的颜色组合。
## 步骤1:必要的组件
* Node MCU(ESP8266)
* WS2812 LED灯条
* 5v Micro USB 充电器
* 3D打印部件
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162945tzujq34cn4z3kcr3.jpg)
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162945bhbao00bb82o1nxb.jpg)
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162945xahhv2t3tsdnwhmt.jpg)
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162945so86pczzq7cl72ei.jpg)
## 步骤2:电路连接
* 如电路图所示进行连接。
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162945r2mzx6vov6me2j62.png)
* 可以使用WS2812B LED灯条代替单个LED。
* 数据引脚连接到ESP8266的D4引脚,GND接GND,5v接NodeMCU的Vin。(如电路图)
* 每面墙使用4个LED(4个LED x 4面墙= 16个LED),7个LED用于云朵,2个LED灯用于太阳/月亮(3D打印的圆形)。
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946mfgg55fngcs5gc5q.jpg)
* ESP8266开发板放在底座下方,底座上有3D打印的盒子盖住它。
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162945ik98aylsl80zyska.png)
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162945ymqcef1nw3fcese1.jpg)
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946ulh7sl2hsmjxhm22.jpg)
## 步骤3:种下植物
* 将塑料片放入容器下面。
* 将土壤和植物放入容器中。
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946wy9vu097u4w7977w.jpg)
## 步骤4:程序编写
* 在Arduino IDE中打开下面给出的代码。
* 代码:请在附件中下载程序。
* 确保已包含代码中提到的每个库。
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946r27accb1xkdr2cb7.png)
* 编辑下面的代码
String OPEN_WEATHER_MAP_APP_ID = "<u>App_ID</u>";
String OPEN_WEATHER_MAP_LOCATION_ID = "<u>Location_ID</u>";
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946f5dc7cd7ndj3snc5.png)
* 打开浏览器并搜索 www.openweathermap.org。
* 创建一个帐户并登录该网站。
* 单击API密钥,将密钥复制并替换到上方代码中的APP_ID部分。
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946fdv2e4iacaverndp.png)
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946f66bbsv7ushvausv.png)
* 在同一个网站中搜索你的位置,打开结果,然后复制URL中的最后一个数字并将其粘贴到LOCATION_ID。
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946g4kc0dkr6echzkkk.png)
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946kmu22uy5x3dwd2a3.png)
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946ib54j5ez79s4sjue.png)
* MAP_ID和LOCATION_ID与我的相似。
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946zyvrye4nzrny5yne.png)
* 在ssid输入你的Wifi_name和你的Wifi密码。
const char * ssid ="<u>Wifi_name</u>";
const char * password ="<u>password</u>";
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946cxezzsaymavfrnfr.png)
* 现在根据你所在国家的时区更改时区
int timezone = <u>5.5</u> * 3600;
印度的时区为5:30,所以我输入了5.5,你也可以输入自己的时区。
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946nv8dcd78vqccvdfv.png)
* 如我上面的代码所示,所有下划线的部分都由你编辑。(译注:Markdown转到社区里好像不支持下划线,文中<u></u>之间的部分即为下划线)
* 现在将ESP8266连接到你的电脑,选择端口并上传代码。
## 步骤5:最后一步
插入Micro USB充电器即可完成。
![](https://mc.dfrobot.com.cn/data/attachment/album/202012/10/162946tvnyvnpzw6btad3k.jpg)
谢谢!
> 原文链接:https://www.instructables.com/Desk-Weather-Station-Showpiece/
> 作者:Mukesh_Sankhla
> 翻译:szjuliet
> ![](https://mc.dfrobot.com.cn/data/attachment/forum/202007/13/092805lv0ln9zmnxplgnrn.png)
回答大家的部分留言:
[*]关于Jsonlistern.h的下载:
在Arduino IDE中,点击菜单中 项目--加载库--管理库,搜索 Json streaming parser,在弹出的选项中安装即可。
[*]云朵的3D打印文件在附件里有的,是.glb格式的
原作者的提示:要打印云朵,需要将“填充”设置为0%。
[*]关于ESP8266WiFi.h的下载:
下载地址:https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/src/ESP8266WiFi.h
C:\Users\HP\Documents\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:28:10: fatal error: wl_definitions.h: No such file or directory#include <wl_definitions.h> ^~~~~~~~~~~~~~~~~~ compilation terminated.Arduino编译时出现以上错误,有没有人可以帮帮忙,解答一下。谢谢谢谢 lx 发表于 2021-4-1 18:26
C:%users\HP\Documents\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:28:10: fatal error: wl_definit ...
你可能没有下载完整的esp8288wifi相关文件
把ESP8266wifi下面所有文件都下载并存放到arduino的库文件夹中
https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi MRX 发表于 2020-12-24 18:55
JsonListener.h这个库哪里有呀?
https://github.com/squix78/json-streaming-parser/find/master,这里下载。或者在Arduino IDE中的项目--加载库--管理库,搜索json streaming parser,安装好了在文档中的Arduino目录下就可以找到。 讨喜讨喜讨喜 szjuliet 发表于 2020-12-11 01:22
(腾讯视频审核的非常快,几分钟就审核通过了)
有打印文件么 DFHk-Iek-iD 发表于 2020-12-15 23:42
有打印文件么
在附件里 {:7_222:}哇呜好棒! 不错,有创意 JsonListener.h这个库哪里有呀? szjuliet 发表于 2020-12-27 16:50
https://github.com/squix78/json-streaming-parser/find/master,这里下载。或者在Arduino IDE中的项目- ...
收到,感谢大佬 好赞!可爱还实用! 你那独特的桌面气象站3D打印文件少了云朵部分,能不能发份给我,598089072@qq.com 谢谢 DFB1Ln1GDCv 发表于 2021-1-10 10:25
你那独特的桌面气象站3D打印文件少了云朵部分,能不能发份给我, 谢谢
在附件里有的,是.glb格式 DFB1Ln1GDCv 发表于 2021-1-10 10:25
你那独特的桌面气象站3D打印文件少了云朵部分,能不能发份给我, 谢谢
里面有个colud.glb文件3D打印软件打不开 很有创意的,特别可爱 szjuliet 发表于 2020-12-16 10:14
在附件里
大佬大佬,我注册OpenWeather账号时,总是注册不成功,提醒验证失败怎么办 lx 发表于 2021-3-13 15:46
大佬大佬,我注册OpenWeather账号时,总是注册不成功,提醒验证失败怎么办
你用的是qq邮箱吗?有可能国内邮箱会拒收了验证邮件。试试Gmail之类的邮箱注册。 请问注册OpenWeather账号需要翻墙吗? 请问第二行的ESP8266WiFi.h怎么显示的有错误呀?要下载库吗?怎么下载呀 szjuliet 发表于 2021-3-13 23:38
你用的是qq邮箱吗?有可能国内邮箱会拒收了验证邮件。试试Gmail之类的邮箱注册。 ...
但是这个邮箱也不行。可不可以换个气象网站,有什么推荐吗?
求求了,谁能告诉我在哪能下载esp8266wifi.h库啊
lx 发表于 2021-3-29 21:34
求求了,谁能告诉我在哪能下载esp8266wifi.h库啊
https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/src/ESP8266WiFi.h
页:
[1]
2