OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7293|回复: 24

想用ESP8266来获得网络天气,求问该如何下手

[复制链接]

30

主题

158

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1525
金钱
1525
注册时间
2015-11-11
在线时间
163 小时
发表于 2017-9-11 09:59:16 | 显示全部楼层 |阅读模式
5金钱
在网上看到有人做了个天气预报的小设备,刚好手中有个战舰的板子,还有个原子的ESP8266,也想做一个,但是不知道从何下手。
经过研究,好像需要ESP8266需要透传功能,还需要天气的API,API目前已经找到,但是如何使用ESP8266的SDK来开发它的固件,和开发这个项目就不知道怎么弄了,没有头绪,有这方面的大佬可以给我提供下方案或者思路吗?

最佳答案

查看完整内容[请看2#楼]

可以看我发的8266做web网页的贴子中的代码,里面用8266的TCP来实现http协议,不过是http-server最终模拟的是一个网站,稍微改下变成http-client就能模拟浏览器获取网页数据了。 具体流程,见图 1.TCP连接www.beijing-time.org 端口80 2.发送http请求报文 GET /time15.asp HTTP/1.1 Host:www.beijing-time.org 3.获取响应,解析需要的内容
好好学习
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2016-2-22
在线时间
85 小时
发表于 2017-9-11 09:59:17 | 显示全部楼层
本帖最后由 svwydh 于 2017-9-13 21:09 编辑
wcyingdream 发表于 2017-9-13 11:13
能提供源码学习下吗

可以看我发的8266做web网页的贴子中的代码,里面用8266的TCP来实现http协议,不过是http-server最终模拟的是一个网站,稍微改下变成http-client就能模拟浏览器获取网页数据了。
具体流程,见图
1.TCP连接www.beijing-time.org 端口80
2.发送http请求报文
GET /time15.asp HTTP/1.1
Host:www.beijing-time.org
3.获取响应,解析需要的内容


无标题.png
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-9-12 01:54:55 | 显示全部楼层
帮顶
回复

使用道具 举报

3

主题

178

帖子

0

精华

高级会员

Rank: 4

积分
524
金钱
524
注册时间
2016-12-31
在线时间
195 小时
发表于 2017-9-12 07:02:27 来自手机 | 显示全部楼层
帮顶!!!
回复

使用道具 举报

30

主题

158

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1525
金钱
1525
注册时间
2015-11-11
在线时间
163 小时
 楼主| 发表于 2017-9-12 11:34:23 | 显示全部楼层
呼叫大神,OVER
好好学习
回复

使用道具 举报

4

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2016-2-22
在线时间
85 小时
发表于 2017-9-12 20:38:47 | 显示全部楼层
做过8266获取网络时间的东西,读取网址http://www.beijing-time.org/time15.asp解析获取实时时间。
天气应该也差不多,不过我用的是串口固件,没用过SDK,用SDK就可以不要STM32了。
回复

使用道具 举报

30

主题

158

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1525
金钱
1525
注册时间
2015-11-11
在线时间
163 小时
 楼主| 发表于 2017-9-13 11:13:48 | 显示全部楼层
svwydh 发表于 2017-9-12 20:38
做过8266获取网络时间的东西,读取网址http://www.beijing-time.org/time15.asp解析获取实时时间。
天气应 ...

能提供源码学习下吗
好好学习
回复

使用道具 举报

0

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2014-11-18
在线时间
55 小时
发表于 2017-9-13 20:47:15 | 显示全部楼层
ESP8266需要用透传,进入透传后直接GET 天气的API 就会收到天气数据Json格式,然后自己解码就可以了,附一张接收数据范例

接收数据范例

接收数据范例
回复

使用道具 举报

30

主题

158

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1525
金钱
1525
注册时间
2015-11-11
在线时间
163 小时
 楼主| 发表于 2017-9-15 14:57:58 | 显示全部楼层
fmfreeman 发表于 2017-9-13 20:47
ESP8266需要用透传,进入透传后直接GET 天气的API 就会收到天气数据Json格式,然后自己解码就可以了,附一 ...

嗯嗯,解析json这一块我已经懂了,就是配置ESP8266这块不懂。我看原子的是先配置成tcp client,然后还得连接那个端口为8086的服务器,然后才能通信。我就试着连接了下天气的域名,结果失败,然后再GET API,就没啥反应。我用的原子的8266,请问下该怎么配置
好好学习
回复

使用道具 举报

30

主题

158

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1525
金钱
1525
注册时间
2015-11-11
在线时间
163 小时
 楼主| 发表于 2017-9-15 14:59:44 | 显示全部楼层
svwydh 发表于 2017-9-11 09:59
可以看我发的8266做web网页的贴子中的代码,里面用8266的TCP来实现http协议,不过是http-server最终模拟 ...

好的,我看看
好好学习
回复

使用道具 举报

30

主题

158

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1525
金钱
1525
注册时间
2015-11-11
在线时间
163 小时
 楼主| 发表于 2017-9-15 17:59:35 | 显示全部楼层
svwydh 发表于 2017-9-11 09:59
可以看我发的8266做web网页的贴子中的代码,里面用8266的TCP来实现http协议,不过是http-server最终模拟 ...

333.png
我这边返回的怎么是这样的结果,感觉都是错误的。而且点了发送后,连接就自动断开了
好好学习
回复

使用道具 举报

56

主题

343

帖子

0

精华

高级会员

Rank: 4

积分
974
金钱
974
注册时间
2016-3-8
在线时间
267 小时
发表于 2017-9-15 19:20:36 | 显示全部楼层
同想做一个天气台历,马克一下。
回复

使用道具 举报

4

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2016-2-22
在线时间
85 小时
发表于 2017-9-16 00:23:17 | 显示全部楼层
wcyingdream 发表于 2017-9-15 17:59
我这边返回的怎么是这样的结果,感觉都是错误的。而且点了发送后,连接就自动断开了

请求报文后加2个回车,这个还是需要了解http协议的
回复

使用道具 举报

30

主题

158

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1525
金钱
1525
注册时间
2015-11-11
在线时间
163 小时
 楼主| 发表于 2017-9-18 09:37:06 | 显示全部楼层
svwydh 发表于 2017-9-16 00:23
请求报文后加2个回车,这个还是需要了解http协议的

果然是,衷心感谢
好好学习
回复

使用道具 举报

56

主题

343

帖子

0

精华

高级会员

Rank: 4

积分
974
金钱
974
注册时间
2016-3-8
在线时间
267 小时
发表于 2017-9-22 15:38:15 | 显示全部楼层
目前用nodemcu固件自带的HTTP函数和json解码函数已经获取到天气数据了。
回复

使用道具 举报

30

主题

158

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1525
金钱
1525
注册时间
2015-11-11
在线时间
163 小时
 楼主| 发表于 2017-9-23 09:20:20 | 显示全部楼层
pdwdzz 发表于 2017-9-22 15:38
目前用nodemcu固件自带的HTTP函数和json解码函数已经获取到天气数据了。

nodemcu是啥
好好学习
回复

使用道具 举报

56

主题

343

帖子

0

精华

高级会员

Rank: 4

积分
974
金钱
974
注册时间
2016-3-8
在线时间
267 小时
发表于 2017-9-24 15:15:57 | 显示全部楼层

是在esp8266中运行的一种固件。原装是AT固件,是窗口发发AT命令控制ESP8266的,nodemcu固件却可以解析lua脚本程序(写好脚本传到ESP8266中,以后ESP8266可以直接运行脚本自主工作)。当然也可以串口发脚本调试。
回复

使用道具 举报

30

主题

158

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1525
金钱
1525
注册时间
2015-11-11
在线时间
163 小时
 楼主| 发表于 2017-9-28 11:33:57 | 显示全部楼层
svwydh 发表于 2017-9-11 09:59
可以看我发的8266做web网页的贴子中的代码,里面用8266的TCP来实现http协议,不过是http-server最终模拟 ...

大佬,和风天气的API我用网络调试助手不能get,不知道什么情况,你要不要试下
好好学习
回复

使用道具 举报

4

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2016-2-22
在线时间
85 小时
发表于 2017-10-3 07:40:03 | 显示全部楼层
wcyingdream 发表于 2017-9-28 11:33
大佬,和风天气的API我用网络调试助手不能get,不知道什么情况,你要不要试下

这个API是https的,来回数据都要用SSL加密,光SSL库估计STM32单片机就装不下,还是找个普通http的天气api吧
回复

使用道具 举报

30

主题

158

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1525
金钱
1525
注册时间
2015-11-11
在线时间
163 小时
 楼主| 发表于 2017-10-9 09:29:09 | 显示全部楼层
svwydh 发表于 2017-10-3 07:40
这个API是https的,来回数据都要用SSL加密,光SSL库估计STM32单片机就装不下,还是找个普通http的天气api ...

原来如此,多谢多谢
好好学习
回复

使用道具 举报

34

主题

322

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1835
金钱
1835
注册时间
2014-12-4
在线时间
717 小时
发表于 2017-10-9 11:23:41 | 显示全部楼层
mark      学习学习
回复

使用道具 举报

9

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2017-4-1
在线时间
4 小时
发表于 2017-11-22 18:49:06 | 显示全部楼层
WiFi模块购买地址 https://shop67012462.taobao.com
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-5-7
在线时间
1 小时
发表于 2018-5-7 17:04:17 | 显示全部楼层
我一直不能收到正确信息,收到的是网页信息
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-5-7
在线时间
1 小时
发表于 2018-5-7 17:15:01 | 显示全部楼层
我在透传模式下,发送心知天气的api,结果回传回来的是整个网页信息,不是天气信息,求指教
回复

使用道具 举报

1

主题

82

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3158
金钱
3158
注册时间
2017-7-10
在线时间
361 小时
发表于 2018-7-12 12:46:40 | 显示全部楼层
心知 GET https://api.seniverse.com/v3/weather/now.json?key= 你的KEY&location=城市名&language=zh-Hans&unit=c\n\n
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 11:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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