数码之家

 找回密码
 立即注册
搜索
查看: 6434|回复: 24

[Arduino] 买的ESP8266和oled到了,改个天气预报程序

[复制链接]
发表于 2020-2-25 15:01:22 来自手机浏览器 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 kelchdeng 于 2020-2-28 18:21 编辑

程序是引用的github上的weather station。
IMG_20200225_144627.jpg
注册个apikey。再调整下ntp服务,用的阿里的ntp。
去掉夏令时。
IMG_20200225_144451.jpg
IMG_20200225_144458.jpg
IMG_20200225_144502.jpg
MVIMG_20200225_144144.jpg
下一步看看显示中文和国内天气服务packages 下载地址:链接:https://pan.baidu.com/s/1Or9UAbRBLgQeWZkTYAOKgA
提取码:7zsg

tianqi.rar

16.29 KB, 下载次数: 16, 下载积分: 家元 -55

打赏

参与人数 2家元 +30 收起 理由
家睦 + 20
人艰不拆了 + 10

查看全部打赏

发表于 2020-2-25 16:45:47 | 显示全部楼层
ESP8266什么型号啊:loveliness:

点评

用最便宜的ESP-01应该不可以了,屏用I2C通信的节省端口,  详情 回复 发表于 2020-2-26 09:56
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-25 20:34:45 来自手机浏览器 | 显示全部楼层
nodemcu,十多块钱的那种。
发现国内中国天气有api,返回城市天气数据是json格式。可以研究下
回复 支持 反对

使用道具 举报

发表于 2020-2-26 09:56:12 | 显示全部楼层

用最便宜的ESP-01应该不可以了,屏用I2C通信的节省端口,
回复 支持 反对

使用道具 举报

发表于 2020-2-26 13:08:27 | 显示全部楼层
希望楼主多提供详细过程指导,谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-26 16:40:21 | 显示全部楼层
1环境搭建,下载arduino最新版IDE
文件》首选项 开发板管理填上http://arduino.esp8266.com/stable/package_esp8266com_index.json   记住1这个位置。附件的packages就是要放到这个地方。
1.jpg
   因为直接用arduino取下载会特别慢,我都是打开package_esp8266com_index.json文件,找到具体文件路径,改用http去下载。ide会默认用哪个https,https特别的慢。
把附件的packages,覆盖到C:\Users\Administrator\AppData\Local\Arduino15\staging,其实packages里面就5个zip文件。
2.jpg
packages拷贝到指定目录后,打开 工具》开发版管理,输入esp,选esp8266的环境。选择安装,然后就跳过了下载,直接进行安装。
3.jpg
2添加lib
在管理库界面,增加ESP8266_Weather_Station,ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays,ssd1306
添加完了后,编译,编译没问题了就》到nodemcu。
SDA 接D3,SDC接D4,另外就是对应接上gnd和3.3v。
3另外
天气api申请
https://docs.thingpulse.com/how-tos/openweathermap-key/
查城市得到id。格式:xxx城市拼音,cn
https://openweathermap.org/find?q=
4.jpg

回复 支持 反对

使用道具 举报

发表于 2020-2-27 08:57:08 | 显示全部楼层
你这个附件,有点多啊。
老坛里有人用ESP-01模块做IIC通讯驱动OLED的程序。
国内天气API有很多,你可以看看我发的那个256时钟帖子,里面就有
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-27 15:16:39 来自手机浏览器 | 显示全部楼层
packages,那是环境搭建,给不能从github的人用的。论坛附件有大小限制
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-27 23:50:25 来自手机浏览器 | 显示全部楼层
在解析天气数据的json时,可以试试https://arduinojson.org/v6/assistant/提供的自动代码生成器。把json拷进去,代码自动生成。最好是自己写。当然是要加arduinojson的库。
无线配网可以用WiFiManager,加几行代码就可以了。初次使用时,连上esp8266的wifi,在web页面设置无线和密码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 22:02:30 | 显示全部楼层
本帖最后由 kelchdeng 于 2020-3-1 00:19 编辑

天气数据,改用@水表君帖子里面的京东云接口的天气预报数据。
开始用arduinoJson解析全部json,结果太大,ESP8266经常重启。
后来只用arduinoJson解析每小时预报数据。空气质量还是比较重要的,也加上了。
当前天气数据就用indexOf搞了,免得动用arduinoJson了。
代码给大家分享下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-1 08:44:15 来自手机浏览器 | 显示全部楼层
省点m币:https://pan.baidu.com/s/1ZDk_gtW3E9qRAYJCpe-C5g 提取码:bq6k
回复 支持 反对

