完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
之前用8266和机智云成功通信了,见 帖子 http://club.gizwits.com/thread-8048-1-1.html 但是一直不知道8266是怎么设置联网,因为这个是下载的机智云的固件。后来就寻思着做了这个网络天气的。网上几乎没有人用STM32做天气的,基本上都是用arduino或者直接用esp8266+oled。
一、 硬件:战舰V3 + ESP8266 + 2.8寸屏 软件:1、esp8266的配置 2、连接天气的服务器,get API数据 3、cjson的移植与解析 4、UTF8转GBK转码,这个网上很少例程 5、图标的取模 首先配置esp8266为透传模式
然后连接天气服务器,get API
然后再解析这个API返回的数据,并予以显示。 二、 1.目前免费的API有很多,我比较喜欢“心知天气”( https://www.seniverse.com/ )和 “和风天气”(http://www.heweather.com/ )。 大家可以到这两个网站去注册,选择你们喜欢的天气API。心知天气的免费API返回的数据表少,功能较少。而和风天气的免费API则返回的比较详细。 我这里选择心知天气,然后大家可以去看看心知天气的文档,里面有详细的数据结构(cjson数据)。 2.移植和解析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 ,打开cjson.c,修改下面几处。修改成原子的mymalloc,由于原子的mymalloc有个选择SRAMIN的参数,所以我又封装了下,弄了个my_malloc。 3.连接天气服务器,然后get 天气的api。 这里卡了好半天,一开始用网口调试助手连上了服务器,然后get那个API链接的时候,一直不成功,原来是要在这个链接后面加两个回车,这个得感谢坛友 svwydh 4.解析天气数据 用cjson库来解析天气数据,这里有个问题就是获得的天气数据的格式都是 utf8 的,无法直接显示在屏上,需要转码成GBK的,而原子哥的汉字例程就是gbk的。 utf8转gbk这个网上也比较少,问了很多网友,有人说用查表法,于是又去找,侥幸找到了一个类似的,然后修改了下,居然可以用。 5.图标的制作 首先自己去选一套漂亮的天气图标,我刚才推荐的那两个网站里已经为大家准备了图标,可自行下载。 然后用战舰光盘里那个Image2lcd的软件,选择输出灰度为单色,这样取模以后的数据最小。打开你的天气图标,然后点保存,就可以保存为一个数组的c文件,将这个 数组添加到你的工程里去。 大体上的难点和知识点就是上面这些。 上几张效果图。一张彩色的,一张白色的,大家觉得哪个好看点。 接下来传个演示视频由于视频不能播放,先放个链接:http://v.youku.com/v_show/id_XMz ... qq-pf-to=pcqq.group 如果大家感兴趣,将会上传源码。 @svwydh 感谢 以下是源码,喜欢的可自行下载。 ESP8266获取网络天气适配战舰V3.zip |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
192个成员聚集在这个小组
加入小组【机智云转接板ML302-GC211试用体验】 第1章 机智云平台快速入门
8949 浏览 0 评论
3708 浏览 0 评论
【教程分享】Arduino uno R3接入机智云,快速实现物联网开发
7368 浏览 0 评论
4163 浏览 6 评论
1801 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 03:10 , Processed in 1.357084 second(s), Total 54, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号