YFROBOT创客社区

标题: ESP8266+0.96OLED weather station(气象站) -- 无线wifi天气预报 [打印本页]

作者: AllBlue    时间: 2016-9-8 16:01
标题: ESP8266+0.96OLED weather station(气象站) -- 无线wifi天气预报
上贴写了,如何使用ESP8266获取免费的网络天气资讯:http://www.yfrobot.com.cn/thread-11877-1-1.html本帖将使用OLED来显示这些天气资讯!

首先登陆心知天气:http://www.thinkpage.cn/免费注册(邮箱激活即可使用)!

心知天气更改新IP - api.seniverse.com,原api - api.thinkpage.cn也可用(最好用新的),使用本文中的程序时,请保证你的ID是付费版、付费版、付费版(第一次注册会有免费试用)!
完成注册后,登陆自己的账户,按照下图操作,可免费使用15天!你如果懒得注册,可以使用我已经注册好的 APIKEYshqnpz15ahhefsrz,有效期:2016/9/5~2016/9/20

[attach]1576[/attach]

电路连接:
[attach]1714[/attach]


OLED显示未来3天天气预报+当前天气资讯,演示视频【优酷网站观看】:
[vedio=375,500]https://player.youku.com/embed/XMTcxNzY3MzQ4NA==[/vedio]


解惑:
1、黄色区域(两个界面相同)
     * 左边的云朵的图标表示获取数据状态 -- 正在获取(云中向下箭头)、成功获取(云中√)
     * 中间的日期为当天日期(从获取的JSON数据中提取)
     * 右边的wifi信号,这个不用解释了吧(当前wifi信号强度)
2、蓝色区域<br>  界面一(3个天气图标):
     * 未来3天的天气预报情况,界面空间限制,很多数据没有解析显示。
     * 底部时间,为最后一次更新数据时间
  界面二:
     * 左上侧为当前天气图标及气温。
     * 左下侧为最后一次更新数据时间
     * 右侧:H-湿度 V-能见度 WD-风向 WS-风力等级(http://baike.baidu.com/view/465076.htm) P-大气压力
风向代码解释(其他参数应该比较好理解):
[attach]1587[/attach]

代码获取(github地址):


代码获取(百度网盘地址)):


常见问题:
★1 图片显示错位问题,库文件有变,将drawBitmap 函数改 drawXBitmap ;如果编译提示无此函数,请自行下载最新库文件。
★2 编译出现如下错误:“DynamicJsonBuffer is a class from ArduinoJson 5. Please see arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6 ” 请注意 ArduinoJson 库文件版本,降至5.xx 版本即可正常编译程序。
[attach]2265[/attach]★3 程序正常编译,但是总是重启,串口返回一堆数据,一般情况下,都是解析部分出现错误。
[attach]2357[/attach]

正常工作程序中可以看到,获取json数据是没问题的,显示“Read Over!”,下一步就是解析数据,就是解析错误导致程序重启。
[attach]2361[/attach]

