野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16778|回复: 38

429福利,429+ESP8266获取网络天气预报

[复制链接]
发表于 2017-10-12 14:33:10 | 显示全部楼层 |阅读模式
本帖最后由 wancy2017 于 2017-10-16 10:59 编辑

    近来闲来无事,翻出了搁置已久的挑战者,望着积满灰尘的显示屏,觉得有愧于火哥的尊尊教导,心中叹息的声音久久不能平复。    古人云:盛年不重来,一日难再晨。及时宜自勉,岁月不待人。
    古人亦云:亡羊补牢,犹未为晚。我辈岂是蓬蒿人?非也。余遂拍案而起,壮士当攻城略地,建功立业,岂可荒戏于杯酒佳肴之间。是日,闻鸡起舞,秉烛夜读,卧薪尝胆,终打通任督二脉,习得这通天彻地之技能----天气预报。古有诸葛夜观天象,今有卫星遥感气象。


    好了,不装逼了,再装逼就要被打死了。

   今天的主题是通过野火429+ESP8266来获取并显示天气预报,网上用8266显示天气预报的很多,不过基本上都是用8266+oled或者是用arduino,很少有用stm32的,所以才想挑战一下。
一、
   硬件:挑战者429 + 5寸屏 + ESP8266
   软件:1、esp8266的配置
             2、连接天气的服务器,get API数据
             3、cjson的移植与解析
             4、UTF8转GBK转码,这个网上很少例程,跟火哥的略不一样,火哥的用于emwin
             5、图标的取模
             6、字体的烧录