使用道具 举报

发表于 2020-3-1 11:49:09 | 显示全部楼层
为开发板 Generic ESP8266 Module 编译时出错。
无法在 C:\Program Files\Arduino\hardware\ESP8266\bootloaders 中找到 boards.txt。也许它是早于 1.5 的版本?
无法在 C:\Program Files\Arduino\hardware\ESP8266\cores 中找到 boards.txt。也许它是早于 1.5 的版本?
无法在 C:\Program Files\Arduino\hardware\ESP8266\doc 中找到 boards.txt。也许它是早于 1.5 的版本?
无法在 C:\Program Files\Arduino\hardware\ESP8266\libraries 中找到 boards.txt。也许它是早于 1.5 的版本?
无法在 C:\Program Files\Arduino\hardware\ESP8266\package 中找到 boards.txt。也许它是早于 1.5 的版本?
无法在 C:\Program Files\Arduino\hardware\ESP8266\tests 中找到 boards.txt。也许它是早于 1.5 的版本?
无法在 C:\Program Files\Arduino\hardware\ESP8266\tools 中找到 boards.txt。也许它是早于 1.5 的版本?
无法在 C:\Program Files\Arduino\hardware\ESP8266\variants 中找到 boards.txt。也许它是早于 1.5 的版本?
WARNING: Error loading hardware folder C:\Program Files\Arduino\hardware\ESP8266
  在文件夹ESP8266中没有找到有效的硬件定义

请教楼主这是什么原因呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 00:21:34 来自手机浏览器 | 显示全部楼层
维超 发表于 2020-3-1 11:49
为开发板 Generic ESP8266 Module 编译时出错。
无法在 C:\Program Files\Arduino\hardware\ESP8266\bootlo ...

选nodemcu1.0试试

点评

一样的没有编译通过。  详情 回复 发表于 2020-3-2 13:47
回复 支持 反对

使用道具 举报

发表于 2020-3-2 13:47:34 | 显示全部楼层

一样的没有编译通过。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-5 10:58:25 | 显示全部楼层
维超 发表于 2020-3-2 13:47
一样的没有编译通过。

把详细报错贴出来,这是最外层的报错信息。报错信息往上翻到顶,贴出来看看。

点评

Arduino:1.8.9 (Windows 7), 开发板:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200" C:\  详情 回复 发表于 2020-3-5 22:42
回复 支持 反对

使用道具 举报

发表于 2020-3-5 22:42:39 | 显示全部楼层
本帖最后由 维超 于 2020-3-5 22:44 编辑
kelchdeng 发表于 2020-3-5 10:58
把详细报错贴出来,这是最外层的报错信息。报错信息往上翻到顶,贴出来看看。 ...
重点出错提示是:
Arduino:1.8.9 (Windows 7), 开发板:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

D:\�û�Ŀ¼\�ҵ��ĵ�\Arduino\libraries\ESP8266_Weather_Station\src/OpenWeatherMapCurrent.h:25:26: fatal error: JsonListener.h: No such file or directory

#include <JsonListener.h>
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-5 23:01:07 来自手机浏览器 | 显示全部楼层
本帖最后由 kelchdeng 于 2020-3-8 15:47 编辑

缺少json库到库管理去搜Json_Streaming_Parser
@维超

点评

谢谢!完美通过编译。  详情 回复 发表于 2020-3-11 12:03
回复 支持 反对

使用道具 举报

发表于 2020-3-11 12:03:40 | 显示全部楼层
kelchdeng 发表于 2020-3-5 23:01
缺少json库到库管理去搜Json_Streaming_Parser
@维超

谢谢!完美通过编译。
无标题.png
回复 支持 反对

使用道具 举报

发表于 2020-4-2 11:57:04 | 显示全部楼层
我的老提示coredecls.h: No such file or directory, 缺少了哪个库?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-2 16:37:12 | 显示全部楼层
mr7 发表于 2020-4-2 11:57
我的老提示coredecls.h: No such file or directory, 缺少了哪个库?

开发板管理里面,把esp8266 环境包安装好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-3-28 22:22 , Processed in 0.343201 second(s), 20 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表