串口读取的json数据:
Get the data from Internet!
{"results":[{"location":{"id":"WTUXK27DXN0R","name":"Huaian","country":"CN","path":"Huaian,Huaian,Jiangsu,China","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"Cloudy","code":"4","temperature":"29"},"last_update":"2020-04-30T17:19:00+08:00"}]}
Read Over!

两者进行对比,看下是否是某些数据没有了:对比发现
now下的数据只有 :text、code、temperature
我们解析了(这些应该是会员账号有的数据):
  strcpy(userData->weather, root["results"][0]["now"]["text"]);
  userData->weatherCode = root["results"][0]["now"]["code"];
  strcpy(userData->temp, root["results"][0]["now"]["temperature"]);
  strcpy(userData->feel, root["results"][0]["now"]["feels_like"]);
  strcpy(userData->pressure, root["results"][0]["now"]["pressure"]);
  strcpy(userData->hum, root["results"][0]["now"]["humidity"]);
  strcpy(userData->visi, root["results"][0]["now"]["visibility"]);
  strcpy(userData->wind, root["results"][0]["now"]["wind_direction"]);
  userData->windScale = root["results"][0]["now"]["wind_scale"];
  strcpy(userData->udate_now, root["results"][0]["last_update"]);

将没有数据的解析程序注释,应该就可以正常工作了。

作者: zhaoxaio2    时间: 2016-9-9 21:03
看一下,有代码吗
作者: AllBlue    时间: 2016-9-10 08:00
zhaoxaio2 发表于 2016-9-9 21:03
看一下,有代码吗

有的,在github网站上直接下载
作者: 视觉℡    时间: 2016-9-21 17:24
看那看那                                          
作者: ROY_2016    时间: 2016-10-12 16:40
看看  有不有代码吧
作者: AllBlue    时间: 2016-10-12 18:52
gtx1989 发表于 2016-10-12 18:21
好的  正想搞一一个  但是楼主是否可以用STC的单片机实现呢

可以,当然还是需要WIFI模块的
作者: 1754916380    时间: 2016-12-14 15:35
学习学习
作者: jxg27cool    时间: 2016-12-19 10:28
观摩测试一下!
作者: FJ51    时间: 2016-12-23 21:05
本帖最后由 FJ51 于 2016-12-23 21:30 编辑

不错不错,先收藏了
作者: myaspx    时间: 2017-1-25 16:57
不错。。。。。。。。。。。。。。。。。。。。。。。。。。。
作者: polang2007    时间: 2017-2-1 00:20
正好学习一下,谢谢楼主
作者: kiwiliu    时间: 2017-2-2 20:48
正需要这样的项目
作者: bluewood    时间: 2017-2-5 17:49
可能试试
作者: bluewood    时间: 2017-2-5 17:49
可能试试可能试试
作者: abab219    时间: 2017-2-7 13:19
66666学习了

作者: ldy2370    时间: 2017-2-10 12:12
看一下,有代码吗
作者: AllBlue    时间: 2017-2-11 09:24
ldy2370 发表于 2017-2-10 12:12
看一下,有代码吗

有代码的
作者: chenyuechi    时间: 2017-2-20 20:50
试试
作者: bluewood    时间: 2017-2-21 11:24
如果要用http://zhongbest.com/2016/10/24/oled12864%E6%98%BE%E7%A4%BA%E5%B1%8F/ 这种屏应该怎么改线?谢谢
作者: AllBlue    时间: 2017-2-21 20:22
bluewood 发表于 2017-2-21 11:24
如果要用http://zhongbest.com/2016/10/24/oled12864%E6%98%BE%E7%A4%BA%E5%B1%8F/ 这种屏应该怎么改线?谢 ...

将屏幕驱动部分改为你用的那种屏幕驱动程序即可;其他都是一样的
作者: weiyi    时间: 2017-2-27 14:46
一直想做一个,先下载学习学习
作者: 墨韵似千华    时间: 2017-2-27 20:28
楼主还在吗?有问题可以提问吗
作者: AllBlue    时间: 2017-2-28 13:54
墨韵似千华 发表于 2017-2-27 20:28
楼主还在吗?有问题可以提问吗

可以的,直接留言即可
作者: dhii1234    时间: 2017-2-28 20:20
谢谢分享
作者: hznupeter    时间: 2017-3-1 13:51
ganxielouzhu
作者: ASine    时间: 2017-3-4 09:35
正在研究nodemcu,楼主的教程非常的有帮助
作者: jesuisyeyi    时间: 2017-3-5 15:07
学习学习
作者: hszhouw    时间: 2017-3-18 11:00
看起来不错的样子
作者: 54hxz    时间: 2017-4-2 18:15
支持
作者: lianfutiana    时间: 2017-4-13 16:39
haohaohaoahoa
作者: 大飞雷    时间: 2017-4-20 17:52

作者: haoayoua    时间: 2017-4-21 22:20
屏幕是什么类型的
作者: AllBlue    时间: 2017-4-23 21:32
haoayoua 发表于 2017-4-21 22:20
屏幕是什么类型的

SPI OLED 0.96寸屏
作者: wszjchsdo    时间: 2017-4-26 17:59
非常感谢,学习了
作者: aswinds    时间: 2017-4-27 14:33
学习一下
作者: spongeee    时间: 2017-4-28 01:47
正在研究这个WiFi芯片获取天气!太感谢楼主了
作者: spongeee    时间: 2017-4-28 07:07
lemonking 发表于 2017-4-27 19:45
楼主  size_t length = client.peekBytes(content, maxSize);这句函数ESP8266WiFi库里没有啊,是我下的库不 ...

我也遇到这个问题,发现是版本的问题,把原来的ESP8266平台卸了,再按照楼主另一个教程 http://www.yfrobot.com/thread-11797-1-1.html 里面的 “离线安装包(手动下载,离线安装)”装了就可以了  
因为我的IDE只能显示到2.0.0版本,只能离线安装了
作者: spongeee    时间: 2017-4-29 20:58
lemonking 发表于 2017-4-28 09:36
谢谢,有QQ没,加下一起玩

可以呀,我也是刚玩
作者: blackmax    时间: 2017-5-8 22:10
支持支持
作者: lin6328    时间: 2017-5-10 22:26
感谢分享
作者: xuxiandi    时间: 2017-5-17 10:48
看着好象还有个动画效果呢///

作者: AllBlue    时间: 2017-5-17 16:54
xuxiandi 发表于 2017-5-17 10:48
看着好象还有个动画效果呢///

连接wifi和获取数据,给了两个小动画效果!
作者: soldier606    时间: 2017-5-18 14:26
好贴必须回复
作者: zhangyt    时间: 2017-5-21 17:20
我想要看看,具体的内容!
作者: Hare    时间: 2017-5-21 20:11
看看



作者: bestnike    时间: 2017-5-27 18:39
学习学习,
作者: imliubo    时间: 2017-5-28 17:31
学习一下
作者: chinayuyi    时间: 2017-5-28 20:19
eeeeeeeeeeeee
作者: zhiwenjing    时间: 2017-6-7 21:18
下载了学习下,谢谢分享!
作者: greatxiaoguzi    时间: 2017-6-20 11:30
哦哦,不错的东西,学习学习
作者: fx乀垶    时间: 2017-6-20 13:28
借鉴参考下
作者: 1359450511    时间: 2017-6-20 22:49
正在做这个拿来看看
作者: Hi,未央    时间: 2017-6-28 09:21
收藏收藏!!!!!
作者: liangyuqiu    时间: 2017-7-1 13:29
看看,最近正想搞一下这方面的
作者: snail0815    时间: 2017-7-3 15:51
发现是版本的问题
作者: 物联创客    时间: 2017-7-4 21:44
做的真好 大赞一个
作者: bw670    时间: 2017-7-5 12:57
太牛了
作者: fx乀垶    时间: 2017-7-5 16:11

不停重启是怎么了
作者: t28    时间: 2017-7-8 14:46
spi的OLED?
感谢分享
作者: AllBlue    时间: 2017-7-9 09:21
t28 发表于 2017-7-8 14:46
spi的OLED?
感谢分享

是的
作者: AllBlue    时间: 2017-7-9 09:22
fx乀垶 发表于 2017-7-5 16:11
不停重启是怎么了

重启原因是解析错误,你最好注释掉解析数据,通过浏览器看数据,然后慢慢解析,想要一步完成挺难的;我之前也是数据错误,一定要一步步分析数据不能急!另个贴子也回复你了
作者: qq997758497    时间: 2017-7-28 14:18
好东西 ~~~~~~~~
作者: 329952454    时间: 2017-8-5 15:00
过来学习学习
作者: arone    时间: 2017-8-5 21:13
感谢楼主分享

作者: aoran    时间: 2017-8-9 12:29
看那看那      
作者: shmily326    时间: 2017-8-17 00:03
micropython有类似于u8glib这样的库吗?
作者: AllBlue    时间: 2017-8-17 18:49
shmily326 发表于 2017-8-17 00:03
micropython有类似于u8glib这样的库吗?

没玩过不知道
作者: shmily326    时间: 2017-8-19 10:05
真的不错学习一下
作者: youke    时间: 2017-8-24 20:17
膜拜大神
作者: youke    时间: 2017-9-3 21:22
error: 'class Adafruit_SSD1306' has no member named 'drawXBitmap'
楼主你好,我把您的代码下载后,自己去网站下载了 Adafruit_SSD1306这个库文件(没找到您用的这个库文件),然后编译出现了一大堆这个错误(这个drawXBitmap有好多地方都用到了),请问楼主能把您的那个库文件发给我试试么。 ps:我现在买了这个ESP8266 nodemcu 后该怎么改热点名和密码啊,我网上找了很久没找到方法,商家也没提供资料
作者: youke    时间: 2017-9-3 22:19
另外问一下您那个OLED SSD1306在哪买的啊,有淘宝链接么,我找了好久都没找到引脚一样的。谢谢了!
作者: youke    时间: 2017-9-5 20:58
fx乀垶 发表于 2017-7-5 16:11
不停重启是怎么了

我的现在也是这个问题,一模一样,请问您后面解决了么,是怎么解决的啊,能回答一下么,方便的话能加我QQ么:1165228629,谢谢了!
作者: AllBlue    时间: 2017-9-8 08:37
youke 发表于 2017-9-3 21:22
error: 'class Adafruit_SSD1306' has no member named 'drawXBitmap'
楼主你好,我把您的代码下载后,自 ...

https://github.com/adafruit/Adafruit_SSD1306  这个库的github地址

作者: AllBlue    时间: 2017-9-8 08:39
youke 发表于 2017-9-3 22:19
另外问一下您那个OLED SSD1306在哪买的啊,有淘宝链接么,我找了好久都没找到引脚一样的。谢谢了!

https://item.taobao.com/item.htm ... amp;id=526243807265
OLED 购买地址
作者: AllBlue    时间: 2017-9-8 08:41
本帖最后由 AllBlue 于 2017-10-6 09:05 编辑
youke 发表于 2017-9-5 20:58
我的现在也是这个问题,一模一样,请问您后面解决了么,是怎么解决的啊,能回答一下么,方便的话能加我QQ ...


不停重启应该是获取的数据和解析程序不匹配,查看比对获取的数据和程序中的解析是否对应。
作者: luolin4992    时间: 2017-9-21 12:52
hhhhhhhhhhhhhhhhhhhhhhhhhh
作者: loner    时间: 2017-10-6 08:30
支持哦,感谢开源
作者: AllBlue    时间: 2017-10-25 08:53
dachen 发表于 2017-10-22 09:51
请教楼主,在线商城买回了nodemcu+OLED,这两天在试,发现编译总是有错。具体出错信息是:
Arduino:1.6.5  ...

将drawXBitmap改drawBitmap应该就可以了
作者: AllBlue    时间: 2017-10-28 08:08
本帖最后由 AllBlue 于 2017-10-28 08:09 编辑
dachen 发表于 2017-10-26 09:23
谢谢楼主!编译通过,上传成功,网络也连接上了,现在问题是:YFROBOT   LOGO图样,天气状态图样(小太阳) ...

一般情况解析数据正确就应该能显示出来了。你看下 arduinojson 这个库的使用,然后用串口调试下是否正确的解析出数据了

http://www.yfrobot.com/thread-11875-1-1.html

http://www.yfrobot.com/wiki/index.php?title=Json%E5%BA%93

作者: 刺风    时间: 2017-11-20 13:23
学习学习~
作者: ider    时间: 2017-12-19 21:20
像楼主学习下
作者: luooove    时间: 2017-12-19 21:47
感谢感谢感谢感谢感谢
作者: zdy110    时间: 2017-12-24 13:10
学习中。。。。。。。。。。。。。。。。。。。
作者: zdy110    时间: 2017-12-24 20:21
学习学习中
作者: LHAnne    时间: 2018-1-20 19:31
好厉害
作者: LHAnne    时间: 2018-1-21 15:38
请问一下,0.96寸的OLED要怎么办
作者: AllBlue    时间: 2018-1-22 10:05
LHAnne 发表于 2018-1-21 15:38
请问一下,0.96寸的OLED要怎么办

什么意思,怎么办
作者: wuwei    时间: 2018-1-28 12:22
感谢分享
作者: 残月下寒沙    时间: 2018-2-1 01:39
梵蒂冈申达股份   
作者: ahahaha    时间: 2018-3-13 19:19
想看看里面有些什么东西
作者: 後輪追前輪    时间: 2018-3-13 19:34
下载学习一下。。
作者: hao441324    时间: 2018-3-22 21:56
不错,值得学习,谢谢大神分享!!
作者: T_T    时间: 2018-3-26 10:05
回复求代码
作者: bg8cg    时间: 2018-4-1 23:13
ESP8266+0.96OLED weather station(气象站) -- 无线wifi天气预报
作者: imk    时间: 2018-4-2 16:41
谢谢分享

作者: duhang    时间: 2018-4-4 13:23
学习一下,最近在玩这个芯片
作者: ykk888    时间: 2018-4-8 17:38
非常感谢
作者: judgementc    时间: 2018-4-9 22:02
相当给力,楼主可以出个视频教程
作者: huaxiu    时间: 2018-4-10 22:39
不回复看不到,谢谢楼主分享
作者: dahai2626    时间: 2018-4-12 09:48
感谢分享!




欢迎光临 YFROBOT创客社区 (http://yfrobot.com.cn/) Powered by Discuz! X3.1