二、
  1、关于8266的配置,主要就是把8266配置成sta模式,连上自己的路由器,然后开启透明传输,这个时候8266就具有了与外网通信的功能。大家可以购买火哥的8266模块,使用火哥的配置。
   2.png
   2、获取天气数据主要是通过网上既有的API,有一些免费的,也有收费的。我比较喜欢“心知天气”( https://www.seniverse.com/ )和 “和风天气”( http://www.heweather.com/  )和“极速数据”( https://www.jisuapi.com/ )。
  大家可以到这两个网站去注册,选择你们喜欢的天气API。心知天气的免费API返回的数据表少,功能较少。而和风天气和极速数据的免费API则返回的比较详细。经测试,心知天气和极速数据的API都可以正常获取数据,而和风天气的API是基于https的,来回数据都要用SSL加密,光SSL库估计STM32单片机就装不下。
  我这里选择极速数据,然后大家可以去看看极速数据的文档,里面有详细的数据结构(cjson数据)。
  3、移植和解析cjson
   这个东西很简单,我也是第一次移植,不过看了一篇教程就会了。推荐大家看下这两篇文章就可以了。
  http://blog.csdn.net/xukai871105/article/details/32346797    这个讲cjson的格式讲的蛮好的
  http://blog.csdn.net/lintax/article/details/50993958     这个讲cjson的使用
  https://sourceforge.net/projects/cjson/          这个网站是下载cjson的
  移植cjson,注意两点,一个是cjson占用堆比较大,大约3K,这个坑我就遇到了,使用默认的堆大小不能运行,于是我把堆改成了4K。还有就是cjson使用了malloc,如果你自己项目中用到动态内存分配,需改成你自己的内存malloc。如果没有则不需要改。
3.png
   4、连接天气服务器,然后get 天气的api。
   这里卡了好半天,一开始用网口调试助手连上了服务器,然后get那个API链接的时候,一直不成功,原来是要在这个链接后面加两个回车,这个是http协议方面的知识。
  5、解析天气数据
  用cjson库来解析天气数据,这里有个问题就是获得的天气数据的格式都是  utf8 的,无法直接显示在屏上,需要转码成GBK的。
  utf8转gbk这个网上也比较少,问了很多网友,有人说用查表法,于是又去找,侥幸找到了一个类似的,然后修改了下,居然可以用。
  6、图标的制作
  首先自己去选一套漂亮的天气图标,我刚才推荐的那两个网站里已经为大家准备了图标,可自行下载。也可以去 http://www.easyicon.net/ 这个网站下载
  然后用 Image2lcd 这个软件,选择输出灰度为单色,这样取模以后的数据最小。打开你的天气图标,然后点保存,就可以保存为一个数组的c文件,将这个数组添加到你的工程里去。
   7、字库的制作
   我用的是GBK字库,这个比较全面,有2万多个字。当然大家也可以用火哥的汉字显示例程。字库制作可以用 ts3 这个软件。然后用火哥的烧录字库到spi flash的例程将字库烧录到外置flash里去。
   8、ucos iii创建2个任务,一个用于定时获取天气,一个用于更新时钟。

   大体的知识点和难点就这些。接下来上一张效果图。
    4.jpg
   拍了个短视频。由于不知道怎么放视频,就放个链接好了
   http://v.youku.com/v_show/id_XMz ... 0.0&from=s1.8-1-1.2
   源码和资料已上传,有429的同学可以直接下载使用。
   最后我请了佛祖保佑大家代码永无bug。
    1.png
   一些工具:
    Image2Lcd 2.9(破解版).zip (511.84 KB, 下载次数: 106)
回复

使用道具 举报

发表于 2017-10-12 15:04:04 | 显示全部楼层
cool , 优秀图章,高亮显示,能给你的我都给你了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-12 15:12:57 | 显示全部楼层
fire 发表于 2017-10-12 15:04
cool , 优秀图章,高亮显示,能给你的我都给你了。

多谢火哥,么么哒   
回复 支持 反对

使用道具 举报

发表于 2017-10-12 15:19:48 | 显示全部楼层
为群主奉献精神点赞!期待例程。
回复 支持 反对

使用道具 举报

发表于 2017-10-12 15:42:01 | 显示全部楼层
顶礼膜拜    顶礼膜拜
回复 支持 反对

使用道具 举报

发表于 2017-10-12 15:59:51 | 显示全部楼层
谢谢无私奉献的楼主
回复 支持 反对

使用道具 举报

发表于 2017-10-12 16:34:41 | 显示全部楼层
支持一下,界面很漂亮。
回复 支持 反对

使用道具 举报

发表于 2017-10-12 21:02:56 | 显示全部楼层
界面很漂亮
回复 支持 反对

使用道具 举报

发表于 2017-10-13 08:25:09 | 显示全部楼层
我打算山寨一个
回复 支持 反对

使用道具 举报

发表于 2017-10-13 10:58:09 | 显示全部楼层
界面也做得好漂亮啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-16 11:00:33 | 显示全部楼层
源码和资料已经上传,需要的同学可以下载下来使用。源码未经优化,大家可以优化的更好一点。
回复 支持 反对

使用道具 举报

发表于 2017-12-21 14:55:13 | 显示全部楼层
本帖最后由 Eatun 于 2017-12-21 14:56 编辑

ESP8266可以直接给STM32传MP3文件写到外部flash里面?大神求指点一二拜
回复 支持 反对

使用道具 举报

发表于 2017-12-21 14:57:42 | 显示全部楼层
fire 发表于 2017-10-12 15:04
cool , 优秀图章,高亮显示,能给你的我都给你了。

火哥,ESP8266可以直接给STM32传MP3文件写到外部flash里面?
回复 支持 反对

使用道具 举报

发表于 2017-12-21 15:08:15 | 显示全部楼层
重新保存发下链接  :  链接:https://pan.baidu.com/s/1eR5Pngu 密码:la4v
回复 支持 反对

使用道具 举报

发表于 2017-12-21 15:08:42 | 显示全部楼层
Eatun 发表于 2017-12-21 14:57
火哥,ESP8266可以直接给STM32传MP3文件写到外部flash里面?

可以倒是可以,只是速度太慢了吧。
回复 支持 反对

使用道具 举报

发表于 2018-3-23 20:32:05 | 显示全部楼层
楼主你会制作app跟esp8266连接进行相应的控制吗
回复 支持 反对

使用道具 举报

发表于 2018-3-23 22:28:04 | 显示全部楼层
怎么查看api中ip地址的端口呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 09:49:57 | 显示全部楼层
哈尼 发表于 2018-3-23 22:28
怎么查看api中ip地址的端口呢

提供api的网站会有说明的
回复 支持 反对

使用道具 举报

发表于 2018-3-28 21:05:07 | 显示全部楼层
很漂亮,楼主开源好评
回复 支持 反对

使用道具 举报

发表于 2018-3-30 14:19:16 | 显示全部楼层
wancy2017 发表于 2018-3-26 09:49
提供api的网站会有说明的

429的板子直接下载你的程序   不能达到效果只有图标  那些天气参数不会改变而且屏幕有些一条一条的模糊    一样是429 的板子呢
回复 支持 反对

使用道具 举报

发表于 2018-3-30 14:19:55 | 显示全部楼层
小李飞剑 发表于 2018-3-28 21:05
很漂亮,楼主开源好评

你的移植成功了么  哥们
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-30 14:28:36 | 显示全部楼层
哈尼 发表于 2018-3-30 14:19
你的移植成功了么  哥们

应为我的源码里API不是完整的,完整的API有我自己的ID,你去极速数据网站里申请一个你自己的,然后把API换成你自己的就可以用了
回复 支持 反对

使用道具 举报

发表于 2018-3-30 14:32:25 | 显示全部楼层
wancy2017 发表于 2018-3-30 14:28
应为我的源码里API不是完整的,完整的API有我自己的ID,你去极速数据网站里申请一个你自己的,然后把API ...

好的   谢谢了大兄dei 我试看看     还有你会通过手机app控制esp8266相关的吗   不是网络助手   急用这方面的毕业设计要用   求助  感激不尽
回复 支持 反对

使用道具 举报

发表于 2018-3-30 14:52:51 | 显示全部楼层
哈尼 发表于 2018-3-30 14:32
好的   谢谢了大兄dei 我试看看     还有你会通过手机app控制esp8266相关的吗   不是网络助手   急用这方 ...

可以加下qq1278748870嘛
回复 支持 反对

使用道具 举报

发表于 2018-5-7 21:17:47 | 显示全部楼层
佛系编程
回复

使用道具 举报

 楼主| 发表于 2018-5-9 09:03:52 | 显示全部楼层
哈尼 发表于 2018-3-30 14:52
可以加下qq1278748870嘛

手机APP可以看看机智云的官网
回复 支持 反对

使用道具 举报

发表于 2018-5-9 12:35:09 | 显示全部楼层
能请教下 esp8266和f429怎么连吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-10 10:46:54 | 显示全部楼层
sdwh2011sx 发表于 2018-5-9 12:35
能请教下 esp8266和f429怎么连吗

我也忘了,你看看我工程里是哪几个引脚,好像是串口3,然后你就用杜邦线连到esp8266上
回复 支持 反对

使用道具 举报

发表于 2018-5-14 20:40:10 | 显示全部楼层
请问楼主干嘛不尝试用F429的wifi模块直接连网?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-18 10:31:08 | 显示全部楼层
lixz123007 发表于 2018-5-14 20:40
请问楼主干嘛不尝试用F429的wifi模块直接连网?

那个WiFi我玩不好
回复 支持 反对

使用道具 举报

发表于 2018-7-16 14:53:11 | 显示全部楼层
大神,能不能稍微完整的说说,需要哪些注意点!(比如图标要放sd卡嘛,还有那个API是极速数据直接免费注册的就行还是要买天气的?)
感谢!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-17 09:12:31 | 显示全部楼层
lixz123007 发表于 2018-7-16 14:53
大神,能不能稍微完整的说说,需要哪些注意点!(比如图标要放sd卡嘛,还有那个API是极速数据直接免费注册 ...

图标已经转化成数组写到代码里了,极速数据的API好像是花了1块钱买的
回复 支持 反对

使用道具 举报

发表于 2018-7-18 09:26:40 | 显示全部楼层
这也太秀了吧~
回复 支持 反对

使用道具 举报

发表于 2018-7-23 15:14:33 | 显示全部楼层
佛主保佑永无BIG!
回复 支持 反对

使用道具 举报

发表于 2018-7-24 18:51:57 | 显示全部楼层
楼主为什么连接上我的WIFI就发生了错误....
35253242.png
回复 支持 反对

使用道具 举报

发表于 2018-7-24 21:35:40 | 显示全部楼层
666666666666
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-26 10:09:47 | 显示全部楼层
forkvvy 发表于 2018-7-24 18:51
楼主为什么连接上我的WIFI就发生了错误....

这个就不清楚了,怎么go to hardfault了
回复 支持 反对

使用道具 举报

发表于 2019-3-26 16:39:25 | 显示全部楼层
折腾了两天终于成功获取信息显示了,但我想请问一下大神,那个“深圳”是一直显示不会随地点更改,以及穿衣提示也不更改,怎么实现更改。以及界面是如何设计用什么设计的啊?如果我想把他改成触摸功能加一下东西上去如何实现啊。正在做毕设好苦恼啊!!!!
回复 支持 反对

使用道具 举报

发表于 2021-2-11 17:26:01 | 显示全部楼层
两个链接都失效了,楼主(或者哪位兄弟)能否再发一个呢,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|站点地图|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号-2 ) 大学生ARM嵌入式2群

GMT+8, 2021-3-4 12:05 , Processed in 0.277615 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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